Skip to main content

Cyberstrike is now open source! AI-powered penetration testing for security professionals. Star on GitHub

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:

~/.config/cyberstrike/cyberstrike.json
{
"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

ModifierSyntax
Controlctrl
Alt/Optionalt
Shiftshift
Super/Commandsuper

Special Keys

KeySyntax
Enterreturn
Escapeescape
Tabtab
Backspacebackspace
Deletedelete
Arrowsup down left right
Page Up / Downpageup pagedown
Home / Endhome end
Function keysf2, shift+f2

Combinations, Alternatives & Leader

ctrl+alt+d # Ctrl + Alt + D
<leader>n # Leader then N
pageup,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

ActionDefaultDescription
session_new<leader>nCreate a new session
session_list<leader>lList all sessions
session_compact<leader>cCompact the session
session_timeline<leader>gShow session timeline
session_renamectrl+rRename session
session_deletectrl+dDelete session
session_export<leader>xExport session to editor
session_interruptescapeInterrupt current session
session_forknoneFork session from message
session_sharenoneShare current session
session_child_cycle<leader>rightNext child session
session_parent<leader>upGo to parent session

Messages & Navigation

ActionDefaultDescription
messages_page_uppageup,ctrl+alt+bScroll up one page
messages_page_downpagedown,ctrl+alt+fScroll down one page
messages_half_page_upctrl+alt+uScroll up half a page
messages_half_page_downctrl+alt+dScroll down half a page
messages_firstctrl+g,homeJump to first message
messages_lastctrl+alt+g,endJump to last message
messages_copy<leader>yCopy message
messages_undo<leader>uUndo message
messages_redo<leader>rRedo message
messages_toggle_conceal<leader>hToggle code-block concealment

Lists & Dialogs

ActionDefaultDescription
model_list<leader>mList available models
agent_list<leader>aList agents
agent_cycletabNext agent
agent_cycle_reverseshift+tabPrevious agent
theme_list<leader>tList available themes
command_listctrl+pList available commands

Interface

ActionDefaultDescription
sidebar_toggle<leader>bToggle sidebar
status_view<leader>sView status
editor_open<leader>eOpen external editor
tips_toggle<leader>hToggle home-screen tips

Application & Input

ActionDefaultDescription
app_exitctrl+c,ctrl+d,<leader>qExit the application
terminal_suspendctrl+zSuspend the terminal
input_submitreturnSubmit input
input_newlineshift+return,ctrl+return,alt+return,ctrl+jInsert a newline
input_clearctrl+cClear the input field
input_pastectrl+vPaste 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

~/.config/cyberstrike/cyberstrike.json
{
"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

  1. Check for conflicts with your terminal emulator
  2. Verify the config is valid JSON and the key name matches this page exactly (unknown keys fail validation)
  3. Browse registered commands in the TUI with command_list (ctrl+p)

Tip

Use /help in Cyberstrike to see a quick reference of active keybindings.