Send, and it's there. · 发出,即达。 · 无需等待,已在彼端。
A privacy-friendly LAN file transfer tool. Send files between devices on the same Wi-Fi / local network right from your browser — no cloud, no accounts, no installation.
Jida literally means "it arrives right away" — 即 (ji) is immediate, no waiting; 达 (da) is arrival, delivery done.
- No middleman. Data travels end-to-end between devices. There is no "relay", "store" or "proxy" inside the name — privacy and security by default.
- Simplicity is speed. Open it, pick a file, send it. Done. No configuration, no learning curve.
- It's about people. "达" is not just a packet arriving — it's delivery, like handing a parcel to a friend.
Same network, any file, any device, any platform: select → send → it's there.
- Devices appear automatically on the same service / room
- Pair with QR code or short-code rooms
- Relay by default so transfers always work; optional WebRTC direct connection for speed
- Pure LAN — no public internet required
- Windows portable package: end users need no Node.js, just double-click to run
Get the latest Windows portable package from the Releases page:
Jida-win-x64-<version>.zip— unzip and double-clickstart.bat, no Node.js requiredSHA256.txt— verify the download checksum
Windows Smart App Control: running the unsigned package may show "Smart App Control blocked an unsafe file". This is normal protection for open-source software. Right-click the
.zip→ Properties → tick Unblock → OK, then extract (or click "More info" → "Run anyway"). You can also verify the download againstSHA256.txt.
For other platforms, run from source (see below).
A developer builds the package first:
npm install
npm run pack:winOutput directory: release/Jida-win-x64/
- Zip that folder and hand it to your users
- After unzipping, users should open
guide.htmlfirst (or double-clickopen-guide.bat) - Then double-click
start.bat - Phone and computer on the same Wi-Fi — scan the QR code or open the LAN address shown in the window
Detailed walkthrough: docs/使用说明书.html (copied to root as guide.html in the package).
- Node.js 20+
- Devices connected to the same local network
npm install
# Dev mode (frontend hot-reload + backend)
npm run dev
# Open http://127.0.0.1:5173 in a browser
# Production build and start
npm run build
npm start
# e.g. http://192.168.x.x:3000- Run the service on one machine (
npm start, orstart.batin the portable package) - The terminal prints LAN addresses and a QR code
- Other devices open that address in their browser
- Tap the other device in Nearby devices → pick files → they accept → download
- Default room:
lobby - New room generates a 6-digit code; both sides join the same room
- Or scan a QR code carrying
?room=
| Env var | Description | Default |
|---|---|---|
PORT |
Service port | 3000 |
HOST |
Bind address | 0.0.0.0 |
$env:PORT=8080; npm start| Command | Description |
|---|---|
npm run dev |
Dev mode (frontend + backend) |
npm run build |
Build frontend + compile server |
npm start |
Production start |
npm run typecheck |
Type check |
npm run pack:win |
Build Windows portable package to release/Jida-win-x64 |
If other devices can't open the page, allow inbound access on the service port (default 3000) on the machine running the service.
- Browser-based over Wi-Fi; not system-level Bluetooth file transfer
- Keep the page in the foreground during transfers
- Very large files are limited by browser memory
- Recommended for use on trusted local networks only
- Server: Node.js + Fastify + WebSocket
- Frontend: Vite + TypeScript
- Relay chunking + optional WebRTC DataChannel
See ROADMAP.md for planned features, priorities and the versioning convention.
Contributions are welcome! See CONTRIBUTING.md for how to get started, and check our security policy for reporting vulnerabilities.
MIT © blackteaYES