Skip to content
ttushaarrPublic

About

BeamDrop brings seamless AirDrop & KDE Connect features to macOS and Android over local Wi-Fi. Features zero-click file transfers with auto-gallery indexing, live 2-way clipboard sync, remote trackpad/keyboard, media remote, presentation clicker, and system commands. 100% private, open-source, and offline with zero cloud servers or tracking.

Topics

Resources

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

26 Commits

Folders and files

Repository files navigation

BeamDrop: AirDrop & KDE Connect for macOS and Android

Version 1.4.0 Homebrew Cask F-Droid Ready Platforms MIT License

Fast, secure, local Wi-Fi file sharing & bidirectional device integration.
Seamless two-way zero-click file transfers, 1-Click Wireless ADB, customizable Mac script launchers (Stream Deck alternative), wireless HD webcam for Zoom/OBS, incoming call & SMS alerts, live clipboard synchronization, remote trackpad gestures, media remote, presentation clicker, and Gemini AI problem solver between MacBook and Android.
100% Open Source β€’ 100% Local Wi-Fi β€’ Zero Cloud Servers β€’ Zero Telemetry.

BeamDrop Demo Preview

🌐 Live Website: https://ttushaarr.github.io/Beamdrop/


⚑ Quick Install

🍏 macOS (Homebrew Cask)

Install with a single command via Homebrew:

brew install --cask https://raw.githubusercontent.com/ttushaarr/Beamdrop/main/Casks/beamdrop.rb

Or add the tap:

brew tap ttushaarr/beamdrop https://github.com/ttushaarr/Beamdrop
brew install --cask beamdrop

Manual DMG / Zip download: Download BeamDrop-Mac.zip (~540 KB)

πŸ€– Android (APK & F-Droid)


1. Features at a Glance

Feature Description macOS Android
⚑ 1-Click Wireless ADB Pair and connect ADB wirelessly over Wi-Fi without USB cables or typing adb connect ip:port. Includes pairing code dialog. βœ… Controller βœ… Target
πŸš€ Mac Script Launchers Turns your tablet or phone into a customizable Stream Deck (trigger npm run dev, docker compose, git pull) with real-time terminal output. βœ… Executor βœ… Controller
πŸ“Ή Wireless HD Webcam Stream phone camera to OBS Studio, Zoom, and Google Meet at low-latency 720p 30 FPS. Includes floating Mac live viewer. βœ… Live Viewer βœ… 720p Camera
πŸ“ž Incoming Call & SMS Alerts See who is calling on your Mac screen with 1-click ringer mute, instant decline, or quick SMS reply pills. βœ… Alerts / Actions βœ… Dialer Relay
πŸ“ Zero-Click File Drops Photos, videos, and docs sent from Mac auto-route into Android Pictures/, Movies/, and Download/ with instant gallery indexing. βœ… Sender βœ… Receiver
πŸ“€ Android βž” Mac Sharing Send files from Android to Mac's ~/Downloads/BeamDrop/ via the in-app picker or native Android Share Sheet (ACTION_SEND). βœ… Receiver βœ… Sender
πŸͺŸ Menu Bar Quick Drop Drag files directly onto the macOS menu bar icon to send instantly without opening the main application window. βœ… Sender β€”
πŸ“Έ Continuity Camera Use your Android camera as a Mac continuity webcam with 1-click high-res snapshot capture to ~/Desktop/. βœ… Viewer βœ… Capture
πŸ–ΌοΈ Camera Roll Backup One-tap backup of recent Android camera roll photos straight to Mac ~/Pictures/BeamDrop/Camera/. βœ… Receiver βœ… Sender
πŸ’¬ Notification Quick Reply View Android notifications on macOS and reply directly to WhatsApp, SMS, and messaging apps using inline textfields. βœ… Sender βœ… Streamer
πŸ“‹ Live Clipboard Sync Copy on Mac, paste on Android. Copy on Android, paste on Mac. Sub-10ms latency over local SSE. βœ… Bi-dir βœ… Bi-dir
πŸ–±οΈ Remote Trackpad & Keys Use your Android device as a wireless Mac trackpad (drag, tap-to-click, right-click, scroll strip, typing). βœ… Server βœ… Client
🎡 Media Remote (MPRIS) Control Spotify, Apple Music, and Mac system audio volume remotely from your device. βœ… Server βœ… Client
πŸ–₯️ Presentation Clicker Giant Next/Prev slide buttons, presentation timer, F5 full-screen start, and B blackout key. βœ… Server βœ… Client
βš™οΈ One-Tap System Commands Lock screen, sleep, take desktop screenshot, mute, empty trash, launch Terminal, and open URLs. βœ… Server βœ… Client
πŸ”” Find My Device Ringing Ring Android device with max volume alarm + vibration from Mac, or ring Mac loudly from Android. βœ… Bi-dir βœ… Bi-dir
πŸ”‹ Bidirectional Battery Real-time battery percentage and charging indicator (⚑) visible on both devices. βœ… Bi-dir βœ… Bi-dir
πŸ“‚ Remote File Browser Browse, explore, and download files stored on your Android device from a native Finder view on macOS. βœ… Client βœ… Server
πŸ“Έ Mac Screenshot Shortcut Hit Cmd + Shift + D (or Cmd + Option + S / Menu Bar) to instantly capture your Mac screen and beam it straight to your tablet's gallery (Pictures/LaptopTransfer/). βœ… Global Hotkey βœ… Auto-Gallery
πŸ€– Gemini AI Question Solver Hit Cmd + Shift + X (or Cmd + Option + A / Menu Bar) on Mac to capture any question, exam problem, or coding challenge on your screen. Beams to your tablet and solves it with Gemini AI step-by-step with zero browser tabs needed. Includes 1-tap "Send to Mac Clipboard (⌘V)"! βœ… Global Hotkey (βŒ˜β‡§X) βœ… Gemini AI
✍️ Continuity Sketch Pad Draw, sketch, or sign on your tablet with finger/stylus and insert directly onto Mac Desktop or Mac Pasteboard (Cmd+V). βœ… Receiver βœ… Canvas
πŸ–₯️ Wireless Second Screen Stream your MacBook screen to your Android tablet at 30+ FPS low latency with interactive touch clicks (Sidecar mode). βœ… Streamer βœ… Viewer
πŸ” Biometric Mac Unlock Unlock your MacBook wirelessly using your Android tablet's fingerprint sensor. βœ… Receiver βœ… Auth
πŸ“Ά Instant Hotspot & Audio Trigger Android hotspot tethering and wireless audio relay between devices with a single tap. βœ… Bi-dir βœ… Bi-dir
🌐 Dynamic Wi-Fi Discovery Works across home Wi-Fi, office/campus subnets (10.x, 192.168.x), and mobile hotspots without manual IP entry. βœ… Bi-dir βœ… Bi-dir

