Keyboard Shortcuts
Complete shortcut reference for terminal management, navigation, chord sequences, and profile customization.
Terminal & Panel Management
| Action | Shortcut |
|---|---|
| New terminal | Cmd+Alt+T |
| Duplicate panel | Cmd+T |
| Close focused terminal | Cmd+W |
| Reopen last closed terminal | Cmd+Shift+T |
| Focus terminal 1–9 | Cmd+1 through 9 |
| Focus next terminal (includes docked panels) | Ctrl+Tab |
| Focus previous terminal (includes docked panels) | Ctrl+Shift+Tab |
| Next tab in panel | Cmd+Shift+] |
| Previous tab in panel | Cmd+Shift+[ |
| Maximize / restore panel within grid | Ctrl+Shift+F |
| Toggle dock state | Cmd+Alt+M |
| Toggle all dock state | Cmd+Alt+Shift+M |
| Focus dock | Cmd+Alt+D |
| Move panel left | Cmd+Shift+Alt+Left |
| Move panel right | Cmd+Shift+Alt+Right |
| Move panel up | Cmd+Shift+Alt+Up |
| Move panel down | Cmd+Shift+Alt+Down |
| Move panel to dock | Cmd+Shift+Alt+D |
| Move panel to grid | Cmd+Shift+Alt+G |
| Send to agent (panel focused) | Cmd+Shift+E |
| Watch terminal | Cmd+Shift+W |
| Stash input | Cmd+Shift+S |
| Restore stash | Cmd+Shift+X |
| Find in focused panel | Cmd+F |
| Copy terminal selection | Cmd+C (macOS) / Right-click > Copy (Windows/Linux) |
| Paste into terminal | Cmd+V (macOS) / Ctrl+Shift+V (Windows/Linux) |
| Scroll to last activity | Cmd+Alt+L |
| Inject context (CopyTree) | Cmd+Shift+I |
| Context menu | Shift+F10 |
Directional Navigation
| Action | Shortcut |
|---|---|
| Focus terminal above | Cmd+Alt+Up |
| Focus terminal below | Cmd+Alt+Down |
| Focus terminal left | Cmd+Alt+Left |
| Focus terminal right | Cmd+Alt+Right |
| Focus next region | F6 |
| Focus previous region | Shift+F6 |
Agent Shortcuts
| Action | Shortcut |
|---|---|
| Launch Claude | Cmd+Alt+C |
| Launch Gemini | Cmd+Alt+G |
| Launch Codex | Cmd+Alt+X |
| Launch OpenCode | Cmd+Alt+O |
| Launch Cursor | Cmd+Alt+U |
| Open agent palette | Cmd+Shift+A |
| Toggle Help Agent | Cmd+Shift+H |
| Terminal in worktree | Cmd+Alt+N |
| Next waiting agent | Cmd+Alt+/ |
| Next working agent | Cmd+Alt+. |
| Cycle next agent panel | Cmd+Alt+K |
| Cycle previous agent panel | Cmd+Alt+J |
| Bulk Operations | Cmd+Shift+B |
| Send selection to agent | Cmd+Shift+E |
| Next waiting agent (dock) | Cmd+Shift+/ |
Voice Input
| Action | Shortcut |
|---|---|
| Toggle voice dictation (when input bar not focused) | Cmd+Shift+V |
| Paste as plain text (when input bar focused) | Cmd+Shift+V |
This shortcut is context-sensitive. When the hybrid input bar has focus, it pastes clipboard content as plain text. Otherwise, it toggles voice dictation for the focused terminal. See Voice Input for setup and usage.
Worktree Shortcuts
| Action | Shortcut |
|---|---|
| Switch to worktree 1–9 | Cmd+Alt+1 through 9 |
| Next worktree | Cmd+Alt+] |
| Previous worktree | Cmd+Alt+[ |
| Worktrees overview | Cmd+Shift+O |
| Copy worktree tree (CopyTree) | Cmd+Shift+C |
Navigation & Palettes
| Action | Shortcut |
|---|---|
| Quick Switcher | Cmd+P |
| Panel palette | Cmd+N |
| Action palette | Cmd+Shift+P |
| Action palette (double-Shift) | ⇧⇧ |
| Project switcher | Cmd+Alt+P |
| Open project in new window (Project Switcher) | Cmd+Enter |
| Open project in background (Project Switcher) | Alt+Enter |
| Notes palette | Cmd+Shift+N |
| Toggle sidebar / Focus Mode | Cmd+B |
| Toggle portal | Cmd+\ |
| Toggle diagnostics | Cmd+Shift+D |
System
| Action | Shortcut |
|---|---|
| New window | Cmd+Shift+Alt+N |
| Settings | Cmd+, |
| Keyboard shortcuts reference | Cmd+/ |
| Zoom in | Cmd+= |
| Zoom out | Cmd+- |
| Reset zoom | Cmd+0 |
| Layout undo | Cmd+Alt+Z |
| Layout redo | Cmd+Alt+Shift+Z |
| Toggle voice input | Cmd+Shift+V |
Chord Shortcuts
Chord shortcuts are two key combinations pressed in sequence. Press the first combo, release, then press the second within one second. All chord sequences currently use Cmd+K as their first key.
When you press the first key and pause, a floating indicator appears at the bottom of the screen after about 200ms. It shows which second keys are available, grouped by category. If you type the full chord quickly, the indicator never appears, so it won't slow you down. Press Esc to cancel a pending chord.
Terminal Chords
| Action | Chord |
|---|---|
| Close all terminals | Cmd+K, Cmd+W |
| Kill all terminals | Cmd+K, Cmd+K |
| Restart all terminals | Cmd+K, Cmd+R |
Worktree Session Chords
| Action | Chord |
|---|---|
| Minimize all sessions | Cmd+K, Cmd+M |
| Maximize all sessions | Cmd+K, Cmd+X |
| Restart all sessions | Cmd+K, Cmd+T |
| End all sessions | Cmd+K, Cmd+E |
| Close completed sessions | Cmd+K, Cmd+D |
| Trash all sessions | Cmd+K, Cmd+B |
| Reset renderers | Cmd+K, Cmd+N |
Navigation Chords
| Action | Chord |
|---|---|
| Worktree palette | Cmd+K, W |
| Keyboard shortcuts | Cmd+K, Cmd+S |
| Stage all changes | Cmd+K, Cmd+A |
| Commit staged changes | Cmd+K, Cmd+C |
| Push to remote | Cmd+K, Cmd+P |
Portal Shortcuts
These shortcuts are active when the Portal has focus:
| Action | Shortcut |
|---|---|
| Close active tab | Cmd+W |
| Next tab | Ctrl+Tab |
| Previous tab | Ctrl+Shift+Tab |
| New tab | Cmd+T |
Diagnostics
| Action | Shortcut |
|---|---|
| Diagnostics: Logs tab | Ctrl+Shift+L |
| Diagnostics: Events tab | Ctrl+Shift+E |
| Diagnostics: Problems tab | Ctrl+Shift+M |
Customization
Every shortcut can be customized in Settings > Keyboard:
- Search — filter by name or key combination
- Rebind — click a shortcut and press your preferred key combo
- Conflict detection — warns you if your new binding is already in use
- Reset — reset individual shortcuts to defaults, or reset all at once
Your custom bindings are stored as overrides, not replacements. The defaults are always preserved, so you can reset individual shortcuts or everything at once.
Customized shortcuts display their key combo in accent color, making them easy to spot in the list.
Shortcut Profiles
Share your shortcut configuration with teammates or sync it across machines using the Export and Import buttons in the Settings > Keyboard toolbar.
Export saves a .json file containing only your overrides (not every default binding), keeping profiles lightweight. Import merges the file's overrides onto your existing configuration. It does not replace your current bindings.
The profile format looks like this:
{
"schemaVersion": 1,
"exportedAt": "2026-04-04T12:00:00.000Z",
"app": "canopy",
"overrides": {
"terminal.new": ["Cmd+Alt+T"],
"terminal.duplicate": ["Cmd+T", "Cmd+Shift+D"]
}
} On import, Canopy validates the file size (100 KB max) and schema version. Any action IDs that don't exist in the current app version are silently skipped, so profiles are safe to share across different Canopy releases.
Worktree List Navigation
The worktree list supports arrow keys and optional Vim-style navigation:
- Default — arrow keys, Enter/Space, and quick actions shown above
- Vim-style bindings — j/k for worktree list movement
Cmd+T and the Last-Closed Terminal
Cmd+T does more than open a blank terminal. In the panel grid, when panels are open, it duplicates the focused panel. When all panels have been closed, it creates a fresh terminal seeded from the configuration of the last panel you closed.
This means if you close a Claude terminal and press Cmd+T, you get a new Claude terminal in the same working directory, with the same model and launch flags. The snapshot captures:
- Agent type (Claude, Gemini, Codex, OpenCode, or plain terminal)
- Working directory and worktree
- Model ID and agent launch flags
- The original command string (preserved verbatim)
This is different from Cmd+Shift+T, which restores the actual terminal instance from the trash (scrollback history and all). Cmd+T starts a fresh process using the last-closed configuration as a template. See Terminals & Panels for more on panel types and the grid layout.