flit
Highlights
- WebRTC data channels: file bytes never touch the server, even in transit
- Android Web Share Target β 'Share β flit' works from any app's OS share sheet
- Reuses waste-go's YAW/2.1 signaling and Ed25519 identity β same anchor, same crypto, no new server
- Known devices tab: tap Connect to reconnect without re-scanning β deterministic room from sorted peer IDs
- Multi-file send with per-file accept/reject and auto-download on receipt
- In-app QR scanner via native BarcodeDetector API β no library, camera overlay with cancel
- Go CLI for headless homelab boxes β renders a QR in the terminal using Unicode block characters
- Daemon mode: persistent receiver that auto-accepts files from trusted peers, saves to a configured directory
- hello binds Ed25519 identity to the DTLS session β impostor can't pass even if they discover the room name
- SHA-256 verified on receipt β file is confirmed intact before it's saved
- TURN relay fallback for CGNAT/mobile, still fully E2E encrypted
A deliberately small tool for a specific annoyance: getting a file from one device to another, right now, without anything landing on a serverβs disk.
Shares an anchor with waste-go β same WebSocket signaling, same Ed25519 identity model, same forward-secret handshake (YAW/2.1). flit strips out everything else (chat, mesh, presence) and replaces it with QR-based device pairing and binary file transfer over WebRTC DataChannels.
Runs as a PWA (primary β browser + Android share sheet) and a Go CLI (for headless machines). Neither stores files. Nothing persists except a local keyring of trusted device identities β remembered peers reconnect with one tap, no QR required.