2. Two-Way Transfer Pipeline

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           Two-Way Transfer Architecture                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

   [MacBook (macOS)] ────────(Local Wi-Fi / TCP :8765)───────> [Android Device]
   β€’ Drag & drop onto app window                             β€’ Auto-routes:
   β€’ Menu bar quick drop target                                - Pictures/LaptopTransfer/ (Gallery)
   β€’ SHA-256 bit-for-bit verification                         - Movies/LaptopTransfer/ (Videos)
                                                               - Download/LaptopTransfer/ (Docs)

   [MacBook (macOS)] <───────(Local Wi-Fi / TCP :8768)──────── [Android Device]
   β€’ Mac Receiver Service (:8768)                            β€’ Native Android Share Sheet (ACTION_SEND)
   β€’ Saves to ~/Downloads/BeamDrop/                          β€’ In-App Multi-File Picker
   β€’ Camera photos to ~/Pictures/BeamDrop/Camera/            β€’ 1-Tap Camera Roll Auto-Backup
   β€’ Live camera snapshot to ~/Desktop/                      β€’ Continuity Camera Endpoint (:8765)

The Workflow:

  1. Initial Pairing (One-Time Only):
    • Launch BeamDrop on both devices.
    • Enter the 6-digit PIN code displayed on the Android device into the Mac app (or scan the QR payload).
    • Cryptographic auth tokens are established and stored securely.
  2. Sending from Mac to Android:
    • Drag and drop any file onto the BeamDrop window or the Menu Bar icon.
    • With "Send automatically on select" checked, transfer starts immediately.
    • Files are automatically classified and indexed into Pictures/, Movies/, or Download/.
  3. Sending from Android to Mac:
    • From Any App (Share Sheet): Select photos/documents in Google Photos, Files, or Gallery β†’ tap Share β†’ select BeamDrop.
    • From BeamDrop App: Tap "Send Files" to pick documents/photos, or tap "Backup Photos" to sync your camera roll.
    • Files arrive instantly in ~/Downloads/BeamDrop/ or ~/Pictures/BeamDrop/Camera/ on your Mac with native notifications and chime.

