Turn on sync and your work follows you. Every tab, every
split, and the full scrollback mirror to Termuna Cloud as they happen,
encrypted end to end. The relay stores ciphertext it cannot read.
It runs on your machine. It follows you.
Your code, keys and tools stay where they
are. Continuity is the same session, seen from another screen.
Every live session, on every screen.
A small daemon on your machine owns the real shells. With sync on, it attaches your live sessions to Termuna Cloud as an encrypted host, and every signed-in screen lists them.
09:41●●● ⏻
termuna
live7
workstation · linux-x86_64awake
mac-studio · darwin-arm64awake
Keep typing into the same shell.
Open one on your phone or in a browser and you are typing into the very shell still running on your machine: same tabs, same splits, same scrollback.
09:41●●● ⏻
nova@nova-desk:~/dev/aurora$ cargo test
running 214 tests
test result: ok. 214 passed
nova@nova-desk:~/dev/aurora$
deploy@relay:~$ journalctl -fu aurora
23:41:02 INFO worker 3 picked job 9f3a
23:41:08 INFO batch done · 1.2k rows
23:41:19 WARN rtt 210ms
23:41:20 INFO recovered · rtt 38ms
What survives.
Close the laptop, switch to your phone, then
reboot the machine. Nothing is lost.
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.
A dormant session carries this layout's name, with 3 panes and their scrollback. Attaching brings it back as it was; building a second one would give you two of everything.
morning · dormant2 tabs · 3 panes · since 3d ago
esc cancels
A line where you stopped reading.Solo
Each device remembers where you stopped, and the position travels with your account. Come back and the screen shows that line and a count of what ran while you were away.
09:41●●● ⏻
deploy@relay:~/ops$ ./migrate.sh --all-tenants
tenant 1 of 48 · ok
tenant 2 of 48 · ok
tenant 3 of 48 · ok
…
tenant 47 of 48 · ok
tenant 48 of 48 · ok
✓ 48 tenants migrated · 6m 12s
deploy@relay:~/ops$
new since 14:02, 320 lines
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.
termuna
termuna: aurora
aurora · ~/dev/aurorakey→glyph 6.2 ms87 MBe2e
Save this session as a layout
Termuna writes down what these panes are, never what they printed. No scrollback,
no output, no keystrokes, no passwords.
Ctrl+K will find it by this name on any machine that opens your vault.
tab 1 · appsplit: left | right
tab 2 · repo
Sealed in your vault, like a host or a snippet
synced to your other machines · the relay stores ciphertext · no output or scrollback is captured
3 of 3 panes
The relay never sees plaintext.
This is the part that matters. We could not
read your scrollback if we tried, and we built it that way on
purpose.
Session keys are generated on your devices and never leave them unwrapped. Every frame is sealed with XChaCha20-Poly1305, a fresh nonce each, before it touches the network.
what the relay stores · session aurora
seq 1820402 44 b0 d2 61 0c 8a f5 3e 91 27 cc 5b e81.2 KB
seq 1820502 a0 76 d9 03 4f 1d 88 c4 2e 70 b9 5a 1186 B
seq 1820602 fa 9d 62 07 b8 e5 3a 4c 90 d7 26 5f 81412 B
seq 1820702 8e 44 0a 71 c9 3d f2 16 ab 5e 07 94 c864 B
xchacha20-poly1305 · a fresh nonce per frame · no key here
Open a session in a browser and the key travels in the link's fragment, which never reaches the server. That browser keeps it, so you paste the link once.
termuna
termuna: aurora
deploy@relay:~$ journalctl -fu aurora
23:41:02 INFO worker 3 picked job 9f3a
23:41:08 INFO batch done · 1.2k rows
23:41:19 WARN rtt 210ms · buffering
23:41:20 INFO recovered · rtt 38ms
aurora · ~/dev/aurorakey→glyph 6.2 ms87 MBe2e
Your connections travel too.
Save an SSH connection once and it follows
you to your other computers, in encrypted vaults. Share a vault and
onboarding becomes granting access instead of a credential
handoff.
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.
termuna
termuna: ssh
sshesc
ssh connections
6 connections synced · keys are sealed on this device.
grafanadeploy@grafana.novalabs.dev:22sealed here · synced to nova-mbp and pixel 8
nova labs2 hosts · shared with 2
relay eu-centraldeploy@relay.novalabs.dev:22
k8s-prodops@k8s.novalabs.dev:22
aurora · ~/dev/aurorakey→glyph 6.2 ms87 MBe2e
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.
termuna
termuna: ssh
sshesc
ssh connections
6 connections synced · keys are sealed on this device.
personal2 hosts · private
nova-labnova@nova-lab:22
bastionnova@bastion.novalabs.dev:2222
grafanadeploy@grafana.novalabs.dev:22move to vault · nova labs
nova labs3 hosts · shared with 2
relay eu-centraldeploy@relay.novalabs.dev:22
k8s-prodops@k8s.novalabs.dev:22
grafanadeploy@grafana.novalabs.dev:22wrapped to mira's and jon's keys
aurora · ~/dev/aurorakey→glyph 6.2 ms87 MBe2e
Machines with no screen.
Install the headless daemon on a server and
it joins your account and hosts sessions on demand, even freshly
rebooted, even with nothing running on it.
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.
termuna
termuna: aurora
nova@nova-desk:~$ ssh deploy@lab
deploy@lab:~$ termuna-daemon login
✓ signed in as nova · this machine is "lab"
dialing out to the relay · no inbound port
deploy@lab:~$
aurora · ~/dev/aurorakey→glyph 6.2 ms87 MBe2e
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.
09:41●●● ⏻
termuna
live2
nova-desk · linux-x86_64awake
lab · linux-x86_64awake · nothing running
idle9
nova-desk · linux-x86_64awake
09:41●●● ⏻
deploy@lab:~$ df -h /srv
/dev/sda1 1.8T 1.1T 63% /srv
deploy@lab:~$
Opt in, and export anything
No account is required for local use. Sync is opt-in, and off by default.
Full export of everything, at every tier, always.
End to end encrypted. The server never holds keys.
A recovery kit means a forgotten password never means lost history.
Try continuity free with one live session. Upgrade when you need more.
See the plans.
Questions people ask
What happens if I close my laptop or lose the network?
Your Termuna session keeps running on your machine, where the daemon owns the real
shells. Sync mirrors it to the cloud as it happens, so you can pick it up
from the web or your phone and keep typing into the same shell.
Can I resume a session after a reboot?
Yes. History stays in Termuna Cloud, and the desktop app resurrects the whole
layout, including tabs, splits, and working directories, into fresh shells
with a single click.
Can Termuna read my synced sessions?
No. Termuna generates session keys on your devices and they never leave them
unwrapped. Every frame is sealed with XChaCha20-Poly1305 before it touches
the network, so the relay stores only ciphertext it cannot read.
Does a server need an open port or a jump host?
No. A server runs the headless Termuna daemon, which connects
outbound to the relay over an encrypted WebSocket. The machine stays
behind NAT, a firewall, or a VPN, and still answers from any signed-in
device: no inbound port, no bastion, no jump chain.
Is sync on by default?
No. The local Termuna terminal needs no account and makes no network calls until
you turn sync on. Sync is opt-in, and everything you sync can be exported,
at every tier, always.