Skip to main content
Symbiotic Code supports custom keybinds that you configure in the keybinds section of tui.json (or tui.jsonc).
  • Global: ~/.config/symbiotic/tui.json
  • Project: tui.json at the root of your project (or any directory between your working directory and the git root), or .symbiotic/tui.json
  • Custom path: set the SYMBIOTIC_TUI_CONFIG environment variable
Files are merged, with project files overriding global ones. You only need to list the keybinds you want to change.
If you still have keybinds in symbiotic.json, they are moved automatically to a tui.json next to it on startup (a .tui-migration.bak backup is kept).
The defaults are:
tui.json

Leader key

Symbiotic Code uses a leader key for most keybinds. This avoids conflicts in your terminal. By default, ctrl+x is the leader key and most actions require you to first press the leader key and then the shortcut. For example, to start a new session you first press ctrl+x and then press n. The leader key stays active for 2 seconds. You don’t need to use a leader key for your keybinds but we recommend doing so.

Keybind syntax

  • Combine modifiers and a key with +, for example ctrl+shift+a. Supported modifiers are ctrl, alt (also meta or option), shift, and super.
  • Use <leader> to reference the leader key, for example <leader>n.
  • Separate alternative bindings with commas, for example "pageup,ctrl+alt+b".
Some keybinds only apply inside a specific dialog: session_delete and session_pin_toggle in the session list, stash_delete in the stash dialog, and model_provider_list and model_favorite_toggle in the model list. That’s why they can share keys with other actions.
Keybind names are validated. If tui.json contains an unknown keybind name, the whole file is ignored and a warning is written to the log.

Disable keybind

You can disable a keybind by adding the key to tui.json with a value of “none”.
tui.json

Shift+Enter

Some terminals don’t send modifier keys with Enter by default. You may need to configure your terminal to send Shift+Enter as an escape sequence.

Windows Terminal

Open your settings.json at:
Add this to the root-level actions array:
Add this to the root-level keybindings array:
Save the file and restart Windows Terminal or open a new tab.