DOCS · Two-minute read
Docs
Quick start and fixed parameters. Full engineering notes live in the repo docs/.
Quick start
Install → grant local network permission → start discovery → QR or manual IP pair → confirm SAS → pick files.
- 01
Install & grant
Install the client and allow the Local Network permission. Mobile also needs LAN discovery.
- 02
Start discovery
With both ends on the same LAN, tap discover to see candidate devices.
- 03
Compare SAS
After QR or manual connect, both screens show the same short digits — confirm only if they match.
- 04
Send & receive
Pick files and send; the receiver confirms within 60 seconds, then transfer starts and can resume.
Discover
Candidates are advertised over mDNS as _ssnd._tcp on the same LAN. Results carry a name and address only — never an identity claim. Discovered never means trusted.
- AP isolation, cross-VLAN setups, and corporate firewalls block discovery, which then falls back to limited discovery.
- Manual connect: enter the peer IP directly, default port 39551.
- Nothing about your devices is uploaded during discovery.
Pairing & SAS
The pairing payload is signed with the long-term Ed25519 identity key and verified inside the engine before the SAS is shown. SAS is an app-layer check; TLS cannot replace it (ADR-001).
- The pairing window is 120 seconds; after that, start over.
- Mismatched digits mean a man in the middle — abort rather than confirm "close enough".
- Paired devices land in a local trust store and can be revoked per device.
Send files
A FileOffer from an untrusted peer is rejected by the engine itself — this is a state-machine constraint, not a UI guard.
- The receiver must confirm within 60 seconds; a timeout counts as a refusal.
- Directories and single files are both handled as transfer tasks; partial delivery never counts as success.
- Every byte stays app-layer authenticated-encrypted, including over relay paths.
Resume
Interrupted transfers resume via a resumeToken. Data lands in a .ssnd.partial file and is atomically renamed on completion.
- There is no "shown as done but truncated" state.
- A checksum mismatch marks the task failed and retryable.
Diagnostics
The diagnostics screen exports a log bundle for troubleshooting. It never contains private keys or identity keys from the trust store.
- You can preview entries before export; sensitive fields are redacted by default.
- If you cannot connect, check network, firewall, port 39551, and version parity first.
Install first, decide later
The client runs Local by default. Read the security model in two minutes if you prefer.