Skip to content

Keyboard shortcuts

Every keyboard shortcut in the web client, grouped the same way as the in-app help.

Some shortcuts bind different keys per platform: Mac / iPad uses Cmd, Windows / Linux uses Ctrl, and a few bindings are literal and identical everywhere. Where a row shows two columns, both are listed; where it shows one combo, it works on all platforms.

In-app help and customization

Open the command palette (Ctrl+Shift+P / Cmd+Shift+P, or F1 on Windows/Linux) or type /help to see the same list inside the app. Every binding can be rebound in Settings → Shortcuts (Ctrl+,); your overrides are synced to the server, so they follow you across browsers and devices.

iPad-reserved Cmd combos

iPadOS reserves some Cmd chords at the OS level (for example Cmd+,, Cmd+W, Cmd+Tab) — they never reach the web app, even in the PWA. Shortcuts that would collide keep an additive literal Ctrl binding as the iPad-safe fallback (e.g. Settings is Ctrl+, everywhere and Cmd+, on macOS proper).

Sessions & Tabs

Action Mac / iPad Windows / Linux
New session Cmd+T Ctrl+T
Quick switcher Cmd+K / Cmd+P Ctrl+K / Ctrl+P
Open dialog (projects & sessions) Cmd+O Ctrl+O
Command palette Cmd+Shift+P Ctrl+Shift+P / F1
Grid switcher (cycle forward) Alt+Tab Ctrl+Shift+]
Grid switcher (cycle backward) Alt+Shift+Tab Ctrl+Shift+[
Close tab Alt+W (both) or Cmd+W Alt+W (both) or Ctrl+W
Reopen last closed tab Cmd+Shift+T Ctrl+Shift+T
Clone session Cmd+N Ctrl+Shift+N
New scratch tab Ctrl+N Ctrl+N
Previous tab Cmd+[ Ctrl+[
Next tab Cmd+] Ctrl+]
Switch to tab 1–9 Cmd+1Cmd+9 Ctrl+1Ctrl+9

Note

Cmd+W closes the browser tab on macOS browsers — it only reaches the app in the PWA / standalone wrapper, which is why Alt+W exists as the universal close-tab binding. On Windows/Linux, clone is Ctrl+Shift+N because Ctrl+N is taken by "new scratch tab" (and Ctrl+N is deliberately literal on Mac too, where the Ctrl layer is mostly free).

Panels

Action Mac / iPad Windows / Linux
Toggle terminal Ctrl+` / Ctrl+\ Ctrl+` / Ctrl+\
New terminal Ctrl+Shift+` / Ctrl+Shift+C / Cmd+Shift+C Ctrl+Shift+` / Ctrl+Shift+C
Toggle rail menu (sidebar) Cmd+B Ctrl+B
File explorer Alt+F Alt+F
Log explorer Alt+L Alt+L
Git panel Alt+G Alt+G
Active sessions Alt+S Alt+S
Cost analytics Alt+4 Alt+4
Discussion thread Alt+/ Alt+/
Browser widget Alt+B Alt+B
Debug console Alt+D Alt+D
Eruda dev tools Alt+Shift+D Alt+Shift+D
History explorer Alt+H Alt+H
Zen mode Alt+Z Alt+Z
Quick actions (radial menu) Ctrl+Q Ctrl+Q
Prompt explorer Alt+P / Ctrl+R Alt+P / Ctrl+R
Skills panel Alt+K Alt+K
Commands panel Alt+Shift+K Alt+Shift+K
Thinking settings ++cmd+apostrophe++ ++ctrl+apostrophe++
Cycle effort (one-shot, next message) ++cmd+shift+apostrophe++ ++ctrl+shift+apostrophe++

Background tasks has a panel toggle action but ships with no default binding — assign one in Settings → Shortcuts if you want it on a key. Cmd+R is bound to page reload on Mac/iPad only, for the standalone PWA wrapper where there is no browser chrome (in a normal browser it just reloads, same as native).

Action Mac / iPad Windows / Linux
Search in conversation Cmd+F Ctrl+F
Find next Cmd+G Ctrl+G / F3
Find previous Cmd+Shift+G Ctrl+Shift+G / Shift+F3

Editor

Action Key
Toggle edit mode (file preview) E

E only fires when focus is not in an input, textarea, or terminal — i.e. while you are viewing a file preview, pressing E flips it into inline-edit mode.

Action Mac / iPad Windows / Linux
Previous user message Cmd+Up Ctrl+Up
Next user message Cmd+Down Ctrl+Down
Focus message input Cmd+/ Ctrl+/
Focus project field Cmd+L Ctrl+L
Reconnect (when disconnected) Cmd+Enter Ctrl+Enter
Back to sessions Backspace Backspace

Context gates worth knowing:

  • Previous/next user message only fire while a session view is active.
  • Focus input skips the CodeMirror editor, so Cmd+/ / Ctrl+/ still toggles comments in scratch tabs — but it does work from inside the terminal, as an escape hatch back to the chat input.
  • Reconnect only fires when the active session is disconnected; otherwise the key passes through to other handlers (e.g. send).
  • Back to sessions only fires when the back pill is visible and the message input is empty — it never steals Backspace while you are editing text.

Other

Action Key
Settings Ctrl+, (all platforms), plus Cmd+, on macOS
Close / cancel Esc
Help no default binding — use the command palette or /help
Reload page (Mac/iPad only) Cmd+R

Esc is gated out of the terminal so it reaches your shell, vim, etc.

How context gating works

Each shortcut declares a when context. The defaults:

Context Behavior
global (default) Fires everywhere except when the terminal is focused, so keystrokes pass through to the shell
always Fires everywhere, including inside the terminal (tab switching, quick switcher, …)
notInInput Suppressed while typing in any input or textarea
notInTerminal Suppressed only in the terminal
notInEditor Suppressed in the CodeMirror editor (lets the editor keymap win)
session Only while a chat session view is active

This is why Ctrl+B still works as your tmux prefix inside the terminal widget: the rail-menu toggle uses the default global context and stays out of the terminal's way.