Terminals
The hero surface: splits, search, copy mode, bookmarks, and why closing the window does not kill your shell.
The terminal is the surface everything else grew around. Rendering is xterm.js, the PTY is owned by the main process, and the session is owned by the daemon.
That last split is the important one: the window is a view, so closing it detaches rather than terminates.
Splitting and moving
| Action | Shortcut |
|---|---|
| Split horizontally | Ctrl D |
| Split vertically | Ctrl Shift D |
| Directional focus | Ctrl ←↑↓→ |
| Cycle panes | Ctrl Tab |
| Move focus | Ctrl Shift ←↑↓→ |
| Maximize pane | Ctrl B then Z |
| Reopen closed tab | Ctrl Shift T |
On macOS, mod shortcuts use ⌘.
IMPORTANT
Ctrl B is a literal tmux-style prefix on every platform, including macOS. While it is armed, global shortcuts are suppressed — which is why shortcuts sometimes appear dead. Press Esc.
A workspace caps at 20 panes. Past that, terminal rendering and process supervision stop being predictable, so the cap is deliberate rather than arbitrary.
Working inside a pane
| Feature | Notes |
|---|---|
| In-terminal search | Find text in scrollback |
| Context menu | Copy, paste, clear, split |
| Vi copy mode | Keyboard selection for vi users |
| Line bookmarks | Ctrl M, literal Ctrl everywhere |
| Scrollback persistence | Survives restart |
| Shell integration | Prompt marks for navigation |
Shell detection and allowlist
NALA detects available shells and launches from an allowlist rather than executing anything named as a shell. Paste handling uses bracketed paste, and PTY output is filtered.
SECURITY
Pasting into a terminal is a classic way to run something you did not read. Paste warnings exist for that reason — they are not noise.
Floating panes
A pane can be floated out of the split tree when you want it visible alongside another layout rather than inside it.
Layout presets
Layouts can be saved and reapplied from the sidebar picker or the command palette. Worth doing once you find an arrangement that suits a project — it is faster than rebuilding splits each session.
Crash restore
If the app exits unexpectedly, a restore banner offers to bring panes back, with a progress list as each reattaches.
NOTE
Restore reattaches sessions the daemon still holds. It cannot recover a session that was explicitly stopped, because stopping ends it.
Verifying what the daemon holds
nala sessions list
If a pane looks closed in the UI but the process seems alive, this is the authoritative answer.