Keyboard Shortcuts

The command palette, Zen Mode, rebindable shortcuts, and per-shortcut terminal passthrough.

Cordy is keyboard-first. This page lists the default shortcuts, explains how to rebind them, and covers the one thing that makes shortcuts in a terminal app tricky: deciding whether a key press drives Cordy or falls through to the shell.

Throughout, Cmd/Ctrl means the primary modifier — Cmd (⌘) on macOS, Ctrl on Windows and Linux.

Command palette

Press Cmd/Ctrl+K to open the command palette from anywhere — it opens even while a terminal has focus. The palette is grouped, and can:

  • Workspace — rename, create, or close a workspace;
  • Project Tools — show Git changes, or show files;
  • Agent — launch any available preset ("Launch <agent>"); and
  • External — open the current code target in your editor, or in an external terminal.

Zen Mode

Press Cmd/Ctrl+Shift+Z to toggle Zen Mode, which collapses the app chrome and spotlights the active workspace's agent terminal. In Zen Mode:

  • the top bar, the left navigation sidebar, and the right Project Tools panel are all hidden;
  • keyboard focus is moved into the agent's terminal so your keystrokes reach it immediately; and
  • a small Exit Zen pill appears in the bottom-right corner, showing the shortcut, so you always have a way out.

Escape is deliberately not bound to exit Zen Mode — the agent CLIs own Escape for their own use. Toggle Zen with the shortcut (or the focus button in the top bar) instead.

Customizing shortcuts

Every shortcut is rebindable in Settings → Shortcuts (the default page of the Settings dialog). Shortcuts are organized into three groups — Global, Workspace, and Editor — each shown in a table with the action, its current binding, an In terminal toggle, and an edit control.

To rebind:

  1. Click a shortcut's binding to start recording ("Press shortcut").
  2. Press the new combination. Escape cancels; Backspace or Delete clears the binding.
  3. Most shortcuts require at least one modifier — a bare key is rejected (except the two Vim-style navigation keys). If your combination is already used by another shortcut, Cordy tells you which one.

Each row can be reset to its default, and a Reset all button restores every binding and terminal setting at once. Your customizations are stored locally on your machine and are specific to this app; they are not synced anywhere.

Shortcuts in the terminal

Cordy embeds real terminals, and shells and TUIs use their own control-key combinations (for example Ctrl+C, Ctrl+D, Ctrl+K). So when a terminal has focus, Cordy must decide, per keystroke, whether to run its own shortcut or let the raw key through to the shell.

The default: Cordy-first

By default, a configured, modifier-bearing Cordy shortcut wins even while a terminal is focused; any key that does not match a Cordy shortcut falls through to the shell or TUI. This keeps Cordy keyboard-drivable while you're working in an agent. Clipboard keys (paste, and copy-with-selection) always fall through so normal terminal copy/paste keeps working.

Two categories never take a key away from the shell:

  • The save shortcuts (Cmd/Ctrl+S) default to off in the terminal, so the shell keeps Ctrl+S.
  • The Vim-style navigation keys (J / K, which have no modifier) always stay with the shell when a terminal is focused.

Turning passthrough off per shortcut

Each shortcut has an In terminal switch in Settings → Shortcuts. Turn it off for a shortcut, and while a terminal is focused that key is handed to the shell instead of triggering Cordy. This is how you reclaim, say, Ctrl+D for shell EOF if you'd rather not use it to duplicate a workspace.

Terminal control-key conflicts

On Windows and Linux, Cordy's primary modifier is Ctrl — the same modifier shells use — so some Cordy defaults shadow a shell binding when a terminal is focused. Settings flags these with a warning. Common shell/readline keys to be aware of:

KeyWhat the shell normally does
Ctrl+CInterrupt (SIGINT) — or copy, when there's a selection
Ctrl+DEnd of input (EOF)
Ctrl+KKill to end of line
Ctrl+A / Ctrl+EMove to start / end of line
Ctrl+U / Ctrl+WDelete to start of line / delete previous word
Ctrl+RReverse history search
Ctrl+LClear screen
Ctrl+ZSuspend (SIGTSTP)

On macOS there is no conflict: Cordy uses Cmd while the shell uses Ctrl, so both coexist. If a specific Cordy default gets in your way in a terminal, turn off its In terminal switch or rebind it. Ctrl+C has special copy-vs-interrupt behavior covered in Troubleshooting.

Default shortcuts

Cmd/Ctrl is the primary modifier (Cmd on macOS, Ctrl on Windows/Linux).

Global

ActionShortcut
Open command paletteCmd/Ctrl+K

Workspace navigation

ActionShortcut
Next workspaceCmd/Ctrl+↓ (also Alt+↓)
Previous workspaceCmd/Ctrl+↑ (also Alt+↑)
Next workspace (page)Alt+PageDown
Previous workspace (page)Alt+PageUp
First workspaceAlt+Home
Last workspaceAlt+End
Jump to workspace 1–9Cmd/Ctrl+1Cmd/Ctrl+9
Jump to workspace 10Cmd/Ctrl+0
Next workspace (Vim)J
Previous workspace (Vim)K

Workspace actions

ActionShortcut
New workspaceCmd/Ctrl+Shift+↓
Duplicate workspaceCmd/Ctrl+D
Close workspaceCmd/Ctrl+Shift+W
Launch agent pickerCmd/Ctrl+Shift+A
Toggle Zen ModeCmd/Ctrl+Shift+Z
Focus terminal / agentCmd/Ctrl+←
Focus notesCmd/Ctrl+→
Increase terminal fontCmd/Ctrl+=
Decrease terminal fontCmd/Ctrl+-

Editor

ActionShortcutIn terminal
Save fileCmd/Ctrl+SOff (shell keeps Ctrl+S)
Save noteCmd/Ctrl+SOff

The J / K navigation keys are bare (no modifier) and only act outside a focused terminal or text input.

No OS-global hotkeys

Cordy registers no operating-system-global hotkeys. Every shortcut here works only while a Cordy window has keyboard focus; nothing fires when Cordy is in the background. Closing to the tray does not leave a global key listener behind — the runtime keeps your work alive without one.

  • Workspaces — the panels these shortcuts navigate.
  • Agents — the agent picker and command palette launch.
  • TroubleshootingCtrl+C copy vs. interrupt in the terminal.