# Keyboard shortcuts

The shortcut table here covers the high-frequency stuff; the full catalogue lives in the codebase + may evolve. Use the Command Palette (`Ctrl/Cmd+K`) when in doubt — it's how you discover everything.

## Conventions

- **Cmd** on macOS = **Ctrl** on Windows / Linux. Listed as `Cmd/Ctrl+X` below.
- **Option** on macOS = **Alt** on Windows / Linux. Listed as `Opt/Alt+X` below.
- Shortcuts work from anywhere unless noted as scoped to a panel.

## Global

| Shortcut | Action |
|---|---|
| `Cmd/Ctrl+K` | Open the Command Palette |
| `Cmd/Ctrl+L` | Open the AI Assistant pane |
| `Cmd/Ctrl+,` | Open Settings |
| `Cmd/Ctrl+Z` | Undo (active document) |
| `Cmd/Ctrl+Shift+Z` | Redo (active document) |
| `Space` | Toggle global transport Play / Stop |
| `Esc` | Dismiss any overlay (Palette / Settings / modals) |

## Transport

| Shortcut | Action |
|---|---|
| `Space` | Play / Stop master transport |

(More transport shortcuts — Loop toggle, Rec toggle — planned.)

## Documents

| Shortcut | Action |
|---|---|
| `Cmd/Ctrl+W` | Close the active document |
| `Cmd/Ctrl+Tab` | Cycle through open documents |
| `Cmd/Ctrl+1` to `9` | Switch to the Nth open document |

## Sequencer (scoped to the Sequencer panel)

| Shortcut | Action |
|---|---|
| `1` to `6` | Switch active track (1..6) |
| `Shift+1` to `6` | Toggle track N visibility |
| `Cmd/Ctrl+1` to `6` | Toggle track N solo |
| `P` | Switch to Paint tool |
| `S` | Switch to Select tool |
| `Up` / `Down` | Move selected notes ±1 semitone (Select tool) |
| `Shift+Up` / `Down` | Move selected notes ±1 octave (Select tool) |
| `Esc` | Clear selection |
| `Cmd/Ctrl+Z` | Sequencer undo |
| `Cmd/Ctrl+Shift+Z` | Sequencer redo |

## Builder (scoped to the Builder canvas)

| Shortcut | Action |
|---|---|
| Right-click pane | Open node picker at cursor |
| Right-click node | Node context menu (Duplicate / Bypass / Disconnect all / Delete) |
| Right-click edge | Edge context menu (Delete) |
| `Delete` / `Backspace` | Delete selected nodes / edges |

## Editor (Faust / `.dsp` / `.lib`)

Standard editor shortcuts (`Cmd/Ctrl+S` to save, etc.) — these are inherited from Monaco underneath.

## Why this table is short

We deliberately keep registered shortcuts to a focused set — discoverability beats memorization for occasional gestures. The Command Palette gets you anywhere in two keystrokes + a search. Reach for shortcuts for the things you do dozens of times per hour; everything else stays in the palette.

> 🔘 **MCP**: shortcuts route through the same registry as everything else — every shortcut binding maps to an `action_id`. To inspect what an action_id does, `palette.describe { action_ids: [<id>] }`.

## Where to go from here

- **FaustWave — AI Assistant** § 2 — the Command Palette in depth.
- **§ 2 (MCP actions)** — the underlying action catalog every shortcut routes through.
