oma-drop
v1.0.4
Published
oma 的局域网文字和文件快传工具。
Readme
oma-drop
oma-drop is a lightweight, self-hosted LAN drop for sending text and files between computers and phones. Start one local service, open its address on the same network, and share content immediately.

Why oma-drop
- No account, login, or authentication flow
- Text messages delivered in real time over WebSocket
- New clients receive all messages from the current service session
- Files up to 100 MB with original filenames preserved, including Chinese filenames
- Messages and uploaded files are kept only for the current process session
- Single Node.js service with no database and no separate frontend build
oma-drop is designed for trusted local networks. It does not provide access control or durable history.
Install
Requires Node.js 18 or newer.
npm
Install globally for a persistent command:
npm install --global oma-drop
oma-drop startOr run it without a global installation:
npx oma-drop startHomebrew
brew tap wyf0931/oma-drop
brew install oma-drop
oma-drop startStart and connect
After startup, oma-drop prints the addresses that can be opened in a browser:
Access URLs:
Local: http://localhost:3000
LAN: http://192.168.0.46:3000Open the LAN address on other devices connected to the same network. The service binds to 0.0.0.0 by default and reports detected private IPv4 addresses in the 10.*, 172.16.* to 172.31.*, and 192.168.* ranges.
Change the port when needed:
oma-drop start --port 8080The CLI also accepts the PORT environment variable.
Commands
oma-drop start # Start in the background
oma-drop stop # Stop the service
oma-drop restart # Restart and clear the current session
oma-drop status # Show status and access URLs
oma-drop logs # Show recent server logs
oma-drop run # Run in the foreground
oma-drop --help # Show command helpWhen using npx, prefix the same commands with npx oma-drop.
Source checkout
npm install
./bin/ops.sh start
./bin/ops.sh status
./bin/ops.sh stopThe source operations script also supports restart and logs. npm start runs the server in the foreground.
Runtime data
The npm CLI stores its PID file, log, port information, and temporary uploads under ~/.oma-drop/. The server stores messages in memory. Restarting the service clears the current messages and uploaded files by design.
Architecture
- Node.js 18+
- Express 5 for HTTP routes and static assets
wsfor real-time messaging- Multer for multipart file uploads
- Native HTML, CSS, and JavaScript frontend
HTTP and WebSocket traffic share one port. The project intentionally remains a single service without authentication, a database, or a separate frontend application.
License
MIT. See LICENSE.
Maintenance
Project background, implementation boundaries, operational commands, and maintenance conventions are documented in AGENTS.md.
