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 and preferences.

📸 SCREENSHOT: keybindings-config.png

Keybindings configuration options

Configuration Location

Keybindings are configured in:

~/.cyberstrike/config.json
{
"keybinds": {
"leader": "ctrl+x",
"session_new": "<leader>n"
}
}

Leader Key

The leader key is a prefix for many shortcuts:

Default Leader

{
"keybinds": {
"leader": "ctrl+x"
}
}

Alternative Leaders

{
"keybinds": {
"leader": "ctrl+a"
}
}
{
"keybinds": {
"leader": "space"
}
}

Key Syntax

Modifiers

ModifierSyntax
Controlctrl
Alt/Optionalt
Shiftshift
Meta/Commandmeta

Combinations

ctrl+s # Ctrl + S
alt+shift+p # Alt + Shift + P
ctrl+shift+k # Ctrl + Shift + K
meta+enter # Cmd/Win + Enter

Special Keys

KeySyntax
Enterenter
Escapeescape
Tabtab
Spacespace
Backspacebackspace
Deletedelete
Arrow Upup
Arrow Downdown
Arrow Leftleft
Arrow Rightright
Page Uppageup
Page Downpagedown
Homehome
Endend

Leader Reference

<leader>n # Leader + N
<leader>m # Leader + M

Chord Sequences

ctrl+x,ctrl+c # Ctrl+X then Ctrl+C
<leader>g,s # Leader+G then S

Available Actions

Session Actions

{
"keybinds": {
"session_new": "<leader>n",
"session_list": "<leader>l",
"session_compact": "<leader>c",
"session_timeline": "<leader>g",
"session_rename": "ctrl+r",
"session_export": "<leader>x"
}
}
{
"keybinds": {
"scroll_up": "ctrl+u",
"scroll_down": "ctrl+d",
"go_top": "g",
"go_bottom": "G",
"undo": "u",
"redo": "ctrl+r"
}
}

Dialog Actions

{
"keybinds": {
"model_list": "<leader>m",
"agent_list": "<leader>a",
"theme_list": "<leader>t",
"command_palette": "<leader><leader>"
}
}

Interface Actions

{
"keybinds": {
"sidebar_toggle": "<leader>b",
"status_view": "<leader>s",
"editor_open": "<leader>e"
}
}

Application Actions

{
"keybinds": {
"app_exit": "ctrl+c,ctrl+d,<leader>q"
}
}

Input Actions

{
"keybinds": {
"submit": "enter",
"newline": "shift+enter",
"cancel": "ctrl+c",
"autocomplete": "tab"
}
}

Full Configuration Example

~/.cyberstrike/config.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_palette": "<leader><leader>",
"sidebar_toggle": "<leader>b",
"status_view": "<leader>s",
"editor_open": "<leader>e",
"scroll_up": "ctrl+u",
"scroll_down": "ctrl+d",
"go_top": "g",
"go_bottom": "G",
"undo": "u",
"app_exit": "ctrl+c,ctrl+d,<leader>q"
}
}

Multiple Bindings

Assign multiple shortcuts to one action:

{
"keybinds": {
"app_exit": "ctrl+c,ctrl+d,<leader>q",
"model_list": "<leader>m,ctrl+shift+m"
}
}

Comma separates alternative bindings, not chord sequences.

Vim Mode Keybindings

Enable Vim Mode

{
"vim": {
"enabled": true
}
}

Vim Normal Mode

These work when vim mode is enabled:

KeyAction
iInsert mode
aAppend
AAppend at end
oNew line below
ONew line above
ddDelete line
yyYank line
pPaste
uUndo

Vim Movement

KeyAction
hLeft
lRight
jDown
kUp
wNext word
bPrevious word
0Start of line
$End of line
ggStart of input
GEnd of input

Custom Vim Bindings

{
"vim": {
"enabled": true,
"keybinds": {
"normal": {
"jj": "escape"
}
}
}
}

Dialog Keybindings

When in dialogs (model selection, etc.):

{
"keybinds": {
"dialog_up": "up,k,ctrl+p",
"dialog_down": "down,j,ctrl+n",
"dialog_select": "enter,tab",
"dialog_close": "escape,q",
"dialog_filter": "/",
"dialog_favorite": "ctrl+f",
"dialog_delete": "ctrl+d"
}
}

Permission Prompt Keybindings

{
"keybinds": {
"permission_approve": "y",
"permission_approve_always": "a",
"permission_reject": "n,escape"
}
}

Platform-Specific Bindings

macOS

{
"keybinds": {
"leader": "meta+x",
"app_exit": "meta+q"
}
}

Linux/Windows

{
"keybinds": {
"leader": "ctrl+x",
"app_exit": "alt+f4"
}
}

Conditional Platform Bindings

{
"keybinds": {
"leader": {
"darwin": "meta+x",
"linux": "ctrl+x",
"win32": "ctrl+x"
}
}
}

Resetting Keybindings

Reset Specific Binding

Terminal window
cyberstrike config unset keybinds.session_new

Reset All Bindings

Terminal window
cyberstrike config unset keybinds

View Defaults

Terminal window
cyberstrike config get keybinds --defaults

Troubleshooting

Keybinding Not Working

  1. Check for conflicts with terminal
  2. Verify syntax is correct
  3. Ensure config is valid JSON

Check Active Bindings

Terminal window
cyberstrike config get keybinds

Test Specific Binding

In Cyberstrike, use the command palette (<leader><leader>) to verify bindings are registered.

Tip

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