← Docs

Keyboard shortcuts

Brisal drives almost everything from the keyboard through a tmux-style keymap: a leader key opens a menu of multi-key sequences, and a few modes rebind the keyboard entirely while they’re active. Every binding on this page is a default — all of them are remappable per workspace from Settings → Hotkeys.

How the keymap reads

  • A chord is one key plus any modifiers, joined with +: ctrl+p, mod+m, ctrl+shift+enter.
  • A sequence is one or more chords separated by spaces: ctrl+b w n means “press Ctrl+B, then w, then n”. Sequences are how the leader works.
  • Bindings are case-insensitive and modifier order doesn’t matter — Ctrl+S, S+Ctrl, and ctrl+s are the same chord.

The leader key

The leader is ctrl+b. Pressing it starts a sequence and opens the which-key menu — a hint surface listing the keys you can press next and what each does. Keep pressing keys to walk the menu; it fires as soon as you reach a bound sequence. If you pause too long (5 seconds by default) or press a cancel key, the pending sequence is dropped.

Cancel keysEsc, Ctrl+C, Ctrl+G, Ctrl+D — abort a pending sequence and back out of a mode. Where the which-key menu appears on screen is an appearance setting, per workspace.

The which-key menu, a floating card that appears after pressing the leader. Its header reads "ctrl+b"; below it, each next key is listed with what it does: "b Toggle sidebar", "i Focus composer", "w more options…", "space Open command palette", "g Open GOTO jumper", "s more options…", "p more options…", and "m Enter message-select mode". Keys that only continue a longer sequence show "more options…".

The which-key menu after pressing Ctrl+B: the next keys and what each does. w, s, and p continue into longer sequences (“more options…”).

Global

Works anywhere in the app.

ShortcutAction
Ctrl+,Open Settings.
Ctrl+B BToggle the sidebar open or collapsed.
Ctrl+B IFocus the message composer.
Ctrl+B W NCreate a new workspace.
Ctrl+B W EEdit the current workspace.
Ctrl+B S NStart a new session.

Command palette

A searchable list of every action the keymap knows, with each action’s current bindings shown alongside — the fastest way to run something you haven’t memorized, or to discover what a key does.

ShortcutAction
Ctrl+POpen the command palette.
Ctrl+B SpaceOpen the command palette.

Inside it: type to filter, / to move (the cursor wraps), Enter to run, Esc to close.

The command palette overlay. A "Type a command…" search field sits at the top; below it, a list of actions, each row showing the action name on the left, its current key bindings in the middle, and a context badge on the right. Rows include "New session — ctrl+b s n — GLOBAL", "Send message — enter — COMPOSER", "Open GOTO jumper — ctrl+b g, ctrl+b g p, ctrl+… — GLOBAL", "Select next message — down, j — MESSAGE-SELECT", and "Save current comment — ctrl+enter — ANNOTATE-WRITING". A footer shows "↑↓ navigate · Enter run · Esc close".

The command palette: every action, its bindings, and the context each belongs to — searchable and runnable without leaving the keyboard.

GOTO jumper

A jump-to jumper over your sessions, workspaces, and projects. Open it broad, or open it pre-scoped to one kind.

ShortcutAction
Ctrl+KOpen GOTO (everything).
Ctrl+B GOpen GOTO (everything).
Ctrl+B S GOpen GOTO, scoped to sessions.
Ctrl+B W GOpen GOTO, scoped to workspaces.
Ctrl+B P GOpen GOTO, scoped to projects.

Inside GOTO you can also switch scope by typing a keyword prefix — sessions:, workspaces:, or projects: — instead of opening a pre-scoped variant.

The GOTO jumper overlay. A "Jump to session, workspace, or project…" search field sits at the top; below it, results grouped by kind, each row tagged with its type on the left and a location on the right: "WORKSPACE demo — workspace", "PROJECT Project-demo — project · demo", "SESSION J.A.R.V.I.S – Jul 4 at 01:44 AM — Project-demo · main", and "SESSION Brisal Default – Jul 4 at 01:13 AM — Project-demo · main". A footer shows "↑↓ navigate · Enter open · Esc close".

GOTO jumping across everything: workspaces, projects, and sessions in one list, each row showing where it lives.

Message-select mode

A modal, vim-style mode for moving over the messages in a session transcript — to copy one, or to start annotating it. Entering the mode blurs the composer; a cancel key exits.

ShortcutAction
mod+MEnter message-select mode.
Ctrl+B MEnter message-select mode.
/ KSelect the previous message.
/ JSelect the next message.
Y / CCopy the selected message.
A / EnterAnnotate the selected message (enters annotate mode).

Annotate mode

Line-level annotation of a message: walk the lines, open a comment on one, tag it, then send the assembled review to the agent.

ShortcutAction
/ Select the previous / next line.
A / EnterOpen a comment on the selected line.
Ctrl+EnterSend the assembled annotation review.

While writing a comment:

ShortcutAction
Ctrl+EnterSave the current comment.
Ctrl+QTag the comment Question.
Ctrl+ETag the comment Edit.
Ctrl+NTag the comment Note.
Ctrl+RTag the comment Remove.

Message composer

When the cursor is in the message box of a session:

ShortcutAction
EnterSend the message.
Shift+EnterInsert a newline instead of sending.
Esc / Ctrl+C / Ctrl+DInterrupt the running turn.
mod+S / Ctrl+SStash the current draft, or restore a stashed one.

While the composer’s inline picker is open (for example, choosing a file to reference):

ShortcutAction
/ Move through the suggestions.
EnterAccept the highlighted suggestion.
EscClose the picker without choosing.

Conventional keys

Standard keys Brisal honors consistently across dialogs, selectors, and lists, so you rarely need the mouse:

ShortcutAction
EscClose the open dialog, overlay, or selector.
Enter / SpaceActivate the focused item (a card, a button, a list row).
/ Move through the entries of a list or picker.
Tab / Shift+TabMove focus forward or backward through a dialog’s fields.

Customizing bindings

Every binding above is a default you can change, per workspace, from Settings → Hotkeys — an editor that’s a live view over the running keymap.

The Hotkeys settings tab. A heading "Hotkeys" with "Editing: demo" beneath it. A "Leader & timeout" section holds a Leader field ("ctrl+b") and a "Sequence timeout (ms)" field ("5000"). Below, a "global" group ("Bindings available when the global context is active") lists action rows, each with its current bindings as removable badges and an "+ Add" button: "Edit current workspace — ctrl+b w e", "Enter message-select mode — cmd+m, ctrl+b m", "Focus composer — ctrl+b i", "New session — ctrl+b s n", "New workspace — ctrl+b w n", and "Open command palette — ctrl+b space, ctrl+p".

The Hotkeys tab: the leader and timeout up top, then every action grouped by context with its bindings as removable badges.

In it you can:

  • Change the leader and the sequence timeout.
  • Add a binding by capturing chords live, or remove one — including unbinding a shipped default.
  • Copy another workspace’s bindings wholesale with Copy from workspace….
  • See inline warnings for conflicts (a duplicate sequence, a sequence shadowed by a shorter prefix, or a default you’ve unbound).

Saving writes a sparse override to the workspace’s keybindings.toml, and the live keymap rebuilds immediately. The editor is the supported path; for the file format and fields, see Config files.

  • Settings — where the Hotkeys editor lives and how per-workspace overrides merge over the system defaults.
  • Config files — the keybindings.toml schema, for hand-editing.
  • Sessions — where the composer keys, message-select, and annotate modes apply.