Documentation
9t is a quiet, self-hosted workspace for moving the things you need between your devices — files, snippets, links, handoffs, phone sync. One server, one owner, your infrastructure.
Three commands, then a wizard. Local, LAN, or public behind your proxy.
Pair your phoneAPK install, 5-digit approval, background receiving that survives Doze.
Fix the networkThe right address for your phone, WSL forwarding, hotspots.
Share with controlExpiring links, passwords, access counts, revocation, QR handoff.
How it fits together
Everything flows through your instance. Nothing touches a third party.
What 9t promises
One inbox, not three apps
Paste text, links, screenshots, and files into the same capture flow. The inbox classifies it — you never pick a type first.
Your server, your storage
Data stays in storage you choose, with opaque file keys and atomic writes. No third-party workspace in the middle.
LAN-first handoff
The Android client prefers the local network, falls back to the internet route, and reconnects in the background.
Share with control
Expiring, optional-password public handoffs with access counts and revocation. Nothing shared stays shared by accident.
Private by default
Auth is mandatory in every mode. No public-without-auth state can exist — setup refuses to create one.
Go deeper
Backups, full CLI reference, systemd service, safe updates.
APIThe HTTP API behind the dashboard, CLI, and Android client.
PrinciplesWhat 9t is, what it refuses to become, and the roadmap.
The markdown originals live in the repo under docs/. Found a mistake? Open a pull request — docs fixes are the easiest first contribution.