Skip to content

Terminal

Yes, Kaba has a terminal, too.

The terminal is a pane like any other. Open one beside a web page, split it, move it to another frame. It runs a real shell on this machine, on any device in your cluster, or inside a sandbox container.

Open it with
/terminal in the omnibarAliases /t, /term
Pane menu → Open Terminal
Mod+EnterIf you set it to New Terminal under Settings → Keyboard
kaba://terminal/As an address

[todo: add screenshot of a terminal pane and of parts the shell, the device chip in the corner, the recording pill, a split with a web page.]

Terminal panes render on the GPU by default, so scrolling a build log or tailing a busy service stays smooth. If the GPU cannot be used, Kaba falls back to the standard renderer on its own. Turn acceleration off under Settings → Look & Feel → Terminal.

A translucent background also switches that terminal to the standard renderer.

  • Inline images. Sixel and inline image protocols are supported.
  • Full Unicode, including grapheme clusters and emoji.
  • Clickable links open in a pane.
  • Search in the scrollback.
  • Clipboard integration.
  • Themes. By default the terminal follows the system theme; you can pick a terminal colour theme separately.
SettingWhereDefault
Allow terminal access in KabaSecurity & Privacy → Terminal routingon
Route terminal traffic through the Kaba proxySecurity & Privacy → Terminal routingon
GPU-accelerated renderingLook & Feel → Terminalon
Font sizeLook & Feel → Terminal14
ScrollbackLook & Feel → Terminal5000 lines
Background transparencyLook & Feel → Terminal
Colour themeSettings → Terminalfollows system theme

Font, scrollback and renderer changes apply to newly opened terminals. Colours apply immediately.

When terminal access is turned off, kaba://terminal, the terminal tools in Projects, and Open Terminal are unavailable, and Mod+Enter opens the desktop.

[todo: add screenshot of the terminal settings and of parts font size, scrollback, GPU acceleration, background transparency slider, colour theme.]

Click the device chip in the corner of a terminal, or press Ctrl+Shift+P, to open Open a terminal on…. Choose a peer and a new pane opens with a shell on that device. Use Up, Down and Enter to pick, Esc to cancel.

You can also open one from a device’s menu under Settings → Devices, or from the pane menu with Open terminal on….

Peer terminals travel over the mesh (kaba/pty/v1); nothing needs to be opened on the peer. If you only see This machine, add a peer first: see cluster & mesh.

[todo: add screenshot of the Open a terminal on… picker and of parts This machine, an online peer, an offline peer, the keyboard hint.]

Settings → Containers → Terminal on a base image opens an interactive shell inside that image. This is the same sandbox the tool loop uses, so it is a quick way to see what a task will have available.

Shell integration lets Kaba know where each command starts and ends, and whether it succeeded. Turn it on from the Open a terminal on… panel with Enable shell integration. It works for bash and zsh, locally and on peers.

Enabling it writes ~/.config/kaba/shell-integration.sh, adds one guarded source line to your ~/.zshrc or ~/.bashrc, and loads it in the current shell. Turn off removes the line, unwinds the hooks in the running shell and deletes the files.

With it on you get:

FeatureHow
Jump between promptsCtrl+Shift+Up / Ctrl+Shift+Down
Explain the last errorCtrl+Shift+E, or the Explain this error chip that appears after a failed command

Explain this error sends the failed command and its output to Kaba and shows the answer in a toast. From the toast you can continue in a project if you want more. This needs Enable AI.

[todo: add screenshot of a failed command and of parts the Explain this error chip, the answer toast.]

Each terminal pane keeps a snapshot of its scrollback. When a pane is restored, after a restart or a reload, the previous output is shown above a previous session rule and a fresh shell starts below it. The shell process itself is new; running programs are not resumed.

Kaba keeps the newest 20 snapshots, up to 256 KB each.

When Remember terminal sessions is on (Settings → Features), each session is saved as a searchable memory: the commands you ran, their output, and whether they succeeded.

A pill in the terminal shows whether this session is being recorded. Click it to make this one session private. A private session leaves no memory and no restore snapshot.

What is kept out, always:

  • What you type. Only commands and output are kept, so a password typed at a prompt is not captured.
  • Full-screen programs, such as editors and pagers. They are noted as having run, with no content.
  • Output from password managers and the contents of files like .env.
  • Commands that start with a space, as with shell history.
  • Printed secrets. Keys and tokens that appear in output are replaced with a placeholder like [REDACTED:aws_key] before saving.

If something slipped through, use Remove a password or other text from memory in Settings. See privacy.

[todo: add screenshot of the recording pill and of parts recording state, private state, off-with-reason state.]

By default, new terminals send their traffic through the Kaba proxy, so the ad blocker, Safe Browsing and your exit node apply to command-line tools too, and Tor applies when it is on. Change the default under Settings → Security & Privacy → Terminal routing, or override it for one terminal from its menu.