| Crates.io | send-tuit |
| lib.rs | send-tuit |
| version | 0.1.1 |
| created_at | 2025-11-29 19:40:10.261507+00 |
| updated_at | 2025-11-29 22:30:13.173934+00 |
| description | A minimal terminal UI for P2P file transfers via iroh |
| homepage | https://github.com/MrBloodrune/send-tuit |
| repository | https://github.com/MrBloodrune/send-tuit |
| max_upload_size | |
| id | 1957338 |
| size | 383,230 |
A minimal terminal UI for P2P file transfers via iroh. Private, secure, and fully compatible with sendme CLI and AltSendme. E2E encryption and privacy with terminal simplicity — just send tuit.
| Feature | Description |
|---|---|
| No setup | No accounts, no server config, no port forwarding |
| Works anywhere | Direct P2P when possible, automatic relay fallback |
| QR code sharing | Scan ticket with phone to transfer across devices |
| SSH friendly | Clipboard works over remote sessions (OSC52) |
| Keyboard driven | Vim/Emacs/Arrow key presets |
| Fuzzy search | / to search, results merge into navigable tree |
| Tree navigation | Expandable directory tree with lazy loading |
| Conflict handling | Rename, overwrite, or skip existing files |
| Multi-file support | Files or entire directories |
| Progress tracking | Real-time speed, ETA, connection type |
| Themeable | Dracula, Nord, Catppuccin, Tokyo Night, Gruvbox |
Secure & private by design:
| Feature | Description |
|---|---|
| QUIC + TLS 1.3 | Modern encrypted transport |
| E2E encrypted | Relays see nothing |
| Content-addressed | BLAKE3 hashing, tamper-proof |
| Fresh NodeID | No persistent identity per transfer |
| Incognito mode | No history, no config, clean exit |
| Symlink protection | Skipped by default (toggle: S) |
| Path traversal protection | Secure file handling |
| No tracking | No analytics, no accounts |
cargo install send-tuit
Download from GitHub Releases (Linux, macOS, Windows).
| Platform | Binary |
|---|---|
| Linux x86_64 | tuit-*-x86_64-unknown-linux-gnu.tar.gz |
| Linux x86_64 (static) | tuit-*-x86_64-unknown-linux-musl.tar.gz |
| Linux ARM64 | tuit-*-aarch64-unknown-linux-gnu.tar.gz |
| macOS Intel | tuit-*-x86_64-apple-darwin.tar.gz |
| macOS Apple Silicon | tuit-*-aarch64-apple-darwin.tar.gz |
| Windows | tuit-*-x86_64-pc-windows-msvc.zip |
git clone https://github.com/MrBloodrune/send-tuit
cd send-tuit
cargo build --release
cp target/release/tuit ~/.local/bin/
Drop files in — no accounts, no cloud, just peer-to-peer.
tuit # normal mode
tuit --incognito # no history, no config, clean exit
| Flag | Description |
|---|---|
--incognito |
Private session: no history saved, no config loaded, data wiped on exit |
--config <path> |
Use custom config file instead of default |
--receive-dir <path> |
Override download directory |
1 for Send tabj/k or arrowsSpace to select files, a for alls to sendc to show QR code)2 for Receive tabCtrl+V)Enter to start download/ to start searchj/k or arrows to navigate resultsSpace to select, Enter to confirm viewEsc to cancel or clear resultsl or →| Key | Action |
|---|---|
1-4 |
Switch tabs |
j/k or ↑/↓ |
Navigate |
h/l or ←/→ |
Parent/Enter directory |
g/G |
Jump to first/last |
/ |
Search files |
Space |
Toggle selection |
a |
Select all |
c |
Clear selection |
s |
Send selected |
S |
Toggle symlink following |
c |
Copy ticket / Show QR (Active tab) |
t |
Cycle theme |
B |
Change keybindings |
? |
Help |
q |
Quit |
Tuit uses the standard iroh_blobs::ticket::BlobTicket format - the same ticket format used by the official sendme CLI and compatible GUI applications. Tickets are fully interchangeable.
# Send from Tuit, receive with sendme CLI
sendme receive <ticket-from-tuit>
# Send with sendme CLI, receive in Tuit
sendme send ./file # paste the ticket into Tuit's Receive tab
# Send from Tuit, receive with AltSendme
# Press 'c' to show QR code, scan with phone, paste ticket into AltSendme
Press c on an active send to display a QR code. The QR encodes the ticket text which can be:
Settings are stored in ~/.config/intuit/config.toml and auto-saved when you change theme or keybindings.
[persistence]
history = true # save transfer history
[preferences]
theme = "tokyo-night" # catppuccin, dracula, nord, gruvbox, tokyo-night
key_preset = "vim" # vim, arrows, emacs
receive_dir = "~/Downloads" # where to save received files
[transfer]
max_concurrent_sends = 50
max_concurrent_receives = 50
Use --incognito to skip config entirely for private sessions.
RUST_LOG=debug tuit 2>debug.log
MIT