Skip to main content
CODEMUXManual

Keyboard Shortcuts

Complete reference of all keyboard shortcuts in Codemux.

All shortcuts use Ctrl on Linux/Windows. Shortcuts are rebindable in Settings → Shortcuts, and the tables below follow the same groups as that page. The exceptions are Reload interface (Ctrl+Alt+R), the browser-pane keys, the Changes and Diff pane keys, and the terminal's Ctrl+click and Shift+Enter, which are fixed.

Press Ctrl+Shift+? for a cheat sheet over whatever you're doing — every binding grouped by area, with a filter box and a Customize… link to Settings → Shortcuts. It shows your current bindings, rebinds included, and Escape (or Ctrl+Shift+? again) closes it. Tooltips on buttons that have a shortcut — sidebar and panel toggles, new tab, split and close pane, Run, and the + launcher — show the bound key, and follow your rebinds too.

General

ShortcutAction
Ctrl+KCommand palette
Ctrl+BToggle sidebar (collapse to an icon rail / expand)
Ctrl+Shift+BToggle the right panel
Ctrl+,Open settings
Ctrl+OOpen an existing folder as a project
Ctrl+Shift+?Show the keyboard-shortcuts cheat sheet over the current view
Ctrl+= / Ctrl+-Increase / decrease the interface size, 1px per press (12–22px). A small pill shows the new size, and says when you've hit the limit
Ctrl+0Reset the interface size to the 16px default
EscapeClose the open overlay — the cheat sheet first, then settings, search, or the command palette, one layer per press
Ctrl+Alt+RReload interface — recovers a blank or frozen window; terminals and agents keep running. Handled by the desktop app itself, so it works even when the UI is frozen. Fixed — it can't be rebound, and no other action can take it

Ctrl+R, Ctrl+Shift+R, and F5 are bound to Block reload actions so a stray press can't reload the app. They only reload the interface once the window has stopped responding. They're listed in Settings → Shortcuts but left out of the cheat sheet.

ShortcutAction
Ctrl+Shift+PFind file by name (via fd/find)
Ctrl+Shift+FSearch in files (via rg/grep)

Workspaces

ShortcutAction
Ctrl+NNew agent (home chat draft, or the New Workspace dialog — same as the sidebar New agent button; Shift+click it for the dialog)
Ctrl+Shift+AOpen the title bar's + launcher (agents, terminal, browser)
Ctrl+Shift+NNew workspace in the current project (quick-create)
Ctrl+]Next workspace
Ctrl+[Previous workspace
Alt+1 – Alt+9Jump to the Nth workspace card in the sidebar inbox (filter-scoped; parked rows — settled and snoozed — excluded, and numbering runs across the Wrapping up divider). With the sidebar collapsed, the numbers follow the icon rail's order instead. Hold the bound modifier to reveal numbered badges — rebind to Ctrl and Ctrl reveals them. A number with no workspace behind it is passed through to the focused app instead of being swallowed.
Ctrl+Shift+JJump to the workspace that has waited longest for you; press again to move through the rest. Works with the sidebar collapsed, where the rail also shows a needs-you chip with a count
Ctrl+Shift+GRun the project's configured dev command
F2Rename the active workspace. A focused terminal keeps F2 for the program running in it (htop, mc, nano)

Tabs

ShortcutAction
Ctrl+TNew terminal tab
Ctrl+WClose active tab. A focused terminal keeps Ctrl+W as delete-word; it closes the tab from anywhere else (sidebar, chat, a panel)
Ctrl+Shift+TReopen the last agent chat you closed, with its transcript, at its old tab position
Ctrl+1 through Ctrl+9Jump to tab by position (tab 1 = leftmost)
Ctrl+PageDown / Ctrl+PageUpNext / previous tab, wrapping at either end

Closing a tab or pane that still has a working agent or a running process asks first — see Closing tabs and panes.

Panes

ShortcutAction
Ctrl+Shift+DSplit active pane right
Ctrl+Shift+ESplit active pane down
Ctrl+Shift+WClose active pane
Alt+Shift+Arrow keysMove focus to the pane on the left, right, above, or below. Landing on a chat pane puts the caret in its composer
Ctrl+Shift+EnterZoom the active pane to fill the tab; press again (or click the Zoomed chip) to bring the split back

Next tab, previous tab, and zoom pane only take the key when there's something to act on — with a single tab or a single pane the key is left for whatever has focus. Cycling through panes in order is a command-palette action (Ctrl+K → "Focus next pane" / "Focus previous pane") with no default binding.

Chat

ShortcutAction
EscapeStop the running agent, from the chat composer. Anything open on top — a popup, the composer strip, a subagent drill-in, the browser peek — takes Escape first
Ctrl+CAlso stops the agent when the composer is empty and nothing is selected. Unbinding Stop the agent turns this off too

Terminal

These work inside terminal panes.

ShortcutAction
Ctrl+Shift+CCopy selected text
Ctrl+Shift+VPaste from clipboard
Ctrl+BackspaceBackward kill word
Ctrl+FFind in the scrollback. Full-screen apps such as vim and less keep the key
Ctrl+clickOpen a link or file path printed in the terminal
Shift+EnterNewline in agent input (when the Kitty keyboard protocol is active, e.g. OpenCode; otherwise equivalent to Enter)

Browser pane

These apply while the page in a browser pane has focus. They're fixed, not rebindable.

ShortcutAction
Ctrl+LFocus and select the address bar
Alt+Left / Alt+RightBack / forward
Ctrl+R or F5Reload the page
Ctrl+Shift+IToggle the element inspector

Changes and Diff panes

These single-key shortcuts work while the list or diff has focus, and are fixed.

  • Changes — ↑ / ↓ move between files, Enter / Space open the diff, S stages or unstages, Delete / Backspace discards (press twice).
  • Diff — j or ] / k or [ for next / previous change, Shift+J / Shift+K for next / previous file, Esc back to Changes (Diff pane only).

Known Conflicts

KeysConflict
Ctrl+WClose tab vs. delete-word vs. close window. A focused terminal gets Ctrl+W as delete-word. Anywhere else, Codemux consumes it whenever the workspace has at least one tab, including the last one, so it does not reach the window manager.