End-to-end encrypted

Send files instantly, securely, privately, seamlessly, effortlessly, peer-to-peer, and without limits.

Peer-to-peer file transfers for browsers and command line. No accounts, no cloud storage, no limits. Open a room & share.

View install script View install script
$ curl -fsSL rtme.sh/get|sh
> powershell "irm rtme.sh/get|iex"
🐧 LinuxSend TUI on Unix
🪟 WindowsSend TUI on Windows
🌐 WebSend web app in Chrome

Three steps. Zero friction.

Join room

Open the web app or run the CLI. You can choose a 🏠 room name before 📋 sharing the link with your peers.

See peers

Anyone in the same room appears instantly. You can pick a 🙂 name and select the peers you want to share with.

Share files

Drop files in or wait for your peers. Transfers flow through end-to-end encrypted data channels. Done!

Built for real transfers.

🔒

End-to-end encrypted

Files travel over WebRTC data channels with DTLS encryption. Your data never touches a server unless TURN relay is needed, and even then it's encrypted.

🌐

Web & CLI

Use the browser app on any device or the CLI on your workstation. They're fully interoperable — send from terminal, receive in browser, or any combination.

📡

NAT traversal & TURN

STUN for direct connections, TURN relay as fallback. Real-time path quality indicators show exactly how your data is traveling — Direct, NAT, or relayed.

No limits

No file size caps. No bandwidth throttling. Transfer speed depends on your connection and the WebRTC path, not artificial restrictions.

💾

Stream to disk

Incoming files stream straight to your chosen folder — no memory buffering. Pick a directory once and the permission persists across sessions.

👤

Know your peers

See each peer's location, network, and device. Real-time connectivity scores and round-trip times show exactly how strong your link is.

🧩

Multiplexed transfers

Queue multiple files to multiple peers simultaneously. Each peer gets its own data channel. Live progress, speed, and ETA for every transfer.

Simple commands.
Complete control.

No install needed. Run it with bunx and you're in the interactive TUI. Or use subcommands for scripting and automation.

bunx rtme.sh@latest
loading…
rtme.sh tui

Launch the interactive terminal UI. Manage peers, offer files, and monitor transfers in real time.

rtme.sh offer <files>

Send files to peers. Target by name with --to or send to all peers.

rtme.sh accept

Receive files from peers. Use --N 1 to exit after the first save.

rtme.sh peers

Discover peers in a room. Use --json for structured output.

Options
--room <name>

Join a specific room. Omit for random room.

--self <name>-<ID>

Join as peer with friendly name or an exact ID.

--to <name>-<ID>

Target a peer by friendly name or ID. Use . for all peers.

--N <count>

Exit after N saved transfers. Use --N 1 for one-shot scripting.

--overwrite

Overwrite existing files with the same names as incoming ones.

--from <peer>

Accept only from a specific peer by name or ID.

--folder <dir>

Save incoming files to a specific directory.

--json

Emit structured NDJSON events. Pipe to jq or other tools.