Browser-compatible file transfer CLI and TUI built with Bun, WebRTC, and Rezi.
- Bun
>= 1.3.11
bun add -g @elefunc/send
send send peers send offer ./file.txt send accept send tui
When 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 tui
bun install
bun run typecheck
bun testThe package is Bun-native and keeps its runtime patches in runtime/.