Skip to main content

Keyboard Shortcuts

Complete shortcut reference for terminal management, navigation, chord sequences, and profile customization.

Updated
Reviewed

Terminal & Panel Management

ActionShortcut
New terminalCmd+Alt+T
Duplicate panelCmd+T
Close focused terminalCmd+W
Reopen last closed terminalCmd+Shift+T
Focus terminal 1–9Cmd+1 through 9
Focus next terminal (includes docked panels)Ctrl+Tab
Focus previous terminal (includes docked panels)Ctrl+Shift+Tab
Next tab in panelCmd+Shift+]
Previous tab in panelCmd+Shift+[
Maximize / restore panel within gridCtrl+Shift+F
Toggle dock stateCmd+Alt+M
Toggle all dock stateCmd+Alt+Shift+M
Focus dockCmd+Alt+D
Move panel leftCmd+Shift+Alt+Left
Move panel rightCmd+Shift+Alt+Right
Move panel upCmd+Shift+Alt+Up
Move panel downCmd+Shift+Alt+Down
Move panel to dockCmd+Shift+Alt+D
Move panel to gridCmd+Shift+Alt+G
Send to agent (panel focused)Cmd+Shift+E
Watch terminalCmd+Shift+W
Stash inputCmd+Shift+S
Restore stashCmd+Shift+X
Find in focused panelCmd+F
Copy terminal selectionCmd+C (macOS) / Right-click > Copy (Windows/Linux)
Paste into terminalCmd+V (macOS) / Ctrl+Shift+V (Windows/Linux)
Scroll to last activityCmd+Alt+L
Inject context (CopyTree)Cmd+Shift+I
Context menuShift+F10
Tip
Cmd+T duplicates the focused panel, copying its agent type, working directory, and launch flags. If no panel is focused, it recreates the last-closed terminal's configuration instead. If there's no recent history, it opens a blank terminal. Use Cmd+Alt+T to always open a fresh blank terminal, or Cmd+Shift+T to reopen the last explicitly closed terminal.

Directional Navigation

ActionShortcut
Focus terminal aboveCmd+Alt+Up
Focus terminal belowCmd+Alt+Down
Focus terminal leftCmd+Alt+Left
Focus terminal rightCmd+Alt+Right
Focus next regionF6
Focus previous regionShift+F6

Agent Shortcuts

ActionShortcut
Launch ClaudeCmd+Alt+C
Launch GeminiCmd+Alt+G
Launch CodexCmd+Alt+X
Launch OpenCodeCmd+Alt+O
Launch CursorCmd+Alt+U
Open agent paletteCmd+Shift+A
Toggle Help AgentCmd+Shift+H
Terminal in worktreeCmd+Alt+N
Next waiting agentCmd+Alt+/
Next working agentCmd+Alt+.
Cycle next agent panelCmd+Alt+K
Cycle previous agent panelCmd+Alt+J
Bulk OperationsCmd+Shift+B
Send selection to agentCmd+Shift+E
Next waiting agent (dock)Cmd+Shift+/

Voice Input

ActionShortcut
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

ActionShortcut
Switch to worktree 1–9Cmd+Alt+1 through 9
Next worktreeCmd+Alt+]
Previous worktreeCmd+Alt+[
Worktrees overviewCmd+Shift+O
Copy worktree tree (CopyTree)Cmd+Shift+C

Navigation & Palettes

ActionShortcut
Quick SwitcherCmd+P
Panel paletteCmd+N
Action paletteCmd+Shift+P
Action palette (double-Shift)
Project switcherCmd+Alt+P
Open project in new window (Project Switcher)Cmd+Enter
Open project in background (Project Switcher)Alt+Enter
Notes paletteCmd+Shift+N
Toggle sidebar / Focus ModeCmd+B
Toggle portalCmd+\
Toggle diagnosticsCmd+Shift+D

System

ActionShortcut
New windowCmd+Shift+Alt+N
SettingsCmd+,
Keyboard shortcuts referenceCmd+/
Zoom inCmd+=
Zoom outCmd+-
Reset zoomCmd+0
Layout undoCmd+Alt+Z
Layout redoCmd+Alt+Shift+Z
Toggle voice inputCmd+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

ActionChord
Close all terminalsCmd+K, Cmd+W
Kill all terminalsCmd+K, Cmd+K
Restart all terminalsCmd+K, Cmd+R

Worktree Session Chords

ActionChord
Minimize all sessionsCmd+K, Cmd+M
Maximize all sessionsCmd+K, Cmd+X
Restart all sessionsCmd+K, Cmd+T
End all sessionsCmd+K, Cmd+E
Close completed sessionsCmd+K, Cmd+D
Trash all sessionsCmd+K, Cmd+B
Reset renderersCmd+K, Cmd+N

Navigation Chords

ActionChord
Worktree paletteCmd+K, W
Keyboard shortcutsCmd+K, Cmd+S
Stage all changesCmd+K, Cmd+A
Commit staged changesCmd+K, Cmd+C
Push to remoteCmd+K, Cmd+P

Portal Shortcuts

These shortcuts are active when the Portal has focus:

ActionShortcut
Close active tabCmd+W
Next tabCtrl+Tab
Previous tabCtrl+Shift+Tab
New tabCmd+T

Diagnostics

ActionShortcut
Diagnostics: Logs tabCtrl+Shift+L
Diagnostics: Events tabCtrl+Shift+E
Diagnostics: Problems tabCtrl+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.

Note
Import merges onto your existing bindings. It won't remove or overwrite shortcuts that aren't in the profile file. To start fresh, use Reset All before importing.

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 bindingsj/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.

Note
The last-closed configuration is session-only. It is not saved to disk, so restarting Canopy clears it. Switching projects also clears it. Only the single most recently closed panel is remembered, with each close overwriting the previous.
Note
On Windows and Linux, substitute Ctrl for Cmd in all shortcuts. The exception is terminal copy and paste, where Ctrl+C sends an interrupt signal. Those rows list both platform variants explicitly.