Customize
Keyboard shortcuts
The default shortcuts, and how to change them in the Keymap tab or keymap.json.
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 |
Sidebar and dock
| 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.
[
{
"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]. nullunbinds the keys, and keeps them unbound if a later version adds a default there.- Context limits where the binding applies:
Rexafor everywhere, orEditor,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.