/keybindings command to create or open the configuration file located at ~/.codebuddy/keybindings.json.bindings array. Each block specifies a context and a mapping of keys to actions.Field | Description |
$schema | Optional. JSON Schema URL for editor autocompletion |
$docs | Optional. Documentation URL |
bindings | Array of binding blocks organized by context |
Ctrl+E to an external editor and unbinds Ctrl+U in the Chat context:{"$schema": "https://code.codebuddy.ai/schemas/keybindings.json","$docs": "https://code.codebuddy.ai/docs/keybindings","bindings": [{"context": "Chat","bindings": {"ctrl+e": "chat:externalEditor","ctrl+u": null}}]}
Context | Description |
Global | Takes effect anywhere in the application. |
Chat | When the chat input box gains focus |
InputBox | When the text input box is active |
Terminal | When the terminal view is active |
Autocomplete | When the autocomplete menu is displayed |
Confirmation | When a confirmation/permission dialog is displayed |
HistorySearch | When searching command history (Ctrl+R) |
Task | When a task/agent is running in the foreground |
Settings | When the settings panel is open |
CommandPalette | When the command palette is open |
Select | When a selection/list component gains focus |
PermissionDialog | When the tool permission dialog is displayed |
Help | When the help page is open |
Plugin | When the plugin dialog is open |
DiffDialog | When the Diff dialog is open |
MessageSelector | When the message selector (rewind) is open |
namespace:action format, such as chat:submit to send a message and app:toggleTodos to toggle the todo list. Each context has specific available actions.Global context:Action | Default Shortcut | Description |
app:interrupt | Ctrl+C | Interrupt the current operation. |
app:exit | Ctrl+D | Exit CodeBuddy Code. |
app:redraw | Ctrl+L | Refresh the terminal screen. |
app:toggleTodos | Ctrl+T | Toggle the to-do list. |
app:toggleTranscript | Ctrl+O | Toggle detailed transcript. |
app:toggleSidebar | Cmd+B | Toggle the sidebar (Web UI). |
app:toggleTerminal | Cmd+J | Toggle the terminal (Web UI). |
app:commandPalette | Cmd+Shift+P / Ctrl+Shift+P | Open the command palette (Web UI). |
app:newChat | Cmd+N | Create a new chat (Web UI). |
app:settings | Cmd+, | Open settings (Web UI). |
app:focusInput | Cmd+L | Focus the input box (Web UI). |
Action | Default Shortcut | Description |
history:search | Ctrl+R | Open history search. |
history:previous | Up | Previous history |
history:next | Down | Next history |
Chat context:Action | Default Shortcut | Description |
chat:cancel | Escape | Cancel the current input or interrupt the current foreground request. |
chat:submit | Enter | Sending messages. |
chat:killAgents | Ctrl+X Ctrl+K | Terminate all background agents. |
chat:cycleMode | Shift+Tab (Windows also supports Alt+M). | Toggle permission mode. |
chat:modelPicker | Meta+P | Open the model picker. |
chat:thinkingToggle | Meta+T | Toggle extended thinking. |
chat:undo | Ctrl+_, Ctrl+Shift+- | Undo |
chat:externalEditor | Ctrl+G, Ctrl+X Ctrl+E | Open in an external editor. |
chat:stash | Ctrl+S | Stash current input. |
chat:imagePaste | Ctrl+V (Windows: Alt+V) | Paste images. |
Autocomplete context:Action | Default Shortcut | Description |
autocomplete:accept | Tab | Accept suggestion. |
autocomplete:dismiss | Escape | Close the menu. |
autocomplete:previous | Up | Previous item |
autocomplete:next | Down | Next item |
Confirmation context:Action | Default Shortcut | Description |
confirm:yes | Y, Enter | OK |
confirm:no | N, Escape | Cancel |
confirm:previous | Up | Previous item |
confirm:next | Down | Next item |
confirm:toggle | Space | Toggle selection. |
confirm:toggleExplanation | Ctrl+E | Toggle permission description. |
permission:toggleDebug | Ctrl+D | Toggle permission debug information. |
Transcript context:Action | Default Shortcut | Description |
transcript:toggleShowAll | Ctrl+E | Toggle display of all content. |
transcript:exit | Q, Ctrl+C, Escape | Exit transcript view. |
HistorySearch context:Action | Default Shortcut | Description |
historySearch:next | Ctrl+R | Next match |
historySearch:accept | Escape, Tab | Accept selection. |
historySearch:cancel | Ctrl+C | Cancel search. |
historySearch:execute | Enter | Execute selected command. |
Task context:Action | Default Shortcut | Description |
task:background | Ctrl+B | Move the current task to the background. |
Help context:Action | Default Shortcut | Description |
help:dismiss | Escape | Close the help menu. |
Settings context:Action | Default Shortcut | Description |
settings:search | / | Enter search mode. |
settings:close | Enter | Save and close the configuration panel. |
Select context:Action | Default Shortcut | Description |
select:next | Down, J, Ctrl+N | Next item |
select:previous | Up, K, Ctrl+P | Previous item |
select:accept | Enter | Confirm selection. |
select:cancel | Escape | Cancel selection. |
CommandPalette context:Action | Default Shortcut | Description |
commandPalette:previous | Up | Previous item |
commandPalette:next | Down | Next item |
commandPalette:execute | Enter | Execute command. |
commandPalette:close | Escape | Close panel. |
DiffDialog context:Action | Default Shortcut | Description |
diff:dismiss | Escape | Close the Diff viewer. |
diff:previousFile | Up | Previous file |
diff:nextFile | Down | Next file |
diff:viewDetails | Enter | View details. |
MessageSelector context:Action | Default Shortcut | Description |
messageSelector:up | Up, K, Ctrl+P | Move up. |
messageSelector:down | Down, J, Ctrl+N | Move down. |
messageSelector:top | Shift+Up | Jump to top. |
messageSelector:bottom | Shift+Down | Jump to bottom. |
messageSelector:select | Enter | Select message. |
Plugin context:Action | Default Shortcut | Description |
plugin:toggle | Space | Toggle plugin selection. |
plugin:install | I | Install the selected plugin. |
+ delimiter:ctrl or control — Control keyalt, opt, or option — Alt/Option keyshift — Shift keymeta, cmd, or command — Meta/Command keyctrl+k Single modifier key + keyshift+tab Shift + Tabmeta+p Command/Meta + Pctrl+shift+c Multiple modifier keys
ctrl+x ctrl+k Press Ctrl+X, release, and then press Ctrl+Kctrl+x ctrl+e Press Ctrl+X, release, and then press Ctrl+E
escape or esc — Escape keyenter or return — Enter keytab — Tab keyspace — Space keyup, down, left, right — Arrow keysbackspace, delete — Delete keynull to unbind the default shortcut:{"bindings": [{"context": "Chat","bindings": {"ctrl+s": null}}]}
{"bindings": [{"context": "Chat","bindings": {"ctrl+x ctrl+k": null,"ctrl+x ctrl+e": null,"ctrl+x": "chat:newline"}}]}
Shortcut Keys | Reason |
Ctrl+C | Hardcoded interrupt/cancel |
Ctrl+D | Hardcoded exit |
Ctrl+M | Equivalent to Enter in a terminal (both send CR). |
Shortcut Keys | Conflict |
Ctrl+B | tmux prefix key (press twice to send) |
Ctrl+A | GNU screen prefix key |
Ctrl+Z | Unix process suspension (SIGTSTP) |
#/keybindingsEndpoint | Methodology | Description |
/api/v1/keybindings | GET | Obtain all shortcut keys (default + user + merged). |
/api/v1/keybindings | PUT | Save user shortcut key configuration. |
/api/v1/keybindings/reset | POST | Reset to default values (delete user configuration). |
/api/v1/keybindings/validate | POST | Validate configuration (without saving). |
Was this page helpful?
You can also Contact sales or Submit a Ticket for help.
Help us improve! Rate your documentation experience in 5 mins.
Feedback