Skip to content

Keybindings

The same list is in the app: press F1, or open the Help pane. A terminal keeps every key for the shell except the window, tab and pane shortcuts below, and on Windows and Linux no global shortcut uses Alt+letter, so in a terminal those always reach the shell.

ActionmacOSWindows / Linux
Command palette⇧⌘P, ⌘PCtrl+Shift+P, Ctrl+P
Settings⌘,Ctrl+,
Keyboard shortcuts⌘/, F1Ctrl+/, F1
Voice input⌃⇧VCtrl+Shift+V
Close dialog or find barEscEsc
ActionmacOSWindows / Linux
New window⇧⌘NCtrl+Shift+N
New tab⌘TCtrl+Shift+T
Close tab⇧⌘WCtrl+Alt+Shift+W, Ctrl+F4
Next tab⌘], ⇧⌘], ⌃TabCtrl+Shift+], Ctrl+Tab
Previous tab⌘[, ⇧⌘[, ⌃⇧TabCtrl+Shift+[, Ctrl+Shift+Tab
Go to tab 1–8⌘1–8Ctrl+1–8
Go to last tab⌘9Ctrl+9
Move tab left⇧⌘PgUpCtrl+Alt+Shift+PgUp
Move tab right⇧⌘PgDnCtrl+Alt+Shift+PgDn
Rename tabF2F2
ActionmacOSWindows / Linux
New pane⌘NCtrl+Shift+`
New agent pane⇧⌘ACtrl+Shift+A
Split right⌘DCtrl+Shift+D
Split below⇧⌘DCtrl+Alt+Shift+D
Split in a direction⌃⇧S then ↑/↓/←/→Ctrl+Shift+S then ↑/↓/←/→
Close pane⌘WCtrl+Shift+W
Maximize pane⌘MCtrl+Shift+M
Focus pane by direction⌃⇧↑/↓/←/→Ctrl+Shift+↑/↓/←/→
Next paneF6F6
Previous pane⇧F6Shift+F6
Focus pane 1–9⌃⇧1–9Ctrl+Shift+1–9
Swap pane with neighbour⌃⌥⇧↑/↓/←/→Ctrl+Alt+Shift+↑/↓/←/→
Resize pane⌃⌥⌘↑/↓/←/→Alt+Shift+↑/↓/←/→
Refocus pane⌘I—
Focus the message box⌘LCtrl+L
Replace pane with launcher⌃⇧KCtrl+Shift+K
Change connection⇧⌘GCtrl+Shift+G
ActionmacOSWindows / Linux
Find in pane⌘FCtrl+F, Ctrl+Shift+F (in a terminal)
Zoom in⌘=, ⇧⌘=Ctrl+=, Ctrl+Shift+=
Zoom out⌘-, ⌘Num-Ctrl+-, Ctrl+Num-
Reset zoom⌘0, ⌘Num0Ctrl+0, Ctrl+Num0
Reset zoom on all panes⇧⌘0Ctrl+Shift+0
ActionmacOSWindows / Linux
Type into all terminals⇧⌘MCtrl+Alt+Shift+M
Clear⌘KCtrl+Shift+L
Copy—Ctrl+Shift+C
Paste—Ctrl+Shift+V
ActionmacOSWindows / Linux
New document tab⌃TCtrl+T
Close document tab⌃WCtrl+W
Reopen closed document⌃⇧TCtrl+Shift+T
Next document⌃Tab, ⌃PgDnCtrl+Tab, Ctrl+PgDn
Previous document⌃⇧Tab, ⌃PgUpCtrl+Shift+Tab, Ctrl+PgUp
Move document right⌃⇧PgDnCtrl+Shift+PgDn
Move document left⌃⇧PgUpCtrl+Shift+PgUp
ActionmacOSWindows / Linux
Save⌘SCtrl+S
Save as (scratch documents)⇧⌘SCtrl+Shift+S
Find and replace⌘FCtrl+F
Toggle markdown preview⇧⌘VCtrl+Shift+V
ActionmacOSWindows / Linux
Back⌥←Alt+←
Forward⌥→Alt+→
Up a folder⌥↑Alt+↑
Open in new tab⌘EnterCtrl+Enter
New tab here⌘TCtrl+T
Close this tab⌘WCtrl+W
Type a path⌘LCtrl+L
Filter⌘FCtrl+F
New folder⇧⌘NCtrl+Shift+N
RenameF2F2
RefreshF5F5
Move to TrashDeleteDelete
Delete permanently⇧DeleteShift+Delete
Select all⌘ACtrl+A
Copy⌘CCtrl+C
Cut⌘XCtrl+X
Paste⌘VCtrl+V
Undo⌘ZCtrl+Z
Mention in agent⌥KAlt+K

Add a keybindings list to your settings file (command palette → Open Settings File). Your entries come before the defaults, so they win, and they apply as soon as you save.

"keybindings": [
{ "key": "ctrl+shift+e", "command": "split:right" },
{ "command": "-tab:new" },
{ "key": "ctrl+Tab", "command": "-tab:next" },
{ "key": "meta+k", "command": "term:clear", "platform": "mac", "when": "terminalFocus" }
]
  • key: modifiers ctrl, shift, alt, meta and mod (⌘ on macOS, Ctrl elsewhere), then a key: a letter, a digit, punctuation, or a name such as Enter, Tab, ArrowLeft, F6, PageUp. Two keys separated by a space make a chord.
  • command: the command to run. Prefix it with - to unbind it: every key, or just the key you give.
  • when (optional): textInputFocus, terminalFocus, docTabsHost, viewType == <pane> or viewType != <pane>, each optionally negated with !, joined with &&.
  • platform (optional): mac or other (Windows and Linux). Both when omitted.

An entry that can’t be used is skipped and the rest still apply.

To open the Connectors or Memory pane from a shortcut, bind app:connectors or app:memory. Bindings to the retired app:knowledge (Memory’s earlier name) and app:identity (the command palette’s former “Identity & Memory” command) are changed to app:memory and app:connectors the first time it starts after updating.

Shift+Enter sends a newline instead of running the line when Settings → Terminal → Shift+Enter → new line is on.

In the message box at the bottom of an Agent pane (frontend/app/view/agent/components/AgentFooter.tsx):

KeyAction
EnterSend
Shift + EnterNew line
EscClear the draft. With an empty box, send any queued messages right away, or, if nothing is queued, interrupt the agent’s running turn.
Cmd + Z (macOS), Ctrl + Z (Windows / Linux)Bring back a draft cleared with Esc
↑ / ↓Step through messages you sent before. On an empty box, ↑ first pulls back the most recently queued message.
Tab or →Accept the suggested next prompt (empty box only)
↑ / ↓, Tab, Enter, EscIn the / command list: move, fill in, run, dismiss

Typing /quit (or /exit) and sending it ends the agent gracefully, showing what it stops, and closes its tab. Other tabs in the same pane keep running. The conversation is kept, so reopening the agent resumes it (frontend/app/view/agent/commands/global/quit.ts).

Ctrl + F, on every platform, opens or closes the search bar for the conversation. In the search bar, Enter goes to the next match, Shift + Enter to the previous one, and Esc closes it.

The Shell drawer at the bottom of an Agent pane is a terminal. There, Ctrl + Shift + V pastes and Ctrl + Shift + C copies the selected text, on every platform, as in a Terminal pane (frontend/app/view/agent/components/shell-drawer-keys.ts, handleShellDrawerKeydown).

A Browser pane’s web page has the keyboard while it has focus. AgentMux still takes its window, tab and pane shortcuts from the page, as listed above: new tab, close pane, split, the command palette, F6 to move to the next pane and so on. Find and zoom stay with the page, and so does any shortcut that only applies outside text fields, since AgentMux can’t tell whether the page has a text field focused (crates/cef/src/client/handlers.rs, app_shortcut_for).

The pane also has these keys of its own (browser_pane_shortcut_for):

ActionmacOSWindows / Linux
Focus the address bar⌘LCtrl+L
Reload⌘RCtrl+R
Back⌥←Alt+←
Forward⌥→Alt+→

In the address bar, Enter opens the address. Text that isn’t an address is searched on Google.

The native macOS menu bar adds the standard system shortcuts: ⌘Q (quit), ⌘H (hide), ⌥⌘H (hide others), and in the Edit menu ⌘Z, ⇧⌘Z, ⌘X, ⌘C, ⌘V and ⌘A. Its other items (New Tab, Zoom In and so on) show no shortcut in the menu, on purpose: a menu shortcut takes the key before the app sees it, which would override the rules above (for example ⌘W in the Files pane closes a folder tab, not the pane). The shortcuts in the tables above apply.

Pane resizing is mouse-driven, with Shift selecting the “surgical” variant of each gesture. The modifier is Shift on every platform, and it can be pressed or released mid-drag: the layout re-bases from wherever it is, with no jumps.

GestureEffect
Drag a pane borderResize the whole row or column. The border under the cursor tracks it exactly. The panes on each side of it grow or shrink in proportion to their size.
Shift + drag a pane borderResize a single border. Only the two panes flanking the dragged border change size; everything else stays put.

Panes have a 128 px minimum size while you drag. When a group resize runs out of room on one side, panes stop at the minimum and the drag caps at whatever space was actually available (frontend/layout/lib/layoutResize.ts, computeGroupResizeSizes).

GestureEffect
Drag a window edgeProportional. All panes scale with the window.
Shift + drag a window edgeOnly the edge pane resizes. The pane(s) touching the dragged edge absorb the entire size change; every other pane keeps its exact size. Shrinking floors the edge pane at 128 px, then spills inward pane by pane.

Shift + window-edge resizing is Windows-only; macOS and Linux always resize proportionally.

On Windows, AgentMux does its own window snapping (crates/cef/src/client/window_snap.rs):

  • Drag to the top to maximize. Drag the title bar until the cursor is at the top edge of the screen (within 12 px). A preview appears; release to maximize. Floating pane windows are excluded.
  • Drag a maximized window to restore it. Dragging the title bar of a maximized window restores it to its normal size, under the cursor.
  • Snap to full height. Drag the window’s top or bottom border to within 12 px of the screen edge and the window fills the screen’s height; its width doesn’t change. Drag back out of the zone to undo it.
  • Cancel a drag. Press Esc while dragging the title bar to put the window back where it started.