3. Continuity Camera & Remote Features

3.1 Continuity Camera (Android βž” Mac)

  • Click "Take Photo from Android" in the Mac app under the Continuity Camera card.
  • Android's Camera2 engine captures a full 1280x720 JPEG snapshot.
  • The photo transfers instantly to ~/Desktop/BeamDrop_Snapshot_<timestamp>.jpg with a Finder reveal button and notification chime.
  • If BeamDrop was backgrounded, it automatically wakes up to capture and stream the frame.

3.2 macOS Menu Bar Quick Drop

  • BeamDrop runs an NSStatusItem in your macOS top menu bar with a paperplane icon.
  • Direct Drop Target: Drag any file from Finder onto the menu bar icon to drop it to your Android device immediatelyβ€”no need to switch windows.
  • Status Popover: Click the icon to view connection status, battery levels, initiate quick file transfers, or re-scan your network subnet.

3.3 Notification Quick Reply

  • Incoming Android notifications (WhatsApp, SMS, Telegram, Signal, Slack) are mirrored to your Mac.
  • Notifications supporting Android's RemoteInput display an inline reply text field.
  • Type your response on Mac and hit Replyβ€”BeamDrop dispatches the reply directly through Android without needing to unlock your device.

4. Automatic Storage Routing (MediaStore Integration)

Incoming files on Android are routed dynamically based on MIME type and extension using Scoped Storage APIs:

File Type Extensions Device Storage Path Gallery Integration
Photos & Images .jpg, .jpeg, .png, .webp, .heic, .gif, .avif, .bmp, .tiff Pictures/LaptopTransfer/ Immediate Gallery / Google Photos indexing via MediaStore.Images (IS_PENDING = 0)
Videos .mp4, .mkv, .mov, .webm, .avi, .3gp, .m4v Movies/LaptopTransfer/ Immediate Gallery video indexing via MediaStore.Video
Documents & Archives .pdf, .zip, .tar, .gz, .7z, .docx, .xlsx, code, text Download/LaptopTransfer/ Standard Download/ folder via MediaStore.Downloads

Duplicate File Protection

BeamDrop never silently overwrites existing files on either macOS or Android. If report.pdf already exists, incoming files are automatically renamed to report (1).pdf, report (2).pdf, preserving the original extension and data.

πŸ“Έ Instant Mac Screenshot Shortcut (βŒ˜β‡§D / ⌘βŒ₯S)

  • Press Cmd + Shift + D (or Cmd + Option + S) from anywhere on your Mac to instantly capture your display.
  • Alternatively, click the Menu Bar paperplane icon β†’ "Send Screenshot to Tablet (βŒ˜β‡§D)".
  • The screenshot is immediately transferred to your Android tablet and indexed into Pictures/LaptopTransfer/.
  • It shows up immediately in your Android Gallery / Google Photos app and triggers a notification on the tablet with zero latency.

5. Security & Privacy Architecture

  • Local Network Only: Transfers occur over direct TCP sockets on your local Wi-Fi network. Zero cloud relays, zero external telemetry, zero tracking.
  • Mutual Device Trust: Unpaired clients receive HTTP 401 Unauthorized and are rejected.
  • Cryptographic PIN Authentication: One-time 6-digit pairing PIN generates a persistent SHA-256 Bearer Token verified on every API request and transfer chunk.
  • SHA-256 Bit-for-Bit Integrity: Mac calculates SHA-256 hash before sending; Android verifies checksum during stream to guarantee 100% uncorrupted delivery.
  • Network Ports:
    • 8765: Android Receiver Server (file upload, SSE events stream, remote commands, continuity camera).
    • 8768: macOS Reverse Receiver Server (receiving files from Android, camera backups, ping discovery).

6. Architecture & Directory Structure

