Keyboard & Command Palette
Strand is keyboard-first: nearly every action has a command-palette entry, a global shortcut, or a surface-local key. This page covers the command palette, the full list of global (rebindable) shortcuts, and the fixed per-view keys.
The same repository and view commands are discoverable in Strand's native
desktop menu: the system menubar on macOS and a window menu on Windows/Linux.
Press F10 on Windows/Linux to focus it without a pointer. Menu shortcut labels
follow your bindings from Settings → Keyboard.
The command palette#
Open the palette with Mod+K. It is a single fuzzy-matched search over commands and repository data — the placeholder says it all: "Type a command, branch, file, or commit…".
Results are grouped, in this order:
- Actions — every command Strand exposes: initialize/open/clone/switch repository, show any view, fetch/pull/push/sync, stash and snapshot, create branch/tag/remote, clear merged local and matching remote branches, interactive rebase, review actions (pin/move/clear baseline, copy feedback as prompt), worktree cleanup, settings and theme, and "Abort
" while a merge or rebase is paused. - Branches — checkout a local branch. Remote branches without a local counterpart appear too; running one creates a local tracking branch. The current branch reveals its tip in the graph instead.
- Tags — reveal the tagged commit in the graph (non-destructive).
- Stashes — "Apply stash: …", "Pop stash: …", and "Create branch from stash: …" rows per stash.
- Files — working-tree files; opens a pinned document in Work.
- Commits — reveal the commit in the graph and open its detail panel.
- Workspaces — one row per workspace (shown once a named workspace exists); running one switches to it. See Repositories and workspaces.
- Recent — recently opened repositories; running one opens it by path.
With an empty query only Actions, Workspaces, and Recent show; type something or pick a scope to surface branches, files, and commits. Repo-scoped groups disappear when no repository is open, and repository data is indexed lazily only while the palette is open, so it costs nothing on large repos when closed.
Scope filtering#
Below the input sit scope pills: All plus one pill per group present. Press Tab / Shift+Tab to cycle scopes, or click a pill. Under All, each group shows up to 6 results; under a single scope, up to 50.
Palette keys#
| Key | Action |
|---|---|
↑ / ↓ |
Move through results |
Enter |
Run the selected item |
Tab / Shift+Tab |
Cycle scope pills |
Mod+K |
Toggle the palette |
Escape |
Close |
For jumping between repositories specifically, the quick-switcher Mod+E is faster: a fuzzy overlay over open repos and recents that switches or opens directly.
Global shortcuts#
All of these are rebindable in Settings → Keyboard (see Settings): click a binding chip to record a new combination, unassign it, or reset it to the default. Conflicting bindings are flagged "Shared with another command". "Clone repository…" ships with no default binding — assign one there if you clone often.
| Shortcut | Command | Category |
|---|---|---|
Mod+K |
Command palette | General |
Mod+O |
Open repository… | General |
| — | Clone repository… | General |
Mod+, |
Settings | General |
Mod+1 |
Go to Work | Navigation |
Mod+2 |
Go to Local Changes | Navigation |
Mod+3 |
Go to All Commits | Navigation |
Mod+4 |
Go to Reflog | Navigation |
Mod+5 |
Go to Review | Navigation |
Mod+6 |
Go to Worktrees | Navigation |
Mod+7 |
Go to Workspace Review | Navigation |
Mod+Tab |
Next repository | Navigation |
Mod+Shift+Tab |
Previous repository | Navigation |
Mod+E |
Switch repository… | Navigation |
Mod+Shift+Y |
Fetch | Git |
Mod+Shift+P |
Pull | Git |
Mod+P |
Push | Git |
Mod+Shift+S |
Sync (fetch + pull + push) | Git |
Mod+Shift+M |
Suggest commit message | Git |
Mod+Shift+E |
Open in editor | Repository |
Mod+Shift+C |
Open in terminal | Repository |
Mod+R |
Refresh | Repository |
Mod+Shift+T |
Toggle light/dark theme | Appearance |
Push is deliberately on Mod+P and pull on Mod+Shift+P. The Git shortcuts act only on the currently open repository, and most Navigation/Git/Repository commands need a repository open — Mod+E is the exception and lists recents even with nothing open.
Alternative network strategies are palette actions rather than fixed shortcuts: fetch with or without pruning; pull with merge, rebase, or fast-forward-only, with or without autostash; push annotated tags; push every tag; and force-push with a lease. The current branch also contributes “Manage current branch upstream…” and “Push current branch to…” actions. Force-push always opens a branch-specific confirmation dialog, and plain --force is not exposed. Any branch or remote-branch row can open its richer context menu from the keyboard with the Menu key or Shift+F10.
Each configured remote contributes palette actions to prune only that remote, inspect its fetch/push refspecs, and make it the repository's default push remote. The same actions are in the keyboard-openable remote-folder menu.
Repository maintenance… opens a keyboard-operable activity dialog for an
integrity check, incremental Git maintenance, or guarded garbage collection.
Use Tab to move between actions and activity entries, Enter to run or
expand one, and Escape to close when no operation is running.
New file… and New folder… open a focus-trapped path dialog for the
active repository. The Files sidebar exposes the same actions from its +
menu; use the arrow keys and Enter to choose one, or Escape to close it. Focus a
file or folder row and press the Menu key or Shift+F10 to reach its
editor/reveal, path-copy, history/blame, nested-create, rename, and confirmed
delete actions without a pointer.
A few fixed app-level keys are not rebindable:
| Key | Action |
|---|---|
Mod+Plus (or =) |
Zoom UI in |
Mod+Minus |
Zoom UI out |
Mod+0 |
Reset zoom to 100% |
Escape |
Close the palette, quick-switcher, or dialogs |
Zoom works even while a text field is focused, shows a "Zoom N%" toast, and persists.
Surface-local keys#
Each view has its own small set of fixed (non-rebindable) keys. Settings → Keyboard lists the most common of them under "Context shortcuts" for reference; this page is the complete list.
Work tabs and embedded terminals#
| Key | Action |
|---|---|
Ctrl/⌘+PageUp / Ctrl/⌘+PageDown |
Activate the previous / next tab in the active Work pane |
← / → |
Focus and activate the previous / next file or terminal tab in that pane |
Home / End |
Focus and activate the first / last tab in that pane |
Delete / Backspace |
Close the focused Work tab |
F6 |
Return focus from a terminal or document to the active pane's tab |
Quick Launch also exposes Split pane right and Split pane down, matching the two controls on every Work pane. Its Move active tab actions transfer the current tab to the previous or next pane, or create a new pane to the left, right, above, or below—the keyboard equivalents of dragging a Work tab.
When an embedded terminal owns focus, shell controls such as Ctrl+C and
Ctrl+R go to the shell. Command shortcuts remain app-owned on macOS; on
Windows and Linux the numbered view shortcuts and the fixed Work-tab
Ctrl+PageUp/Ctrl+PageDown pair remain app-owned.
Repository tabs#
When repository navigation uses the horizontal tab strip, focus a tab to use:
| Key | Action |
|---|---|
← / → |
Focus and open the previous / next repository tab |
Home / End |
Focus and open the first / last repository tab |
Delete / Backspace |
Close the focused repository or worktree tab |
Recent-repository and workspace menus expose their Open, Remove, Rename, and
Delete controls as separate tab stops. Enter / Space activates the focused
row or control.
Local Changes (staging)#
| Key | Action |
|---|---|
j / k |
Next / previous file (unstaged tree order, then staged) |
n / p |
Next / previous change block in the diff |
Shift+J / Shift+K |
Scroll the diff pane down / up |
s |
Stage / unstage the selected file |
d |
Discard the selected file (press twice within 2.5 s to confirm) |
Delete / Backspace |
Discard immediately, no confirm |
c |
Focus the commit subject field |
Mod+Enter |
Commit (from the message box) |
Mod+F |
Search within the current file or diff |
Each inline change-block action includes Lines…. Its checklist is fully
keyboard-operable: Tab moves through changed lines and actions, Space
toggles a line, and Escape closes it. Pointer users can also drag across
changed line numbers directly in the diff.
Review queue (Review and Workspace Review)#
| Key | Action |
|---|---|
j / k |
Next / previous file in the queue (crosses repo boundaries in Workspace Review) |
n / p |
Next / previous change block |
Shift+J / Shift+K |
Scroll the diff pane |
Space |
Mark the current file reviewed |
m |
Add a note on the current file |
s |
Stage the current file (if unstaged) |
d |
Discard the current file |
c |
Jump to Local Changes and focus the commit subject (Review only) |
o |
Open the file in its owning repository (Workspace Review only) |
Mod+F |
Search within the diff |
Arrow keys stay with the file tree. See Reviewing agent changes for the full workflow.
In-diff search bar#
Opened with Mod+F in Local Changes, Review, or Workspace Review.
| Key | Action |
|---|---|
Enter / ↓ |
Next match (wraps) |
Shift+Enter / ↑ |
Previous match |
Escape |
Close |
Commit graph (All Commits)#
| Key | Action |
|---|---|
↑ / ↓ |
Move row focus (Shift+↑/Shift+↓ extends the selection) |
Enter |
Open the commit detail panel |
Mod+A |
Select all loaded commits |
Menu key / Shift+F10 |
Open the row context menu |
Escape |
Clear the selection |
/ |
Focus the commit search field |
In the search field: Enter steps loaded matches (Shift+Enter backwards); Mod+Enter — or plain Enter in Content mode — runs the full-history search; ↑/↓ navigate the results dropdown and Enter opens a hit; Escape clears the query, then blurs. See Commits and history.
With several commits selected, the toolbar exposes ordered cherry-pick,
two-commit comparison, and patch-series export. Press the Menu key or
Shift+F10 on any selected row for the same operations plus copy actions for
ordered full SHAs, subjects, and complete messages. A single commit's menu and
detail panel expose subject/body copy and native-dialog patch export.
In commit/ref comparison dialogs, ↑ / ↓, Home, and End navigate
the changed-file list; Escape closes the dialog. Merge cherry-pick/revert
dialogs use the native radio-group arrow keys to choose the mainline parent.
In commit detail, each changed-file row is focusable; Enter / Space opens
its diff. In a file's History tab, Space selects a revision for comparison.
Enter selects an unselected revision, then opens that selected revision in
the commit graph when pressed again.
Interactive rebase editor#
| Key | Action |
|---|---|
↑ / ↓ |
Move focus between rows |
Alt+↑ / Alt+↓ |
Reorder the focused row (disabled while preserving merges) |
p / r / e / s / f / d |
Set the verb: Pick / Reword / Edit / Squash / Fixup / Drop |
Backspace / Delete |
Drop the row |
Escape |
Close the editor |
Worktrees dashboard#
| Key | Action |
|---|---|
↑ / ↓ |
Move focus in the list |
Enter |
Review the focused worktree |
Space |
Tick it for the best-of-N comparison |
See Worktrees.
On macOS, shortcut chips render as tight glyphs (⌘⇧P); on Windows and Linux they render as words (Ctrl+Shift+P). Either way the bindings are identical modulo Mod.