termuna

Features

A complete terminal, built in.

Everything a serious terminal needs, and the parts no terminal has: sessions that outlive the window, machines without screens, agents with a permission gate. Eight chapters, one product.

A real terminal first.

Native Rust, rendered on the GPU, with JetBrains Mono in the box. Tabs, splits nested any way you like, themes and profiles that sync without an account. The budgets are enforced in CI: a build that exceeds them does not ship.

Everything is one keystroke away.

Ctrl+K finds actions, sessions, snippets and hosts. Type "ssh prod" and Enter opens the prod box.

Copy without the mouse.

Ctrl+Shift+Space labels every URL, path, hash and address on the pane. Type the label and it is on your clipboard.

Ctrl+R, across every machine.Solo

Every command you ran, on every machine, searchable from any of them. Sealed per record, and Enter puts it at the prompt without running it.

Tell me when it is done.

Arm a pane and Termuna tells you when the line you named appears, the prompt comes back, or it goes quiet. It works over SSH with nothing installed on the far end.

fig 01 · cold start< 300 msLaunch to a usable prompt, measured on every build.
fig 02 · idle memory< 100 MBThree tabs open, shared pages excluded.
fig 03 · keystroke< 20 msKey press to glyph on screen.
fig 04 · installer< 30 MBNo browser runtime in the download.
Tabs and nested splits
Nested splits in any direction, and the working set is yours to keep: capture the live session as a named layout with Ctrl+K and open it later, every pane with its target and working directory. The layout is also what syncs, restores, and resurrects.
Search that works
Scrollback search is indexed: forty thousand lines is a query, not a hang. And it is not just the pane you are looking at: one query scans every pane of every session, dormant ones included, results grouped per pane. Nothing leaves this machine.
Copy a path without reaching for the mouse
Ctrl+Shift+Space labels every URL, path, hash and address on the pane. Type the label to copy it, or insert it at the prompt, open it, or save it as a snippet. How pick mode works.
Profiles and themes
Colour schemes paint the terminal grid, never the chrome. Any font, ligatures optional.
Hotkeys, your way
Every action is remappable, chords included, and quake mode drops down on a global key.
Tell me when it is done
Arm a pane and Termuna tells you when the prompt comes back, when it goes quiet for 30 seconds, when it rings, or when a line you name appears. The watch runs in the daemon, so it works over SSH with nothing installed on the far end, and the notification says the watch's name, never the line.
Calm by design
Nothing interrupts typing. No popups in the input path, and no AI completing your thoughts uninvited. A product rule, not a setting.
ctrl+athenssplit right
ctrl+shift+fsearch 40k lines of scrollback
f12quake, over any app

Sessions live in the daemon, not the window.

A small daemon owns your shells and the session tree; the window is a viewer. Close the GUI, crash it, update it: the shells never notice. Reboot the machine and the whole layout comes back with one click.

Sessions from every machine.

Sign in on another computer and its sessions arrive in your drawer with their names sealed. Your passphrase opens them, never our server.

Reboot, and nothing is lost.Solo

History stays in the cloud, sealed. Open the layout after a reboot and the dormant session comes back as it was: tabs, splits, directories and scrollback.

Keep a working set.

Save the live session as a named layout: what the panes are, never what they printed. Ctrl+K opens it on any machine that opens your vault.

Detach and reattach
Scrollback replays when a viewer returns. A session without a window is dormant, not gone.
One window, three densities
Below 720px the chrome folds away to a quake drop-down; wide windows pin the sessions drawer and continuity panel as real columns.
Every machine, one drawer
Live and idle sessions from every machine you are signed in on. Another machine's session names arrive sealed until your passphrase opens them.
Ctrl+R across machines
Every command you ran, on every machine, read off the terminal echo with nothing installed on the far end. Sealed per record, synced every five minutes, and Enter inserts it at the prompt without running it.

Put the daemon on a box with no screen.

termuna-daemon is the same engine without a window, a 10 MB binary for servers and lab machines. It dials out to the relay, so the box can sit behind NAT or inside a VPN and still answer (how that works).

Servers join without a screen.

termuna-daemon is the same engine without a window. Log in once on a box and it dials out: no open port, no jump host, fine behind NAT or a VPN. Its sessions sit in your drawer beside your laptop's.

Start a session from your phone.Solo

A signed-in machine stays reachable with nothing running. Pick it on your phone and open a shell on it, from the couch.

No GUI required
Login and status from the shell; a systemd user unit keeps the daemon up across reboots.
Online means answered
A machine holds its own connection to the relay, so "online" is the machine answering, not a guess from old sessions.
Custody stays yours
The machine publishes a key wrapped to your account vault. Commanding it costs your passphrase, and the server never can.
First session from anywhere
List the machine and start a shell on it from the desktop, the web dashboard, or the phone.

Continuity you can watch.

Turn on sync and the session mirrors to Termuna Cloud as it happens, sealed with XChaCha20-Poly1305 before it leaves your machine. The continuity panel names every device attached right now, and you can take the session back from any of them.

One keyboard, passed on purpose.

One writer at a time. A viewer asks, you give it or decline, and nobody's keystrokes land while someone else holds it. Ctrl+Shift+K takes it back.

Stop it, and the key rotates.

Stop a link and whoever held it is dropped on the spot. The session's key moves on, so an old link reads nothing that comes after.

