termuna

Using the terminal

One window, three shapes, and a set of behaviors tuned for people who live in a terminal. Everything here works without an account.

The window's three shapes

The chrome adapts to width, not to settings:

WidthWhat you get
Wide (1400 px and up)The full session window: sessions drawer pinned left, terminal grid center, continuity panel pinned right. A fresh install opens here.
Default (720 to 1400 px)Tab strip and chrome bar; the drawer and continuity panel become summoned overlays.
Quake (under 720 px)Just the grid and status bar under a minimal chrome bar - the drop-down-console shape. Pair it with the global quake hotkey to summon the window from anywhere.

Tabs and splits

Tabs hold layouts; splits nest in any direction, so a tab can carry an editor above two logs beside a shell. New tab with the plus button, the context menu, or Ctrl+Shift+T; split with Ctrl+Shift+D (right) and Ctrl+Shift+E (down). Tabs name themselves after the working directory; double-click to rename. All of it is remappable (Keybindings).

The command palette

Ctrl+K opens the palette. It reaches every management screen - sessions, agents, MCP servers, SSH connections, settings - which matters most in quake width, where there is no drawer to click. The screens open as views over the grid: the session keeps running underneath, and Esc puts the grid back.

Ctrl+R is the other palette: it searches the commands you have run, on this machine and, with Termuna Cloud, on every other, and Enter types the pick at the prompt without running it. A second Ctrl+R hands the key to the shell. The recording rules, the scope chips and the settings are in Command history.

Saved commands

Commands you keep retyping live as snippets in your encrypted vault, the same vault your SSH hosts sync through. The snippets screen in the drawer holds them: a name, the command (several lines are fine), and an optional note on when it is safe to run. The quickest way in is from a pane: select the text, right-click, and pick Save as snippet. The form opens pre-filled with the selection and a meta line naming where it came from.

To use one, Ctrl+K has a snippets section that filters by name, command and note as you type. Enter inserts the command at the focused pane's prompt and stops there: it never executes. A multi-line snippet types every line but leaves the last one waiting at the prompt, so you still read it before you run it. The same snippets are on the web and phone viewer.

Scrollback and search

Ctrl+Shift+F searches the scrollback. The index is built as output arrives, so search stays instant even at tens of thousands of lines. Scrollback keeps 10,000 lines per pane by default and can be raised to a million (Configuration).

Copy, paste, and paste protection

  • Copy is Ctrl+Shift+C, paste Ctrl+Shift+V.
  • Pasting text that contains newlines asks first: a paste is keystrokes, and the second command would run before you can read the first. Turn this off with warn_on_multiline_paste.
  • The trailing newline a copied line drags along is trimmed (trim_paste).
  • Double-click selects words; paths and URLs stay whole because separators are configurable.

When a TUI owns the mouse

A full-screen app that requests mouse reporting - vim, htop, Claude Code - receives your clicks, so local selection stops. That is correct terminal behavior, not a bug, and the status bar says so the first time it happens. Hold Shift to select and scroll locally anyway. Two things always stay local: the right-click context menu, and drag selection outside full-screen apps.

Notifications and progress

For the one command you actually care about, arm the pane: right-click it and pick Notify when this quiets down. The watch is one-shot - it fires once, only if you are not looking at the pane, then disarms. It runs in the daemon, so it works over SSH with nothing installed on the remote host. The notification carries facts only - the pane, the condition, and how long it took - never a line of output. Armed panes wear a corner tag, the tab an at-rest bell, and the status bar counts armed watches ("1 armed"). The global notify_when_done setting is untouched by any of this.

ConditionFires when
The prompt returns (default)The running command finishes and the shell prompt comes back.
30 seconds of silenceThe pane produces no output for 30 seconds - for work without a clean exit point.
A bellThe pane rings a bell (BEL, or OSC 9/777) - the way TUIs and agent CLIs ask for you.
  • A command that ran 15 seconds or longer finishing in a pane you cannot see raises a desktop notification, and so does a bell - TUIs and agent CLIs ring one when they need you. (notify_when_done, on by default.)
  • notify_on_activity additionally pings on the first output of a quiet background tab (off by default).
  • Progress written as NN% in any pane shows up in the status bar (detect_progress).

Sessions and the window

The daemon owns sessions, the window views them. Closing the window ends nothing; the app reopens where you closed it, resurrecting the last session if it had gone idle. Typing exit in the last shell lands you in a fresh shell, never outside a session.

Next: Keybindings