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 omnibar | Aliases /t, /term |
| Pane menu → Open Terminal | |
Mod+Enter | If 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.]
Hardware accelerated
Section titled “Hardware accelerated”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.
What else it supports
Section titled “What else it supports”- 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.
Highly customizable
Section titled “Highly customizable”| Setting | Where | Default |
|---|---|---|
| Allow terminal access in Kaba | Security & Privacy → Terminal routing | on |
| Route terminal traffic through the Kaba proxy | Security & Privacy → Terminal routing | on |
| GPU-accelerated rendering | Look & Feel → Terminal | on |
| Font size | Look & Feel → Terminal | 14 |
| Scrollback | Look & Feel → Terminal | 5000 lines |
| Background transparency | Look & Feel → Terminal | |
| Colour theme | Settings → Terminal | follows 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.]
On another machine
Section titled “On another machine”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.]
In a container
Section titled “In a container”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
Section titled “Shell integration”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:
| Feature | How |
|---|---|
| Jump between prompts | Ctrl+Shift+Up / Ctrl+Shift+Down |
| Explain the last error | Ctrl+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.]
Session restore
Section titled “Session restore”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.
Terminal memory
Section titled “Terminal memory”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.]
Network routing
Section titled “Network routing”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.