---
title: Keyboard Shortcuts
description: Complete keyboard shortcut reference for Claudette.
---

Claudette supports keyboard shortcuts for fast navigation and common actions. Hold `⌘` (macOS) or `Ctrl` (Linux) to reveal shortcut badges on UI elements. Tooltips and command-palette shortcut labels use your current **Settings → Keyboard** bindings, so disabled or rebound shortcuts are reflected in the UI.

## Shortcut Reference

### Navigation

| Shortcut | Action |
|----------|--------|
| `⌘/Ctrl + B` | Toggle sidebar |
| `⌘/Ctrl + D` | Toggle diff panel (right sidebar). Terminal panes use terminal-only `D` bindings instead; see [Terminal Panes](#terminal-panes). |
| `` ⌘/Ctrl + ` `` | Toggle terminal panel |
| `⌘/Ctrl + ,` | Open/close settings |
| `⌘⇧W` (macOS) | Close the window (hides to tray on macOS). `⌘W` is reserved for the terminal — see [Terminal Panes](#terminal-panes). |

### Tabs & Navigation

The unified tab strip holds chat sessions, diff tabs, file tabs, and any other workspace tabs in one drag-reorderable row. The bracket shortcuts cycle the strip in order, with wrap-around.

| Shortcut | Action |
|----------|--------|
| `⌘/Ctrl + T` | New tab — chat session by default, or new file when a file is open |
| `⌘/Ctrl + W` | Close the active tab |
| `⌘/Ctrl + Shift + [` | Previous tab in the unified tab strip |
| `⌘/Ctrl + Shift + ]` | Next tab in the unified tab strip |
| `⌘/Ctrl + 1` – `⌘/Ctrl + 9` | Jump to project by index |
| `⌘/Ctrl + Shift + N` | New workspace in the current project |

`⌘/Ctrl + Shift + N` resolves which project to target in this order: the project-scoped view's pinned repo → the active workspace's repo → the first local repo. The new workspace is auto-named, the parent repo group is force-expanded in the sidebar, and the workspace is selected so you land in its chat view.

To switch between workspaces in the same project, click them in the sidebar or use the fuzzy finder (`⌘/Ctrl + K`) — the bracket shortcuts no longer specifically cycle workspaces, since the unified tab strip subsumed that intent.

### Search & Commands

| Shortcut | Action |
|----------|--------|
| `⌘/Ctrl + K` | Toggle fuzzy finder (workspace search) |
| `⌘/Ctrl + P` | Go to file — Quick Open the workspace file picker |
| `⌘/Ctrl + O` | Go to file (alternate). Kept after the Cmd+P swap so existing muscle memory still works; rebindable / disable-able in **Settings → Keyboard**. |
| `⌘/Ctrl + Shift + P` | Toggle command palette |
| `⌘/Ctrl + /` | Show the keyboard-shortcuts reference |
| `⌘/Ctrl + 0` | Toggle focus between the chat input and the active terminal pane |

Cmd/Ctrl+P and Cmd/Ctrl+Shift+P match VS Code's defaults. The bindings can be customised — or fully swapped back to the pre-1.x defaults — in **Settings → Keyboard**.

### File Editor

These fire while a file is open in the editor pane. They mostly mirror Monaco's defaults, surfaced through the File / Edit / View / Go menubar above the editor — see [File Editor](/claudette/features/file-editor/) for the full reference.

| Shortcut | Action |
|----------|--------|
| `⌘/Ctrl + S` | Save the active file |
| `⌘/Ctrl + F` | Find in the current file |
| `⌥⌘F` (macOS) / `Ctrl+H` (Linux/Windows) | Find and replace |
| `⇧⌥F` (macOS) / `Ctrl+Shift+I` (Linux/Windows) | Format the current document |
| `⌃G` (macOS) / `Ctrl+G` (Linux/Windows) | Go to line |
| `⌘⇧O` (macOS) / `Ctrl+Shift+O` (Linux/Windows) | Go to symbol in the current file |
| `⌘/Ctrl + Shift + V` | Toggle the Markdown preview for the active file |
| `⌘/Ctrl + Z` | Undo the last file-tree operation (create / rename / move / delete) |

### Zoom

| Shortcut | Action |
|----------|--------|
| `⌘/Ctrl + =` | Increase UI font size |
| `⌘/Ctrl + -` | Decrease UI font size |
| `⌘/Ctrl + Shift + =` | Increase terminal font size only |
| `⌘/Ctrl + Shift + -` | Decrease terminal font size only |

### Agent

| Shortcut | Action |
|----------|--------|
| `Shift + Tab` | Toggle plan mode |
| `⌘/Ctrl + Enter` | Skip the queue — send the typed message immediately as a mid-turn steer instead of queuing it for after the current turn |
| `Escape` | Dismiss current overlay, or stop running agent |

### Voice Input

| Shortcut | Action |
|----------|--------|
| `⌘⇧M` (macOS) / `Ctrl+Shift+M` (Linux/Windows) | Toggle voice recording |
| `Right ⌥` (macOS only) | Hold to record, release to transcribe |

Both shortcuts are customisable in **Settings → Keyboard → Voice**. The hold-to-talk key is macOS-only by default but can be bound to any key on any platform. See [Voice Input](/claudette/features/voice-input/) for provider setup.

### Terminal Panes

These fire only when a terminal pane has keyboard focus — they shadow the
equivalent global shortcuts where applicable (e.g. `⌘D` toggles the diff
panel when the chat is focused but splits the terminal on macOS when the
terminal is focused; Linux/Windows keep bare `Ctrl+D` for shell EOF and use
`Ctrl+Shift+D` instead).

| Shortcut | Action |
|----------|--------|
| `⌘D` (macOS) / `Ctrl+Shift+D` (Linux) | Split pane side-by-side |
| `⌘⇧D` (macOS) / `Ctrl+Shift+Alt+D` (Linux) | Split pane stacked |
| `⌘W` (macOS) / `Ctrl+Shift+W` (Linux) | Close the focused pane (or the tab when it's the last pane) |
| `⌘⌥←/→/↑/↓` (macOS) / `Ctrl+Alt+arrow` (Linux) | Move focus to the neighboring pane |
| `⌘T` (macOS) / `Ctrl+Shift+T` (Linux) | New terminal tab |
| `⌘⇧[` / `⌘⇧]` | Previous / next terminal tab |
| `⌘/Ctrl + =` / `⌘/Ctrl + -` | Global UI zoom; terminal intercepts the keys so they do not reach the shell |
| `⌘/Ctrl + Shift + =` / `⌘/Ctrl + Shift + -` | Terminal font size only |

## Escape Key Priority

When multiple overlays are open, `Escape` dismisses them in this order:

1. Command Palette (whether opened via `⌘/Ctrl + Shift + P` for command mode or `⌘/Ctrl + P` for Quick Open file mode)
2. Settings
3. Modal dialogs
4. Fuzzy Finder
5. Diff panel
6. Stop running agent

Inside Settings, `Escape` peels off one layer at a time: open dropdowns (font picker, default-terminal picker, native `<select>`), rebind capture, and inline editors (pinned prompts) are dismissed first. Only when no inner overlay is active does `Escape` exit Settings and return to the app — `⌘/Ctrl + ,` and the "Back to app" control remain available as direct exits.

Stopping an agent with `Escape` preserves queued chat messages and pauses automatic queue delivery until you choose what to send next.

## Keyboard Hint Badges

When you hold `⌘` (macOS) or `Ctrl` (Linux) without pressing another key, Claudette shows shortcut badges on relevant UI elements — sidebar toggle, diff panel, terminal, and settings buttons. Release the modifier key to hide them. Hover tooltips show the same current binding when the related shortcut is enabled.
