Skip to content

Key bindings

F1 shows every command and its chord, always current, because the overlay is drawn from the same table the editor dispatches on.

Every key binding

Whose key is it

With the keyboard on the agent or the terminal, plain keys, Enter, Esc, Tab and the arrows are theirs, whatever the editor binds them to — they are how a program is talked to. A bound Ctrl or Alt chord, or a function key, is the editor's, except the ones agent_keys lists — Ctrl+R, Ctrl+N, Ctrl+Z, Ctrl+W, Ctrl+Y, Ctrl+C by default — which the programs use themselves. Ctrl+C with text selected copies it all the same, and Ctrl+V pastes the clipboard at the program whatever the list says. Chords nobody bound reach the agent.

With the keyboard in the editor, everything is typing except Esc, which closes the file, and the bound Ctrl chords and function keys.

F6 moves the keyboard round: agent → terminal (when open) → files (when shown) → editor or follow pane → agent. A click moves it too.

The defaults

Command Key
Open Recent Workspace… Ctrl+R
Add Folder to Workspace… — the File menu and the palette
Remove Folder… — the File menu and the palette
New Task… F7
Close Task Ctrl+W
Next / Previous Task Ctrl+L / Ctrl+K
Rename Task… F2
New File Ctrl+N
New Folder — a right click in the tree
Save Ctrl+S
Settings F12
Local Settings — the File menu and the palette
Quit Ctrl+Q
Toggle Files Ctrl+B
Terminal Ctrl+T
Changes F4
Command Palette F5
Search Project F3
Go to File Ctrl+P
Agent Usage F8
Theme… F9
Key Bindings F1
File Menu F10Right for Help
Switch Pane F6
Copy / Paste Ctrl+C / Ctrl+V
Undo / Redo Ctrl+Z / Ctrl+Y
Close Esc
Follow: Go Live F
Follow: Previous / Next Edit Left / Right
Follow: Mark Reviewed Enter
Follow: Diff / File V

Rebinding

Only the bindings that differ need listing:

"keys": { "follow_live": "L", "changes": "Ctrl+G" }

Chords are Ctrl/Alt/Shift and a key — Ctrl+G, Alt+Left, Shift+F3 — or a bare key like F for the follow pane. A chord that cannot be read keeps its default and is named in the status bar; one given to two commands is reported too. The defaults use only what every terminal sends; a Ctrl+Shift rebinding works where the kitty keyboard protocol does — Ghostty, kitty, WezTerm, foot, iTerm2 3.5 and later.