A blazing-fast, zero-dependency, private local network file sharing web app.
Transfer photos, 4K videos, documents, and archives directly between your PC, Mac, iPhone, and Android over local Wi-Fi.
flowchart TB
subgraph ROUTER["📶 Local Network Layer (Wi-Fi Router)"]
WIFI["Local Wi-Fi Network / LAN · Direct P2P Speeds · 0% Internet Data Used"]
end
subgraph HOST["💻 Host Machine (PC / Laptop / Mac)"]
SERVER["Python Multi-Threaded Server (app.py)"]
STORAGE["uploads/ Storage (Permanent Disk Persistence)"]
ZIP_ENGINE["In-Memory Auto-ZIP Engine (JSZip & zipfile)"]
SERVER -->|"Streams & saves files"| STORAGE
ZIP_ENGINE -->|"Bundles folders into .zip"| SERVER
end
subgraph CLIENTS["📱 Connected Devices (Phones / Tablets / PCs)"]
PHONE["Mobile Browser (iOS / Android)"]
PC2["Secondary PC / Mac"]
QR["Instant QR Code Pairing"]
end
subgraph FEATURES["⚡ Core Features & Capabilities"]
DROP["Drag & Drop Files or Whole Folders"]
AUTOZIP["Auto-Zips Folders Client-Side"]
PREVIEW["Live In-Browser Previews (Images/Videos/PDFs)"]
SYNC["5-Second Live Device Sync"]
end
QR -->|"Scans network URL"| PHONE
PHONE <-->|"Direct LAN Transfer"| WIFI
PC2 <-->|"Direct LAN Transfer"| WIFI
WIFI <-->|"Zero-Dependency HTTP Stream"| SERVER
DROP --> AUTOZIP
AUTOZIP --> ZIP_ENGINE
SERVER --> SYNC
SYNC --> CLIENTS
SERVER --> PREVIEW
Sending a file from your PC to your phone (or vice versa) shouldn't require:
- ❌ Uploading to Google Drive or OneDrive just to download it 1 minute later.
- ❌ Sending compressed images/videos over WhatsApp or Telegram.
- ❌ Installing proprietary apps and creating accounts on every device.
- ❌ Being locked into a single ecosystem (like Apple AirDrop).
AirDrop Local solves this by turning any computer into a local Wi-Fi file hub in seconds. Open the page on any phone, tablet, or computer on the same network and transfer at full local router speeds (no internet data consumed!).
- ⚡ Zero External Dependencies: Built with 100% pure Python standard library (
http.server,socket). Nopip install, no virtual environments, no bloat. - 📱 Instant QR Code Pairing: Click "Scan to Connect" on your PC, point your phone's camera at the QR code, and you're instantly ready to transfer.
- 📋 Shared Clipboard & Links: Instantly sync text, Wi-Fi passwords, code snippets, or URLs between your phone and PC with one-click copy.
- 📁 Folder Upload & Download as ZIP: Drag and drop entire folders (like Blender projects, code repos, or photo albums). Download any folder as a
.ziparchive with one click. - 🚀 Multi-Threaded Transfers: Concurrent uploads and downloads without freezing or blocking other connected devices.
- 📂 Drag & Drop Simplicity: Drop single files, batches, or whole directories directly into the browser drop zone.
- 📊 Real-Time Progress: Accurate upload progress bar, upload speed, and transfer size indicators.
- 👁️ In-Browser Previews: Preview images, videos, audio, and documents inline before downloading.
- 🔄 Live Auto-Sync: The file list automatically updates every 5 seconds across all connected devices.
- 🌓 Dark & Light Modes: Modern glassmorphism UI with automatic theme persistence.
- 🛡️ 100% Private & Offline: Transfers happen strictly on your local network. No external servers or internet connection required.
git clone https://github.com/anshk1234/airdrop.git
cd airdropDouble-click run.bat, or run:
python app.pyRun the shell script or start with Python:
chmod +x run.sh
./run.sh
# or:
python3 app.pyThe server will start and automatically launch http://localhost:5050 in your default browser.
- Ensure your phone/tablet is connected to the same Wi-Fi network as your host computer.
- On your computer screen, click the "Scan to Connect" button in the top-right corner.
- Scan the QR code with your phone's camera (or open the network URL shown on screen, e.g.
http://192.168.1.5:5050). - Send from Phone to PC: Tap the drop zone to pick photos, videos, or documents from your phone.
- Download from PC to Phone: Tap the download icon next to any file shared from your PC.
airdrop/
├── app.py # Pure Python multi-threaded HTTP server & REST API
├── run.bat # One-click Windows launcher
├── run.sh # One-click macOS / Linux launcher
├── README.md # Project documentation
├── LICENSE # MIT License
├── .gitignore # Excludes temporary files and user uploads
├── static/
│ ├── index.html # Responsive web UI & QR modal
│ ├── style.css # Modern CSS with dark/light theme
│ └── app.js # File transfer logic, progress tracking & live sync
└── uploads/ # Local directory where transferred files are saved
└── .gitkeep
You can customize the port by modifying the PORT variable near the top of app.py:
PORT = 5050 # Change to 8080, 3000, or any free port1. My phone cannot open the page (Connection timed out)
- Same Network: Verify both your phone and PC are connected to the exact same Wi-Fi network (and not one on cellular data or guest Wi-Fi).
- Windows Firewall: When running Python for the first time, Windows Defender may ask for network permissions. Ensure you allow Python on Private Networks.
- Router AP Isolation: Some public or university Wi-Fi networks enable "Client Isolation", which prevents devices from talking to each other. On home routers, this is disabled by default.
2. Where are the uploaded files saved?
All files are permanently saved to the uploads/ folder inside the project directory. You can open and manage them directly through your operating system's file manager anytime.
3. Is there any file size limit?
No! Because transfers are handled via chunked binary streams over your local network, you can transfer files of any size (even 10GB+ video files) at the maximum speed your Wi-Fi router supports.
Contributions, feature suggestions, and bug reports are welcome!
Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.