beamdrop/
β”œβ”€β”€ macos/                     # Native macOS Application (Swift 5.9, SwiftUI)
β”‚   β”œβ”€β”€ Sources/BeamDrop/
β”‚   β”‚   β”œβ”€β”€ App/               # Entrypoint & AppDelegate
β”‚   β”‚   β”œβ”€β”€ Models/            # TransferItem, PairedDevice, KdeModels
β”‚   β”‚   β”œβ”€β”€ Services/          # TransferClient, ClipboardSync, Discovery, KDE Connect,
β”‚   β”‚   β”‚                      # MacReceiverService (:8768), MenuBarManager
β”‚   β”‚   └── Views/             # DropZone, KDE Connect, MenuBarPopover, History
β”‚   └── Resources/             # App icons & Entitlements
β”œβ”€β”€ android/                   # Native Android Receiver & Sender (Kotlin, Jetpack Compose)
β”‚   └── app/src/main/java/com/beamdrop/receiver/
β”‚       β”œβ”€β”€ camera/            # CameraHelper (Continuity Camera capture)
β”‚       β”œβ”€β”€ model/             # TransferRecord, KdeConnectModels, PairedDevice
β”‚       β”œβ”€β”€ security/          # PairingManager & Keystore token storage
β”‚       β”œβ”€β”€ server/            # Embedded lightweight HTTP server (:8765)
β”‚       β”œβ”€β”€ service/           # FileReceiverForegroundService, FileSenderManager,
β”‚       β”‚                      # BeamDropNotificationListenerService
β”‚       β”œβ”€β”€ storage/           # Scoped Storage MediaStore Router
β”‚       └── ui/                # Jetpack Compose Screens (Dashboard, Trackpad, Media, Commands)
β”œβ”€β”€ dist/                      # Pre-built binaries (BeamDrop.app, BeamDrop-Receiver.apk)
β”œβ”€β”€ website/                   # Open-source landing page
β”œβ”€β”€ docs/                      # GitHub Pages static documentation
└── scripts/                   # Automated build scripts (build_macos_app.sh)

7. Building & Running the Applications

7.1 macOS Application

The pre-built native application bundle is located in dist/:

open dist/BeamDrop.app

Rebuilding the macOS App from source:

chmod +x scripts/build_macos_app.sh
bash scripts/build_macos_app.sh

7.2 Android Application

Pre-built APK:

Install the ready-to-run APK directly from dist/:

adb install -r dist/BeamDrop-Receiver.apk

Rebuilding the APK with Gradle:

  1. Ensure your Android SDK path is exported:
    export ANDROID_HOME="$HOME/Library/Android/sdk"
  2. Navigate to the android directory and assemble:
    cd android && ./gradlew assembleDebug
  3. The APK will be generated at:
    android/app/build/outputs/apk/debug/app-debug.apk
    

8. Background Receiving on Android

Android actively throttles background execution to conserve battery. To ensure BeamDrop stays responsive when the screen turns off or while using other apps:

  1. Disable Battery Optimization:
    • In BeamDrop on Android, open Settings.
    • Tap "Disable Battery Optimization" and select Allow (ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).
  2. App Battery Settings:
    • Open device Settings β†’ Apps β†’ BeamDrop β†’ Battery.
    • Select Unrestricted (prevents Android from putting the app to sleep).
  3. Lock App in Recent Apps:
    • Swipe up to open Recent Apps.
    • Tap the BeamDrop app icon at the top of its window card and tap Lock.
  4. Foreground Service Notification:
    • BeamDrop automatically displays an ongoing notification ("BeamDrop Active"). This signals the Android kernel to keep the background process alive.

9. Troubleshooting & FAQ

  • Devices don't discover each other on public/office Wi-Fi:
    • Many corporate, university, and public cafΓ© networks enable AP Isolation, preventing connected devices from talking directly to each other.
    • Solution: Turn on your Android device's Portable Wi-Fi Hotspot and connect your Mac to it. This provides an isolated high-speed 5GHz direct connection without router interference.
  • Firewall blocking transfers:
    • Ensure local network connections on ports 8765 and 8768 are permitted (System Settings β†’ Network β†’ Firewall).
  • Images don't appear in Gallery immediately:
    • BeamDrop sets IS_PENDING = 0 and triggers MediaScannerConnection.scanFile. Google Photos and native galleries will index immediately. Pull down to refresh if your gallery app caches views.
  • Continuity camera snapshot shows permission error:
    • Ensure the Camera permission is granted on Android under Settings β†’ Apps β†’ BeamDrop β†’ Permissions β†’ Camera.

About

BeamDrop brings seamless AirDrop & KDE Connect features to macOS and Android over local Wi-Fi. Features zero-click file transfers with auto-gallery indexing, live 2-way clipboard sync, remote trackpad/keyboard, media remote, presentation clicker, and system commands. 100% private, open-source, and offline with zero cloud servers or tracking.

Topics

Resources

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages