Fast local text and file transfer between multiple devices on the same network.
Features · Quick start · Security · Troubleshooting
AzuDrop is a lightweight local web app for transferring text and files between devices connected to the same network.
Run it on one device, open the generated local network link or scan the QR code from any other device, and start sharing text or files without cloud storage, accounts, or external servers.
It is designed for quick everyday transfers between laptops, desktops, phones, tablets, and other devices on a trusted local network.
- Connect multiple devices at the same time
- Works across desktop and mobile browsers
- QR code for fast connection
- Shows all available local network links
- Online device list with name, type, IP address, and status
- Send text to all devices or to a selected device
- Received text history
- Copy button for every text item
- Pin important text items
- Search and sort received texts
- Reuse, share, save, or delete text items
- Export text history as a
.txtfile
- Upload multiple files
- Mobile-friendly upload area
- Drag and drop support on desktop
- Upload progress indicator
- File search and sorting
- Minimal image thumbnails
- Preview support for common media types
- Copy download links
- Share file links on supported devices
- Rename files
- Delete selected files or all files
- Persistent device identity per browser
- Trust or untrust known devices
- Block unwanted devices
- Forget old devices
- Blocked devices can connect but cannot send text, ping, or upload files
- Light mode and dark mode
- Local system font stack for a native feel
- Mobile tab navigation for quick access to sections
- Desktop navigation shortcuts
- Activity feed limited to the latest events
- Sound alerts with a built-in test button
- SVG favicon included
- Node.js 18 or newer
- A local network where devices can reach each other
- A modern browser on each device
Recommended browsers:
- Chrome / Chromium
- Edge
- Firefox
- Safari
Clone the repository:
git clone https://github.com/your-username/azudrop.git
cd azudropInstall dependencies:
npm installStart AzuDrop:
npm startOpen it on the host device:
http://localhost:3000
Then open one of the displayed network links from another device on the same network, or scan the QR code.
This project also includes simple launchers for local use.
Double-click:
Run AzuDrop - Windows.bat
Double-click:
Run AzuDrop - macOS.command
If macOS blocks execution, run once:
chmod +x "Run AzuDrop - macOS.command"Then double-click the file again.
Run:
chmod +x run-azudrop-linux.sh
./run-azudrop-linux.shAzuDrop starts a local Node.js server on port 3000 by default.
The server:
- Serves the web interface
- Generates local network URLs
- Generates a QR code for the preferred network URL
- Handles file uploads and downloads
- Uses Socket.IO for real-time text, device, alert, and activity updates
Uploaded files are stored locally in:
uploads/
Device trust data is stored locally in:
azudrop-trust.json
Use the PORT environment variable:
PORT=4000 npm startOn Windows PowerShell:
$env:PORT=4000; npm startThen open:
http://localhost:4000
azudrop/
public/
app.js
favicon.svg
index.html
style.css
uploads/
package.json
server.js
README.md
README.fa.md
Run AzuDrop - Windows.bat
Run AzuDrop - macOS.command
run-azudrop-linux.sh
AzuDrop is intended for trusted local networks.
Do not expose it directly to the public internet without adding additional protections such as authentication, HTTPS, rate limiting, and stricter upload controls.
Important notes:
- Anyone who can reach the local URL may be able to open the app.
- Device Trust helps manage known and blocked devices, but it is not a replacement for full authentication.
- Uploaded files are stored on the host device.
- Files are not encrypted by default.
- Use AzuDrop only on networks you trust.
Make sure:
- All devices are on the same network
- The host device and the other device can reach each other
- You are using the network link, not
localhost - The firewall allows Node.js on private networks
- VPN, guest Wi-Fi isolation, or hotspot isolation is not blocking local devices
USB tethering can give the computer internet access through the phone, but it does not always allow the phone to connect back to the computer.
For best results, use one of these setups:
- Connect all devices to the same Wi-Fi router
- Connect devices to the computer's mobile hotspot
- Use a trusted local network where device-to-device access is allowed
Most browsers block audio until the user interacts with the page.
Click Alerts off or Test sound once after opening the app. After that, sound alerts should work for new events.
Run:
chmod +x "Run AzuDrop - macOS.command"Then try again.
Install dependencies:
npm installStart the development server:
npm run devThe app will run at:
http://localhost:3000
The current app is intentionally simple and does not require a front-end build step.
Planned or recommended improvements:
- PIN / room code for joining
- Auto-expiring files
- Download selected files as ZIP
- Better clipboard paste support for images and files
- PWA install support
- Share Target support on mobile
- Optional portable Node.js runtime bundles
- Electron desktop version with tray icon
- Clipboard sync mode
- End-to-end encryption mode
Contributions are welcome.
Suggested workflow:
- Fork the repository
- Create a feature branch
- Make your changes
- Test on desktop and mobile browsers
- Open a pull request
Please keep the app lightweight and avoid unnecessary front-end dependencies unless there is a clear benefit.
Made by Mohammad Mehdi Azizi.
- X: https://x.com/the_azzi
- GitHub: https://github.com/TheGreatAzizi
- Telegram: https://t.me/luluch_code
- Website: https://theazizi.ir/
- Financial support: https://theazizi.ir/#support


