Keybindings Most main-view keybinds are configurable in ~/.config/openswarm/config.toml under [keybinds]. Use ? in worktree view to open the categorized popup and see your active bindings. Set a binding to "" to unbind it.
Global Key Action q (default) Quit (confirms if terminal sessions are active) Ctrl+C Force quit w (default) Toggle between Changes and Worktrees views n (default) Open notes editor
Worktrees view Navigation Key Action Arrow keys Directional graph navigation (nearest node in that direction) h / l Move between siblings at the same depth j / k Move to child / parent levels Ctrl+K Cycle graph builder (top-down balanced / layered / left-right / trunk / swimlanes / indented) Tab Cycle focus: Canvas, Details, Actions H Toggle panel help modal v Toggle details panel compact / verbose ? Open full keybindings popup
Canvas Key Action + / = Zoom in - Zoom out 0 Reset zoom and pan W A S D Pan up / left / down / right M Toggle worktree art panel mode (config art / Spotify connector) B Cycle canvas background mode (stars / crosshatch / rain) Ctrl+L Toggle frame-lag debug stats + hitch/JSONL perf logging (system temp files)
Actions Key Action a Create worktree (auto-select new node) b Open branch switcher (type to filter, Enter to switch/create) g Orchestrate worktrees from a feature requirement o Open shell in worktree O Open agent picker (or launch default agent; default OpenCode attempts session resume) c Commit (git add . && git commit) for selected worktree p Push selected worktree branch f Fetch and pull parent branch (or selected root branch if behind head) F Rebase selected branch onto parent branch m Merge selected worktree into parent d Open delete confirmation for selected worktree (type yes/y or no/n) dd Instantly force-delete selected worktree (fixed; stays as dd) x Prune stale worktrees L Open git reflog popup r Refresh worktree list
Changes view Navigation Key Action h / Left Focus files panel l / Right Focus overview panel j / Down Next file / scroll down k / Up Previous file / scroll up
Actions Key Action a Smart stage/unstage selected file (stages unstaged changes first) j / k (overview panel) Select next/previous method J / K (overview panel) Scroll method details down/up Enter / Space (overview panel) Expand/collapse selected method hunk preview u Unstage selected file A / U Stage all / unstage all c Commit staged changes p Push current branch s Stash push (includes untracked) S Stash pop r Refresh status
Toggle between INPUT and CONTROL mode with Ctrl+G (or Cmd+G on macOS).
INPUT mode – typing goes to the PTY process (shell or agent). Up/Down scroll terminal history in the popup viewport.
CONTROL mode:
Key Action Esc Close popup, keep session running in background q Terminate session and close r Restart session
Notes editor Vim-style editor for notes.md (or conflict prompt templates).
NORMAL mode:
Key Action h j k l Move cursor 0 / Home Beginning of line $ / End End of line gg Go to first line G Go to last line i Insert at cursor a Insert after cursor A Insert at end of line o New line below O New line above x / Delete Delete character dd Delete line q Save and close Ctrl+S Save
INSERT mode:
Key Action Characters Insert text Enter New line Backspace Delete backward Tab Insert 4 spaces Esc Return to NORMAL mode Ctrl+S Save
Modals and confirmations Create worktree modal Key Action Left / Right Cycle base: Main, Selected, Selected+Changes Characters Type branch name Enter Create and auto-select new worktree Esc Cancel
Branch switch modal Key Action Characters Type branch filter (or a new branch name) Backspace Delete backward Up / Down or k / j Move selection PageUp / PageDown Jump through branch list Enter Switch to the selected filtered branch; if no matches, create+switch typed branch Shift+Enter Always create+switch the typed branch Esc Cancel
Orchestrate worktrees modal Key Action Characters Type feature requirement Enter Ask OpenCode planner and open leaf prompt preview Esc Cancel
Orchestrator leaf prompt preview modal Key Action j / k or Down / Up Select leaf node Space Toggle accept/reject for selected node a Accept all nodes r Refine selected node prompt Enter Execute accepted nodes (create worktrees) Esc Cancel orchestration
Orchestrator leaf prompt refine modal Key Action Characters Edit prompt text Backspace Delete backward Enter Save refined prompt Esc Cancel refine
Agent picker Key Action j / k Move selection Enter Launch selected agent Esc Cancel
Key Action j / k Scroll PageDown / PageUp Scroll fast Home / End Jump to top / bottom Esc / q / L Close
Confirmation dialogs All confirmation dialogs (worktree delete, quit with sessions, branch conflict, merge conflict):
Key Action Left / Right / Tab Toggle Yes / No y Select Yes n Select No Enter Confirm Esc Cancel
Worktree delete confirmation also supports typing yes/y or no/n in its input field (with Backspace to edit), plus d for instant force-delete.
The conflict resolution dialog also supports e to edit the prompt template inline.
When you confirm conflict resolution with Enter, OpenSwarm launches OpenCode by default for that flow.