Termuna: One Session, Every Screen
A fast, native terminal for Linux, macOS, and Windows whose live session keeps running on your machine and continues on the web or your phone, encrypted end to end. Born from maintaining a fleet of machines and Kubernetes clusters: whatever screen is closest becomes the terminal. The local terminal is free forever; cloud continuity is the product.
Termuna started as my own tool. I maintain a fleet of machines and Kubernetes clusters, and I wanted the session I left on my desk to be reachable from whatever device is in my hand. It grew into a full product, built in the open, milestone by milestone, with performance budgets enforced in CI.
What it is:
- Native terminal: GPU-rendered, tabs and nested splits, first-class SSH with a connection vault, remappable hotkeys, indexed scrollback search.
- Cloud continuity: the live session mirrors to the relay as it happens and resumes on the web or a phone exactly where it stopped, including the full split layout after a reboot.
- End-to-end encrypted: session keys are generated on your devices and never leave them unwrapped; the relay stores and forwards only ciphertext (X25519, Argon2id, sealed CBOR frames). The server cannot read a single session.
- Web dashboard and viewer: an Astro marketing site with React islands; the session viewer decrypts in the browser and renders one xterm.js per pane, with typing back into the live session.
- Teams: roles and invitations, shared SSH vaults wrapped per member, per-seat Stripe billing.
- Mobile: a native Flutter viewer for Android and iOS attaches to the relay like any other screen.
The stack spans a Rust engine and relay (a single binary with SQLite behind nginx), the Astro/React web, and the Flutter mobile client, all deployed by CI on every push.