← All packages

Database · Convex component

ferry-send

Send and receive end-to-end encrypted files from the terminal, a script or an AI agent.

npm install ferry-send
397downloads last week
397downloads last 12 months
v0.3.0latest, Oct 13, 2026
3releases since Oct 10, 2026

Downloads

Download history

Loading download history…

Build this

Build with ferry-send

The install and setup steps from the package documentation.

  1. 1

    Commands

    CommandWhat it does
    ferry send <files>...Opens a transfer and prints a QR code, a link and a 6-digit code. Exits when every file has arrived.
    ferry send <files>... --to <code or link>Sends into a transfer another device opened.
    ferry send --text "note"Sends a text note, alone or with files.
    ferry send - --name data.jsonSends what arrives on standard input.
    ferry receive <code or link>Receives files into the current folder.
    ferry receiveOpens a transfer and waits for another device to send files.
    ferry pairOpens a transfer that makes two devices remember each other. ferry pair <link> joins one.
    ferry devicesLists the devices this one remembers. ferry forget <device> removes one.
    ferry send <files>... --to-device <device>Sends to a remembered device, with no link or code.
    ferry listenWaits for remembered devices to send, and saves what they send. --from and --once narrow it.
    ferry mcpRuns as an MCP server for AI agents.
  2. 2

    Options

    • --out <folder> sets where received files are written. A received file never replaces an existing one.
    • --max-size <size> refuses a received file larger than this, for example 500MB or 2GB.
    • --timeout <seconds> stops after this long.
    • --admit link|any|ask sets who may join a transfer you opened. link admits only a device that has the link. any also admits a device with the 6-digit code. ask asks you for each device that uses the code. The default is ask in a terminal and link everywhere else.
    • --keep stays open after the first exchange finishes.
    • --json prints one JSON event on each line and never prompts.
    • --stdout writes the received file to standard output. Status lines go to standard error.
    • --device-name <name> sets the name other devices see for this one.
    • --server <url> and --site <url> point the tool at your own deployment. FERRY_SERVER and FERRY_SITE do the same.