Keyboard Shortcuts
Shortcut reference for terminals, agents, fleet arming, worktrees, chord sequences, the in-app reference dialog, and Settings > Keyboard customization.
Daintree exposes its keybindings through two surfaces. The Shortcut Reference dialog (Cmd+/, or the chord Cmd+K, Cmd+S) is read-only and built for browsing. The Keyboard tab in Settings (Cmd+,) is where you record new combos, unbind clashes, and import or export profiles. The tables below list the macOS defaults. The footer note covers the Cmd to Ctrl mapping for Windows and Linux.
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 |
| Toggle alternate panel focus | Cmd+Alt+` |
| 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 |
| 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 (also the Menu key on Windows) |
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 Code | Cmd+Alt+C |
| Launch Gemini | Cmd+Alt+G |
| Launch Codex | Cmd+Alt+X |
| Launch terminal in worktree | Cmd+Alt+N |
| Launch browser panel | Cmd+Alt+B |
| Launch OpenCode | Unbound by default |
| Launch Cursor | Unbound by default |
| Launch Kiro | Unbound by default |
| Launch GitHub Copilot | Unbound by default |
| Open agent palette | Cmd+Shift+A |
| Toggle Help Agent | Cmd+Shift+H |
| Next waiting agent (active project) | Cmd+Alt+/ |
| Next waiting agent (all projects) | Cmd+Shift+Alt+/ |
| Next working agent | Cmd+Alt+. |
| Cycle next agent panel | Cmd+Alt+K |
| Cycle previous agent panel | Cmd+Alt+J |
| Send selection to agent | Cmd+Shift+E |
| Next waiting agent (dock) | Cmd+Shift+/ |
The "all projects" jump (Cmd+Shift+Alt+/) walks projects in sidebar order, switches to the first one with a waiting agent, and focuses it. It wraps from the bottom back to the top, so repeated taps step you through every project without leaving the keyboard.
Fleet Arming
Fleet arming selects a set of agent terminals and dispatches an action to all of them at once. See Fleet for the full reference.
| Action | Shortcut |
|---|---|
| Arm every eligible agent in the current worktree | Cmd+Shift+B |
| Focus the Fleet Composer | Cmd+Shift+F |
| Accept waiting agents | Cmd+Y |
| Reject waiting agents | Cmd+N |
| Restart armed agents (always confirms) | Cmd+Shift+R |
| Kill armed terminals (always confirms) | Cmd+Shift+K |
| Trash armed terminals | Cmd+Shift+Backspace |
| Interrupt armed agents (double-tap within 350ms) | Cmd+Esc Esc |
| Disarm the fleet (or clear a pending confirmation) | Esc |
Cmd+N falls through to the command palette when no waiting agents are armed, so it doesn't clash with the palette binding.
Voice Input
| Action | Shortcut |
|---|---|
| Toggle voice dictation (focused agent panel) | Cmd+Shift+V |
This shortcut is context-sensitive inside agent panels. When an agent's hybrid input bar has focus, it pastes clipboard content as plain text. Anywhere else within an agent panel, it toggles voice dictation. 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 |
| Worktree palette (chord) | Cmd+K, W |
| Create new worktree (chord) | Cmd+K, N |
Project Shortcuts
| Action | Shortcut |
|---|---|
| Project switcher | Cmd+Alt+P |
| Cycle to older project (MRU) | Cmd+Alt+= |
| Cycle to newer project (MRU) | Cmd+Shift+Alt+= |
| Open project in new window (from Project Switcher) | Cmd+Enter |
| Open project in background (from Project Switcher) | Alt+Enter |
The MRU cycle walks your most-recently-used project stack, not sidebar order. Tap Cmd+Alt+= to step backward through recent projects, the equivalent of Alt-Tab for projects. Add Shift to step forward.
Navigation & Palettes
| Action | Shortcut |
|---|---|
| Quick Switcher | Cmd+P |
| Panel palette | Cmd+N |
| Action palette | Cmd+Shift+P |
| Action palette (double-Shift) | ⇧⇧ |
| Repeat last action | Cmd+Shift+. |
| Toggle sidebar | Cmd+B |
| Toggle Focus Mode (chord) | Cmd+K, Z |
| Toggle portal | Cmd+\ |
| Toggle diagnostics | Cmd+Shift+D |
| Toggle Daintree Assistant | Cmd+L |
Repeat last action re-runs whatever you last triggered through a palette or shortcut, against the same target, without reopening the palette. Useful when you're firing the same action at the same item more than once.
Focus Mode hides the sidebar and the Daintree Assistant in one keystroke, so the panel grid takes the whole window. Press the chord again to bring them back.
Portal Shortcuts
These shortcuts are active only 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: Problems tab | Ctrl+Shift+M |
System
| Action | Shortcut |
|---|---|
| New window | Cmd+Shift+Alt+N |
| Settings | Cmd+, |
| Keyboard shortcuts reference | Cmd+/ (also Cmd+K, Cmd+S) |
| Theme palette (chord) | Cmd+K, T |
| Zoom in | Cmd+= |
| Zoom out | Cmd+- |
| Reset zoom | Cmd+0 |
| Layout undo | Cmd+Alt+Z |
| Layout redo | Cmd+Alt+Shift+Z |
| Close modal dialog | Esc |
Chord Shortcuts
Chord shortcuts are two key combinations pressed in sequence. Press the first combo, release, then press the second within one second. Every chord sequence currently uses Cmd+K as its 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 the available second keys, grouped by category. Type the full chord quickly and the indicator never appears, so it stays out of your way. Press Esc to cancel a pending chord.
Terminal Chords
| Action | Chord |
|---|---|
| Close all terminals | Cmd+K, Cmd+W |
| End all terminals | Cmd+K, Cmd+K |
| Restart all terminals | Cmd+K, Cmd+R |
Worktree Session Chords
| Action | Chord |
|---|---|
| Dock all sessions in active worktree | Cmd+K, Cmd+M |
| Maximize all sessions in active worktree | Cmd+K, Cmd+X |
| Reset renderers for all sessions | Cmd+K, Cmd+N |
Navigation Chords
| Action | Chord |
|---|---|
| Worktree palette | Cmd+K, W |
| Create new worktree | Cmd+K, N |
| Theme palette | Cmd+K, T |
| Keyboard shortcuts reference | Cmd+K, Cmd+S |
| Toggle Focus Mode | Cmd+K, Z |
Git Chords
| Action | Chord |
|---|---|
| Stage all changes | Cmd+K, Cmd+A |
| Commit staged changes | Cmd+K, Cmd+C |
| Push to remote | Cmd+K, Cmd+P |
Shortcut Reference Dialog
Open the dialog with Cmd+/ or the chord Cmd+K, Cmd+S. Both entry points hit the same action. The dialog is read-only. To rebind anything, switch to Customizing Shortcuts below.
Results are grouped by category: Terminal, Agents, Worktrees, Panels, Navigation, Help, System, then anything else.
The search box does two things at once:
- Fuzzy text search across action descriptions, keywords, action IDs, and categories. Type
termand you get every Terminal action; typecommitand you find the git commit chord; typeunboundand you get every action with no default combo, which is handy when you're hunting for a free slot for a custom shortcut. - Chord-prefix matching when the query looks like a chord. Type
Cmd+Kand the list filters to every action whose combo starts with Cmd+K, so you can browse the second-key options without memorizing the chord indicator.
Each row shows the action's description, a scope label when it isn't global, and the current combo as a chip. Bindings update in the dialog live as you rebind in Settings. No reopen needed.
Customizing Shortcuts
Settings > Keyboard is where shortcuts get rebound, unbound, and reset. Open Settings with Cmd+, and switch to the Keyboard tab.
The top of the panel has a search input, Import and Export buttons, and a Reset All button. Bindings are grouped by category, the same way the reference dialog groups them. Each row shows the description and the current combo as a pill.
- Record a new combo: click a pill and press your combo. If the first keystroke is a chord-eligible prefix, the recorder waits up to one second for a second keystroke before saving.
- Clear (unbind): clears the recorded combo without saving a new one. Use this when you want to leave a shortcut blank.
- Reset to default: appears on hover for any binding you've customized and snaps that single row back to the shipped default.
- Override color: customized bindings render with the accent pill, so they stand out from defaults at a glance.
- Reset All: opens a confirmation dialog and clears every override at once. The shipped defaults come back immediately.
Conflict resolution. If your new combo matches a binding that already exists, the recorder shows the conflicting action with an inline Unbind button. Click it and the other binding is removed, with a five-second toast carrying an Undo action. If the new combo overlaps a chord prefix (say you try to bind Cmd+K on its own while chord sequences start with Cmd+K), the recorder warns that the binding shadows or is shadowed by another, and leaves the resolution to you.
Shortcut Profiles
The Export and Import buttons in the Settings > Keyboard toolbar let you share a shortcut configuration with teammates or sync it across machines.
Export saves a .json file containing only your overrides, not every default binding, so profiles stay small. Import merges the file's overrides onto your existing configuration. It doesn't replace your current bindings.
The profile format looks like this:
{
"schemaVersion": 1,
"exportedAt": "2026-04-04T12:00:00.000Z",
"app": "daintree",
"overrides": {
"terminal.new": ["Cmd+Alt+T"],
"terminal.duplicate": ["Cmd+T", "Cmd+Shift+D"]
}
} On import, Daintree validates the file size (100 KB max) and schema version. Any action IDs that don't exist in the current app version are skipped silently, so profiles are safe to share across different Daintree releases.
Windows-Specific Bindings
Most shortcuts work the same across platforms once Cmd maps to Ctrl. A few defaults exist only on Windows, to match what local users already expect.
| Action | Shortcut |
|---|---|
| Close focused terminal (additional default) | Ctrl+F4 |
| Close active portal tab (additional default) | Ctrl+F4 |
| Open focused panel context menu (additional default) | Menu key (ContextMenu) |
AltGraph modifier, so layouts that use AltGr to type €, @, {, or } still produce those characters rather than triggering a Ctrl+Alt+letter binding.Dangerous-Flag Indicator
When an agent is launched with a flag that bypasses its built-in permission prompts, Daintree marks the panel with a small red dot next to the title. The tooltip explains that the agent was launched with dangerous permissions and can modify files without prompting, so you can see at a glance which panels carry that risk.
The indicator appears for any of these launch flags:
--dangerously-skip-permissions(Claude Code)--yolo(Gemini)--dangerously-bypass-approvals-and-sandbox(Codex)--force(Cursor)
The same red dot carries over to a panel's tab button when it's docked, so dangerous agents stay visible from the dock. See AI Agents for how launch flags are configured per agent.
Accessibility
Daintree exposes shortcuts to assistive tech through the W3C aria-keyshortcuts attribute. NVDA, JAWS, and VoiceOver announce the combo alongside the control label, formatted as Meta+Shift+P on macOS and Control+Shift+P on Windows and Linux.
Chord combos are left out of aria-keyshortcuts on purpose. The W3C spec doesn't model sequential keys, so there's no way to express them. Chords stay discoverable through the chord indicator HUD and the Shortcut Reference dialog instead.
Tooltips across the toolbar, panel headers, dock, and stash actions show their shortcuts as styled chord pills. The visible chip is marked aria-hidden, and a single screen-reader span carries the full readable label, so the announcement doesn't repeat.
Worktree List Navigation
The worktree list takes arrow keys, with optional Vim-style navigation on top:
- Default: arrow keys, Enter/Space, and the quick actions shown above
- Vim-style bindings: j/k for moving through the worktree list
Cmd+T and the Last-Closed Terminal
Cmd+T does more than open a blank terminal. In the panel grid, while panels are open, it duplicates the focused panel. Once every panel is closed, it creates a fresh terminal seeded from the configuration of the last panel you closed.
So 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 not the same as Cmd+Shift+T, which restores the actual terminal instance from the trash, scrollback history and all. Cmd+T starts a fresh process and uses the last-closed configuration as a template. See Terminals & Panels for more on panel types and the grid layout.