Esc

    Every command is in the command palette (⌘ ⇧ P) with its shortcut beside it. Hover tooltips and right-click menus show shortcuts too.

    Everyday shortcuts

    Workspace

    Action Shortcut
    Quick open file ⌘ P
    Command palette ⌘ ⇧ P
    New tab (console, agent, browser) ⌘ N
    New default tab ⌘ T
    Close tab or split ⌘ W
    Reopen closed tab ⌘ ⇧ T
    Add a pane column ⌘ \
    Floating terminal ⌘ J
    Open project ⌘ O
    New worktree ⌘ ⇧ N
    Worktree picker ⌘ ⇧ W
    Next / previous worktree ⌘ ` / ⌘ ~
    Live agents ⌘ E
    Next / previous agent card ⌃ ` / ⌃ ~
    Go back / forward ⌃ - / ⌃ ⇧ -
    Text size up / down / reset ⌘ = / ⌘ - / ⌘ 0
    Action Shortcut
    Toggle / focus Projects sidebar ⌘ B / ⌘ ⇧ B
    Toggle / focus right dock ⌘ R / ⌘ ⇧ R
    Agents ⌘ ⇧ A
    Files ⌘ ⇧ E
    Search ⌘ ⇧ F
    Git ⌘ ⇧ G
    Forge ⌘ ⇧ U
    Problems ⌘ ⇧ M
    Next / previous problem F8 / ⇧ F8

    Editor and review

    Action Shortcut
    Save / save all ⌘ S / ⌘ ⌥ S
    Find / next / previous ⌘ F / ⌘ G / ⌘ ⇧ G
    Symbol outline ⌘ ⇧ O
    Go to definition F12
    Comment for an agent ⌘ I
    Add selection to an agent’s prompt ⌘ L
    Commit ⌘ ↵ in the commit box

    Page-specific keys are on each page: Terminal, Editor, Files and search, Browser.

    Change a shortcut

    In the Keymap tab

    Open it from the keyboard button at the bottom of the Projects sidebar, or rexa: show keymap. Each row shows an action, its arguments, keys, context and source (Default or User). Search to find one, and switch between Compact and Full views.

    Click a row’s record button and press the new keys. If the keys are taken, Rexa names the clash and asks before rebinding.

    In keymap.json

    Your bindings live in ~/.config/rexa/keymap.json. Rexa applies the file when you save it. The Keymap tab has buttons to open your file and a read-only copy of the defaults.

    ~/.config/rexa/keymap.json
    [
      {
        "context": "Rexa",
        "bindings": {
          "cmd-shift-z": "rexa::ToggleZenMode",
          "cmd-shift-u": null
        }
      },
      {
        "context": "Editor",
        "bindings": { "cmd-k cmd-s": "rexa::SaveAll" }
      }
    ]
    • Keys are written like cmd-shift-z. A sequence is space-separated: cmd-k cmd-r.
    • The action is a name such as rexa::ToggleZenMode, or ["action", argument].
    • null unbinds the keys, and keeps them unbound if a later version adds a default there.
    • Context limits where the binding applies: Rexa for everywhere, or Editor, Terminal, Pane, Console, FilePanel, Sidebar, Browser. The most specific context wins.

    Copy action names from the default keymap or the Keymap tab. Some commands have no default shortcut, such as rexa::ToggleZenMode, rexa::OpenSettings and rexa::ToggleStatusBar.

    Write cmd-~ rather than cmd-shift-`, and cmd-{ rather than cmd-shift-[; the shifted form never fires.

    Which-key

    Turn on editor.which_key, or run editor: toggle which-key, to show what can follow a partly typed chord or Vim command after 300 ms.