WebRTC · nothing uploaded

Send a file straight to their browser

Drop a file, share the link, and the bytes stream directly from your device to theirs — encrypted, with no copy left on any server.

End-to-end encryptedDirect peer-to-peerZero server storageAny size, any type

Drop your file here

or click to browse

Any file type · Any size · It never leaves your device until a recipient connects

How the transfer works

You
direct · encrypted
Recipient
1Handshake

Our server only relays a few KB of connection details (WebRTC SDP/ICE), then steps out of the way.

2Direct & encrypted

File bytes stream browser-to-browser over a DataChannel, encrypted end-to-end with DTLS.

3Zero storage

Nothing is uploaded or saved. Close the tab and the room disappears — no copy to leak.

Read the full technical breakdown

Prefer the terminal? Use the CLI

Install once, then send and receive from your shell — fully interoperable with the browser.

$markdrop send report.pdf

Prints a share link + QR code. Hand it to a browser or another terminal. Pass a folder to send a whole directory.

TerminalBrowserSend from your shell, receive in any browser via the link.
BrowserTerminalDrop a file on this page, receive it with markdrop get.
TerminalTerminalFully headless — great for servers and scripts.
  • Whole folders. Point at a directory — it's zipped, sent, and unzipped on arrival.
  • No size limit. Streams straight to disk, so it isn't capped by browser memory.
  • Custom output. -o picks the save path or filename; -y auto-accepts for scripts.
  • Same network, same room. Uses the exact WebRTC protocol as the browser — they interoperate.