Web and phone viewer
Any browser is a full client for your live session: it decrypts locally, renders every pane, and types back into the real shell on your machine.
Three ways in
- The dashboard: sign in at termuna.com/app, open a session from the live list, and keep typing. Your session keys come from your encrypted vault, unlocked on the device.
- A share link: paste the session's link into any browser - no account needed. The key travels in the URL fragment, which never reaches the server, and the browser remembers it so the link is pasted once.
- Your phone's browser: sign in at termuna.com/app on the phone, or install the dashboard to your home screen, and you have a full viewer with the soft-key row below.
Native Android and iOS apps are in the works: follow them on the roadmap.
Built for touch
- A soft-key row supplies what phone keyboards lack: Esc, Tab, Ctrl, arrows, and common symbols.
- The layout is keyboard-aware, and the page installs to your home screen as an app.
- You can open tabs, split panes, and rename tabs from the phone, driving the same session that runs on your desktop.
Snippets at your prompt
Commands you keep retyping live as snippets in your encrypted vault, the same vault your SSH hosts sync through. Manage them on the dashboard's snippets page: name, the command (several lines are fine), an optional note on when it is safe to run. In an open session a strip of your freshest snippets sits above the soft keys, or above the composer in an agent conversation, with "all" for the rest. Tapping one types the command into the input and stops there: Enter is yours, a multi-line snippet leaves its last line waiting at the prompt, and nothing ever runs on its own. Snippets are sealed in the browser before they leave it; the relay stores ciphertext only.
The same snippets are on the desktop,
where Ctrl+K inserts one and a selection saves one, and on
the phone, where the strip above the
soft keys reads and inserts them but never creates or edits one. One
vault, one list, the same rule everywhere: a snippet types itself and
you press Enter.
Rendering and privacy
Decryption happens entirely in the page; the viewer subscribes to sealed frames and renders one terminal per pane, with the full split tree. The server relays ciphertext it cannot read - the same guarantee as the desktop (the security model).
Reconnects
Every frame carries a sequence number and the viewer tracks the last one it rendered. When the connection drops - elevator, tunnel, sleep - the viewer asks the relay for everything since that sequence and replays the gap. If the relay can no longer serve that stretch, the viewer does a full resync instead of showing a corrupted in-between state.
When a session needs you
A pane that rings its bell or emits an OSC 9/777 notification while nobody is typing - typically an agent waiting on a question - pushes a notification to your browser. Enable it per browser or device on the dashboard's Devices page. The text is generic by design: the payload carries only the attention type and the session id, because the relay cannot read the session and so cannot quote it. At most one push per session per minute; tapping the notification opens that session when the browser already holds its key.
This is browser push. Notifications in the native mobile apps are on the roadmap, not shipped yet.
The demo session
The terminal on the homepage is this viewer, attached to a real session that runs in a sandboxed container on our machine and is shared through an ordinary share link - the same relay, the same encryption, the same code path as your own sessions. Nothing about it is special-cased, which is the point: what you learn there transfers one-to-one.
- Shared: everyone on the page is typing into the same session, and everyone sees everyone's keystrokes. Do not paste anything you care about.
- Sandboxed: the demo shell runs as a locked-down user in a container with no network egress and a read-mostly playground directory.
- Recycled: the sandbox is torn down and rebuilt on a timer (the countdown in the viewer bar), so each visitor gets a reasonably fresh one. The share link survives the reset - the fresh sandbox answers on the same session. Your own sessions never recycle: they survive reboots, closed laptops and lost Wi-Fi.
- End to end encrypted anyway: the decryption key rides in the link fragment, exactly as it does for a session you share yourself. The relay routes ciphertext it cannot read, demo included.