The web viewer
Anyone with the link watches and types at termuna.com/s/<id>, into the real shell, still running on your machine.
Scan with phone
The QR under Share attaches your phone without typing anything.
Shared on your terms
A link is minted view only or can type, for an hour, a day or until the session ends. Stop it from the dashboard and the session's key rotates, so a stopped link reads nothing that comes after.
A line where you stopped reading
Come back and a hairline rule marks the spot, with a count of the lines that ran while you were away. Ctrl+Shift+J jumps to it, per device, carried by your account.
The relay is blind
It stores ciphertext it cannot read. Session keys are generated on your devices and never leave them unwrapped.
A recovery kit, not a reset
Termuna never receives your passphrase, so it cannot reset it. The kit is how a forgotten passphrase never means lost history.
Told, not watched
A pane that rings its bell or blocks on a question pushes a notification to your browser. The text is generic: the relay cannot read the session, so it cannot quote it. A watch you named notifies with that name and nothing else.

Agents are sessions with a permission gate.

When the agent wants to run a command it stops on that exact tool call, and stays stopped until a human answers, at the desk or from the phone. A remote client can never grant blanket permission.

It stops on the exact call.

An agent session is a managed process with a permission gate, not text pasted into a shell. When Claude Code wants to run a command, it stops on that tool call and waits.

Answer from your pocket.Solo

Your phone buzzes when a session needs you. Allow the call there, or deny it and nothing runs. Whoever answers first wins.

Bring the agent you use.

Claude Code runs fully structured. Codex, Gemini, Cursor and OpenCode run in their own shells, and a conversation resumes by the provider's own session id, days later.

Attention, everywhere
The drawer and your phone go amber the moment an agent blocks, with a push notification if you are away.
MCP servers
Tools your agents can call, written into each provider's own config file from one screen.

SSH hosts live in encrypted vaults.

Termuna speaks SSH natively through a pure-Rust stack, with no external client to install. Personal vaults sync across your computers, and a vault shared with your team is wrapped to each member's own key.

Save a host once.Solo

Add it on one computer and it is on all of them. It is encrypted on the device before it leaves, so what syncs is a sealed item our server cannot open.

Share by moving it into a team vault.Team

A shared vault is wrapped to each member's own key. Move a host into it and the right people have it a moment later; nobody pastes a credential into a chat.

It lands on their machine.Team

Our server only ever holds ciphertext. On your teammate's computer the host appears in the shared vault, decrypted there, ready to open.

Offboarding is one removal.Team

Their wraps are deleted and they stop receiving changes. Rotating a credential afterwards is one vault update, not a hunt across every machine.

Jump hosts and forwards
Bastion chains, and local, remote and SOCKS forwards on the same profile.
One handshake, every pane
Panes and the file browser on one host share one SSH connection: a new split opens at once, and a 2FA host asks once, not once per pane.
Files beside the session
An SFTP browser on the desktop, and the same directory in a files pane beside the live terminal in the web dashboard and on the phone: browse, upload, download, every name and byte sealed through the relay.
Your keys, your rules
Trust on first use, ssh-agent authentication, and import straight from ~/.ssh/config.
Keys that never touch disk
1Password, gpg-agent or a hardware key, per host: a host names its agent socket, inherits SSH_AUTH_SOCK, or turns the agent off, and a Test button lists what the agent holds.
Drop a file on the pane
It lands in that shell's own directory over the shell's own bytes, past jump hosts, containers and tmux where SFTP cannot follow. Needs trz on the far side, and tsz path there sends one back.
Shared, precisely
A vault you only read: connect and clone, never edit. Remove a member and they stop receiving changes.
Commands you keep retyping
Snippets are items in the same vault: save one from a selection, insert it from ctrl+k, the dashboard or the phone. It types itself at the prompt and never runs on its own.
Your setup, carried
Your rc files, environment and terminal description land on the host before your shell starts: up to 64 KiB, sealed in the vault, gone when you log out. It never edits a file in your home directory on the server.

A client in your pocket.

Same sessions, same rows, same encryption: the desktop's drawer given the whole hand. The Android app is out; on an iPhone the web dashboard does all of it from the browser.

Termuna for Android

Every session, in your pocket.

The desktop's drawer, given the whole hand: live and idle sessions from every machine, and amber the moment one of them waits on you.

The same grid, by thumb.

Tabs and splits arrive as the desktop drew them. Swipe between panes; the key row has the keys a phone keyboard forgot.

Files beside the session.

Browse the machine the session runs on, pull a log down or push a file up. Every name and byte is sealed through the relay.

Native on every desk.

One codebase, real binaries. Linux and macOS ship today, macOS in early access for Apple silicon; the Windows installer returns once it is signed. Continuous integration builds and tests all three, and the performance budgets hold on each.

Linux
A .deb and a GPG-signed apt repository: add it once and Termuna updates with apt upgrade. Wayland and X11, GPU rendering via Vulkan.
Windows
The installer returns once it is signed: an unsigned build is not something we ship. The daemon runs over a per-user named pipe, so sessions survive the window there too.
macOS
Ships today for Apple silicon (arm64), in early access. Metal rendering. Signed with a Developer ID and notarized by Apple, and the DMG installs by dragging Termuna onto Applications.
Roadmap in the open
What is landed, verified, and next lives in the roadmap and the changelog.

Download Termuna