Skip to content

vismaytiwari/hotdrop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HotDrop

Local two-way file transfer between macOS and Android over Wi-Fi or Personal Hotspot — no internet, no cloud, no cables.

Platform License


What it does

Direction How
Mac → Android Drag a file onto HotDrop on Mac, scan the QR code on Android, tap Download
Android → Mac Pick a file on Android, tap Upload — it lands in ~/Movies/HotDrop

Transfers are resumable: if the connection drops mid-way, reconnect and tap Resume — it picks up from the last saved byte.


Requirements

  • macOS 12 Monterey or later
  • Node.js 18 or later (download)
  • Android device (any modern browser — Chrome recommended) on the same network

Installation

git clone https://github.com/vismaytiwari/hotdrop.git
cd hotdrop
npm install

Running

npm start

This builds the TypeScript source and launches the Electron app.


Step-by-step usage

1 · Get both devices on the same network

Option A — Mac Personal Hotspot

  1. Open System Settings → General → Sharing
  2. Enable Internet Sharing (share from Wi-Fi/Ethernet → to Wi-Fi)
  3. Connect your Android phone to that hotspot

Option B — Shared Wi-Fi router Just connect both Mac and Android to the same Wi-Fi network.


2 · Start a session on Mac

  1. Launch HotDrop (npm start)
  2. Set a Password in the left sidebar (default: hotdrop)
  3. Optionally adjust Max receive (maximum file size Android can upload)
  4. Click Start session
  5. A QR code and URL appear — the app is now listening

3 · Connect from Android

  1. Open your Android camera app and scan the QR code
    (or manually type the URL shown in the app into Chrome)
  2. Android will show a security warning about the certificate — this is expected.
    Tap Advanced → Proceed to [IP address] to trust the local self-signed certificate.
    You only need to do this once per session.
  3. Enter the password and tap Connect

4 · Send a file Mac → Android

  1. On Mac, drag a file onto the Mac → Android drop zone, or click Select file
  2. On Android, the file appears in the Download From Mac section
  3. Tap Download — the browser saves it to your Downloads folder

5 · Send a file Android → Mac

  1. On Android, scroll to the Send to Mac section
  2. Tap Choose file and select a file from your phone
  3. Tap Upload
  4. The file is saved to ~/Movies/HotDrop/ on your Mac

Pause and Resume

  • Tap Pause at any time during an upload
  • Tap Resume to continue — progress is never lost
  • If the connection drops, reconnect from step 3 and tap Resume

6 · Stop the session

Click Apply & restart in the Mac sidebar to change settings, or close the app.


Keyboard shortcut

Press ⌘ Shift M to toggle the app between full window and a compact mini-player that shows live transfer progress.


Receive folder

Uploaded files from Android land in ~/Movies/HotDrop by default. The folder is created automatically.


Security notes

  • All traffic uses self-signed TLS (HTTPS on the local network) — this is why Android shows a certificate warning
  • Each session generates a fresh 256-bit random token — the QR code URL contains it
  • Login is rate-limited: 5 failed attempts trigger a 30-second lockout
  • Only one Android client can be connected per session
  • Auth cookies are HttpOnly, Secure, SameSite=Strict
  • The app only listens on your local network interface — it is not reachable from the internet

Build for distribution

npm run dist:mac

Produces a signed .dmg and .zip in the release/ folder.


Running tests

npm test

Tech stack

Layer Technology
Desktop shell Electron
Language TypeScript
Local server Express 5 + Node https
TLS selfsigned (self-signed cert generated at start)
QR codes qrcode
Tests Vitest

License

MIT

About

Local two-way file transfer between macOS and Android over Wi-Fi — no internet, no cloud, no cables.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors