Browser-compatible file transfer CLI and TUI built with Bun, WebRTC, and Rezi.
- Bun
>= 1.3.11
bun add -g @elefunc/sendsend
send peers
send offer ./file.txt
send accept
send tuiWhen no subcommand is provided, send launches the TUI by default.
--room is optional on all commands. If you omit it, send creates a random room and prints or shows it.
In the TUI, the room row includes a 📋 invite link that opens the equivalent web app URL for the current committed room and toggle state.
When a peer filter is active, that invite link also carries the current filter.
Not every command has a flag-for-flag TUI dual. CLI automation stays command-specific:
peers:--wait,--jsonoffer:--to,--wait-peer,--jsonaccept:--from,--N,--json
Save-path controls only matter where incoming files are written, so --folder and --overwrite are relevant on accept and tui.
--self accepts three forms:
namename-id-idusing the attached CLI form--self=-ab12cd34
SEND_SELF supports the same raw values, including SEND_SELF=-ab12cd34.
The id suffix must be exactly 8 lowercase alphanumeric characters.
send peers --self alice
send offer ./demo.txt --self alice-ab12cd34
send accept --self=-ab12cd34
send accept --from alice --N 1
send tui --filter bob-p2
SEND_SELF=-ab12cd34 send tuibun install
bun run typecheck
bun testThe package is Bun-native and keeps its runtime patches in runtime/.