Keybindings Configuration
Customize keyboard shortcuts to match your workflow. Keybinds are defined under the keybinds object in your config file.
📸 SCREENSHOT: keybindings-config.png
Keybindings configuration options
Configuration Location
Keybindings are configured in your global or project config file:
{ "keybinds": { "leader": "ctrl+x", "session_new": "<leader>n" }}Only the keys listed on this page are valid — the keybinds object is validated strictly, so unknown keys are rejected.
Leader Key
The leader key is a prefix for many shortcuts (default ctrl+x):
{ "keybinds": { "leader": "ctrl+a" }}Key Syntax
Modifiers
| Modifier | Syntax |
|---|---|
| Control | ctrl |
| Alt/Option | alt |
| Shift | shift |
| Super/Command | super |
Special Keys
| Key | Syntax |
|---|---|
| Enter | return |
| Escape | escape |
| Tab | tab |
| Backspace | backspace |
| Delete | delete |
| Arrows | up down left right |
| Page Up / Down | pageup pagedown |
| Home / End | home end |
| Function keys | f2, shift+f2 |
Combinations, Alternatives & Leader
ctrl+alt+d # Ctrl + Alt + D<leader>n # Leader then Npageup,ctrl+alt+b # two alternative bindings for one action (comma-separated)A comma separates alternative bindings for the same action. Set a value to none to disable an action.
Available Actions
Every action below shows its default binding. Override any subset in your keybinds object.
Sessions
| Action | Default | Description |
|---|---|---|
session_new | <leader>n | Create a new session |
session_list | <leader>l | List all sessions |
session_compact | <leader>c | Compact the session |
session_timeline | <leader>g | Show session timeline |
session_rename | ctrl+r | Rename session |
session_delete | ctrl+d | Delete session |
session_export | <leader>x | Export session to editor |
session_interrupt | escape | Interrupt current session |
session_fork | none | Fork session from message |
session_share | none | Share current session |
session_child_cycle | <leader>right | Next child session |
session_parent | <leader>up | Go to parent session |
Messages & Navigation
| Action | Default | Description |
|---|---|---|
messages_page_up | pageup,ctrl+alt+b | Scroll up one page |
messages_page_down | pagedown,ctrl+alt+f | Scroll down one page |
messages_half_page_up | ctrl+alt+u | Scroll up half a page |
messages_half_page_down | ctrl+alt+d | Scroll down half a page |
messages_first | ctrl+g,home | Jump to first message |
messages_last | ctrl+alt+g,end | Jump to last message |
messages_copy | <leader>y | Copy message |
messages_undo | <leader>u | Undo message |
messages_redo | <leader>r | Redo message |
messages_toggle_conceal | <leader>h | Toggle code-block concealment |
Lists & Dialogs
| Action | Default | Description |
|---|---|---|
model_list | <leader>m | List available models |
agent_list | <leader>a | List agents |
agent_cycle | tab | Next agent |
agent_cycle_reverse | shift+tab | Previous agent |
theme_list | <leader>t | List available themes |
command_list | ctrl+p | List available commands |
Interface
| Action | Default | Description |
|---|---|---|
sidebar_toggle | <leader>b | Toggle sidebar |
status_view | <leader>s | View status |
editor_open | <leader>e | Open external editor |
tips_toggle | <leader>h | Toggle home-screen tips |
Application & Input
| Action | Default | Description |
|---|---|---|
app_exit | ctrl+c,ctrl+d,<leader>q | Exit the application |
terminal_suspend | ctrl+z | Suspend the terminal |
input_submit | return | Submit input |
input_newline | shift+return,ctrl+return,alt+return,ctrl+j | Insert a newline |
input_clear | ctrl+c | Clear the input field |
input_paste | ctrl+v | Paste from clipboard |
Info
The input field also has a large set of cursor-movement and editing binds (input_move_*, input_word_*, input_delete_*, etc.). They follow the same keybinds naming and can be overridden the same way.
Full Configuration Example
{ "keybinds": { "leader": "ctrl+x",
"session_new": "<leader>n", "session_list": "<leader>l", "session_compact": "<leader>c", "session_timeline": "<leader>g", "session_rename": "ctrl+r", "session_export": "<leader>x",
"model_list": "<leader>m", "agent_list": "<leader>a", "theme_list": "<leader>t", "command_list": "ctrl+p",
"sidebar_toggle": "<leader>b", "status_view": "<leader>s", "editor_open": "<leader>e",
"messages_half_page_up": "ctrl+alt+u", "messages_half_page_down": "ctrl+alt+d", "messages_undo": "<leader>u",
"app_exit": "ctrl+c,ctrl+d,<leader>q" }}Multiple Bindings
Assign multiple shortcuts to one action with a comma:
{ "keybinds": { "app_exit": "ctrl+c,ctrl+d,<leader>q", "model_list": "<leader>m,ctrl+shift+m" }}The comma separates alternative bindings — it is not a chord sequence.
Resetting Keybindings
There is no reset command. To restore a default, remove the key from your keybinds object (or delete the whole object to restore all defaults).
Troubleshooting
- Check for conflicts with your terminal emulator
- Verify the config is valid JSON and the key name matches this page exactly (unknown keys fail validation)
- Browse registered commands in the TUI with
command_list(ctrl+p)
Tip
Use /help in Cyberstrike to see a quick reference of active keybindings.
Related Documentation
- Configuration Reference - All configuration options
- Keyboard Shortcuts - Shortcut reference
- Global Config - Configuration guide