Keybindings
Design Philosophy #
When the terminal panel is focused,
all keys are forwarded to the PTY
except most keys with a
Ctrl
modifier (intercepted as global commands — though a handful that collide with
readline, such as
Ctrl+B/D/E/F/O/P/R/S/U/W, defer to the agent CLI; see
Terminal passthrough below) and
Shift+arrow/page
/
Alt+page
keys (for scrollback).
Why Ctrl, not Alt?
Coding-agent CLIs and shell programs heavily use Alt-key combinations. Ctrl has
established precedent for meta actions in terminal multiplexers (tmux uses
Ctrl+B
, screen uses
Ctrl+A
).
Global Keys #
| Key | Action | Mnemonic |
|---|---|---|
Ctrl+Q |
Quit (detach sessions) | Q uit |
Ctrl+N |
New session (opens repo picker) | N ew |
Ctrl+C |
Copy selection, or send SIGINT if none | C opy |
Ctrl+V |
Paste from clipboard | Paste |
Ctrl+P |
Automations (scheduled agent runs) | P rogram |
Ctrl+W
/
F5
|
Toggle tasks panel (todo list) | Work items |
Ctrl+/ |
Global search (sessions / tasks / automations / files) | / = search |
Ctrl+T |
Toggle shell pane | T erminal |
Ctrl+X / F7 |
Toggle code-review pane (native diff reviewer) | Review |
Ctrl+H |
Focus previous pane (cycle backward) | Vim: h = left |
Ctrl+J |
Select next session | Vim: j = down |
Ctrl+K |
Select previous session | Vim: k = up |
Ctrl+L |
Focus next pane (cycle forward) | Vim: l = right |
Ctrl+D |
Delete session | Vim: d = delete |
Ctrl+O |
Open active session's repos/worktrees in editor | O pen |
Ctrl+R |
Restart active session | R estart |
Ctrl+F |
Fork active session | F ork |
Ctrl+S |
Sync worktrees with origin/main | S ync |
Ctrl+Z |
Undo session delete | Z = undo |
Ctrl+U |
Restore deleted sessions | U ndelete |
Ctrl+Y
/
F4
|
Pick TUI theme | Color Y oke |
F1
/
Ctrl+G
|
Keybindings help + interactive editor | Universal |
Ctrl+,
/
F6
|
Settings panel (edit settings.toml) | , = preferences |
Ctrl+B
/
F2
|
Toggle info panel | Next to F1 |
Ctrl+E
/
F3
|
Toggle file viewer | Next to F2 |
F9
|
Toggle session-list pane | Hide for a full-width terminal; right-side panels stay |
Everything here is rebindable.
Press
F1
and pick an action to capture a new chord live, or hand-edit
~/.config/thurbox/keybindings.json
(an action name → one or more chord strings); changes reload without a restart.
See
Configuration → keybindings.json
for the format.
Terminal passthrough:
a handful of
Ctrl+<letter>
commands (
Ctrl+D
/
Ctrl+O
/
Ctrl+R
/
Ctrl+F
/
Ctrl+S
and the panel toggles) collide with readline. When a session terminal is focused they
defer to the agent CLI; reach them from the session list, or via their
F
-key alternate (
F2
/
F3
/
F5
). Navigation and app-control chords (
Ctrl+H
/
J
/
K
/
L
,
Ctrl+Q
,
Ctrl+N
) always work, even in the terminal.
macOS:
in kitty-protocol terminals (iTerm2 3.5+, kitty, WezTerm, Ghostty) the Command key
works as a modifier:
Cmd+J
/
Cmd+Shift+J
switch sessions,
Cmd+L
/
Cmd+Shift+L
cycle panes, and any action can be rebound to a
cmd+…
chord (aliases:
super
,
command
). Terminal.app delivers no Cmd chords; everything else works there. F1–F5 need
Fn
on Mac laptops unless function keys are set to standard.
List Navigation #
When the session list is focused:
| Key | Action |
|---|---|
j
/
Down
|
Next item |
k
/
Up
|
Previous item |
Enter |
Select / focus |
Shift+J
/
Shift+K
|
Move the selected session (and its nested children) down / up. Manual order wins over status — whole repo groups swap past a group edge. |
Shift+S |
Sort sessions alphabetically by name within each repo group |
Manual ordering and the alphabetical sort are persisted, so they survive restarts and sync across concurrent instances.
Search #
Press
Ctrl+/
to open the global search strip, which searches
every scope at once
— sessions (name, agent, branch, and live terminal-buffer content), tasks,
automations, and the active session's file tree. It replaces the old per-pane
/
filters.
- Type to filter; matches highlight live in the panels themselves.
-
Up/Down(orCtrl+P/Ctrl+N) move the selection,Enterjumps to the result and focuses its pane, andEscrestores the prior state.
The file viewer keeps its own in-file
/
text search, which is unrelated to global search.
Terminal Scrollback & Selection #
| Key | Action |
|---|---|
Shift+Up
/
Shift+Down
|
Scroll 1 line |
Shift+PageUp
/
Shift+PageDown
|
Scroll half page |
Alt+PageUp
/
Alt+PageDown
|
Scroll half page (fallback where the terminal claims Shift+Page, e.g. Terminal.app/iTerm2) |
| Mouse wheel | Scroll 3 lines |
| Mouse drag | Select text |
| Any other key | Snap to bottom + forward to PTY |
When scrolled up, the block title shows a
[N↑]
indicator and the PTY cursor is hidden.
Modal Keybindings #
Branch selector (Worktree mode)
| Key | Action |
|---|---|
j
/
Down
|
Next branch |
k
/
Up
|
Previous branch |
Enter |
Select base branch, open name prompt |
Esc |
Cancel |
New branch name prompt
| Key | Action |
|---|---|
Enter |
Confirm name, create branch and worktree |
Esc |
Cancel |
Automations #
A dedicated Automations pane sits beneath the session list (always present). It joins
the
Ctrl+H
/
Ctrl+L
focus cycle;
Ctrl+P
opens the same list as a modal at any width.
Automations pane / list (focused)
| Key | Action |
|---|---|
Ctrl+N
/
n
|
New automation (opens the editor) |
j
/
k
|
Select previous / next automation |
Space |
Toggle enabled / disabled |
r |
Run now |
e
/
Enter
|
Edit |
d |
Delete |
Automation editor
| Key | Action |
|---|---|
Tab
/
↑
↓
|
Move between fields |
←
→
/
Space
|
Adjust the focused selector / stepper (trigger, time, action) |
Ctrl+E |
Toggle enabled |
Enter |
Save |
Esc |
Cancel |
Agent Picker #
The
Ctrl+N
new-session flow ends with an agent picker. The agent picker is skipped when only one
agent is defined in
agents.toml
.
| Key | Action |
|---|---|
j
/
Down
|
Next agent |
k
/
Up
|
Previous agent |
Enter |
Confirm selection |
Esc |
Cancel session creation |