Keyboard shortcuts
Deze inhoud is nog niet vertaald.
Shortcuts come from one const registry, KeybindingRegistry in lib/core/constants/keybindings.dart. It holds 48 bindings. Settings → You → Keybindings renders that registry as a read-only reference: there is no rebinding UI and no user keybindings file.
Cmd below is the primary command modifier — ⌘ on macOS, Ctrl on Windows and Linux. A binding only fires when its command has a registered handler on the current screen and its when clause holds; !textInputFocus means the key is passed through to a focused text field instead.
There is no digit-key navigation shortcut. Inbox, tickets, pull requests and the rest are reached from the sidebar or ⌘K. Observability has no shortcut either.
Global (19)
Section titled “Global (19)”Scope global, so they are live anywhere in the shell.
System
Section titled “System”| Shortcut | Action | Condition |
|---|---|---|
Cmd/Ctrl + K |
Command palette | — |
Shift + / (?) |
Keyboard shortcuts cheat sheet | Not typing in a field |
Cmd/Ctrl + Z |
Undo | Not typing in a field (a focused field keeps its own undo) |
Cmd/Ctrl + Shift + Z |
Redo | Not typing in a field |
Cmd/Ctrl + Shift + T |
Toggle theme | — |
Cmd/Ctrl + , |
Open settings (lands on /settings/you/appearance) |
— |
Cmd/Ctrl + Shift + Alt + F |
Toggle focus mode | — |
Cmd/Ctrl + Shift + W |
Toggle workspace switcher | — |
Cmd/Ctrl + ] |
Next workspace | — |
Cmd/Ctrl + [ |
Previous workspace | — |
Cmd/Ctrl + Alt + 1 … Cmd/Ctrl + Alt + 9 |
Switch to workspace 1–9 | — |
Pull request list (3)
Section titled “Pull request list (3)”Scope /pull-requests. All require route == '/pull-requests' and no focused text field, so they do not fire while the PR detail route is open over the list.
| Shortcut | Action |
|---|---|
R |
Refresh |
Enter |
Open PR |
F |
Open filter menu |
Enter (pr.list-open) is declared in the registry and appears on the keybindings reference, but the list screen does not register a handler for it, so it currently does not fire. F opens the filter menu (pr.list-open-filter), not search.
Pull request detail (2)
Section titled “Pull request detail (2)”Scope /pull-requests/. Refresh requires no focused text field. Close-tab has no text-input guard (a ⌘-modified stroke is never plain text) and a route regex so it does not fire on the list.
| Shortcut | Action | Condition |
|---|---|---|
R |
Refresh | Not typing in a field |
Cmd/Ctrl + W |
Close tab | On a /pull-requests/<…> location |
Tab switching (1/2/3), file viewed/collapse (V/C), the file list (T) and find-in-diff (Cmd/Ctrl + F) are owned by the diff viewer’s own handler — see Diff viewer keys outside the registry.
Inbox (1)
Section titled “Inbox (1)”| Shortcut | Action |
|---|---|
F |
Open filter menu |
Requires route == '/inbox' and no focused text field.
GitHub user and team profiles (3)
Section titled “GitHub user and team profiles (3)”Scope /users/. The when clause is a regex against /users/<login> or /teams/<organization>/<slug>, plus no focused text field.
| Shortcut | Action |
|---|---|
R |
Refresh |
/ |
Focus search |
Cmd/Ctrl + F |
Focus search |
Spaces (8)
Section titled “Spaces (8)”Scope /spaces. The when clauses use a regex so they fire on both the space list (/spaces) and a selected space (/spaces/<id>).
| Shortcut | Action | Condition |
|---|---|---|
Enter |
Send message | — |
Cmd/Ctrl + N |
New space | On a /spaces route |
J |
Next space | Not typing in a field |
K |
Previous space | Not typing in a field |
Cmd/Ctrl + Shift + D |
Push-to-talk dictation | — |
Cmd/Ctrl + T |
Open editor tab | On a /spaces route |
Cmd/Ctrl + W |
Close editor tab | On a /spaces route |
Cmd/Ctrl + B |
Toggle editor sidebar | On a /spaces route |
Enter-to-send is owned by the composer text field; push-to-talk is owned by the composer’s mic button (its own hardware-keyboard handler). Both are listed in the registry for the settings reference.
Workspace picker (2)
Section titled “Workspace picker (2)”Scope /workspaces, live only on the picker itself.
| Shortcut | Action |
|---|---|
Cmd/Ctrl + N |
New workspace |
Enter |
Open selected workspace |
Enter requires no focused text field.
Settings (5)
Section titled “Settings (5)”| Shortcut | Action | Screen |
|---|---|---|
J |
Next settings page | Any /settings route, not typing |
K |
Previous settings page | Any /settings route, not typing |
Cmd/Ctrl + N |
New agent | Settings → Workspace → Agents |
Cmd/Ctrl + N |
Add repository | Settings → Workspace → Repositories |
R |
Rescan for adapters | Settings → Server → Model providers |
Newsfeed (5)
Section titled “Newsfeed (5)”Scope /newsfeed. All require route == '/newsfeed' and no focused text field.
| Shortcut | Action |
|---|---|
J |
Next article |
K |
Previous article |
Enter |
Open article |
S |
Toggle bookmark |
R |
Refresh feeds |
Diff viewer keys outside the registry
Section titled “Diff viewer keys outside the registry”The PR diff viewer handles these itself (PrDiffKeyboardHandler). Search/viewed/collapse are listed in the registry comments for the settings reference only — no dispatcher handler is registered, so the dispatcher leaves them to the diff view. They do not appear as their own rows on the keybindings reference.
| Shortcut | Action |
|---|---|
Cmd/Ctrl + F |
Search in diff |
J / K |
Next / previous file |
V |
Toggle viewed on the focused file |
C |
Toggle collapse on the focused file |
T |
Show file list |
Enter |
Next search match (only while find-in-diff is open) |
Shift + Enter |
Previous search match |
Escape |
Close find-in-diff, or clear the diff text selection |
Cmd/Ctrl + C |
Copy the diff selection |
Browser-reserved combinations
Section titled “Browser-reserved combinations”On the web build, the browser consumes some accelerators before the page sees them, so the matching bindings can never fire there. They work normally on desktop. Reserved when combined with the primary command modifier: T, W, N and the digits 1–9.
That covers Cmd/Ctrl + Alt + 1–9 workspace switching, Cmd/Ctrl + N (new space, new workspace, new agent, add repository) and Cmd/Ctrl + T / Cmd/Ctrl + W in spaces and PR detail.