Skip to content

Shortcuts and actions

Default Paneflow shortcuts and the action names you can bind under shortcuts in paneflow.json.

This page documents keyboard shortcuts and keybinding actions. It is not the commands[] workspace-template schema. Use the Action strings below under shortcuts in paneflow.json.

Cmd/Ctrl means Cmd on macOS and Ctrl on Linux or Windows.

TL;DR. Cmd/Ctrl+Shift+D and Cmd/Ctrl+Shift+E split panes, Alt+Arrow moves focus, Cmd/Ctrl+1-9 jumps workspaces, Cmd/Ctrl+Shift+A opens Agents, Cmd/Ctrl+Shift+G opens Diff, and Cmd/Ctrl+Shift+J jumps to the next waiting agent.

The scope column matters because several actions reuse the same key chord in different surfaces. For example, Ctrl+Shift+C copies terminal text in a terminal pane, copies Markdown in a Markdown pane, and copies a diff hunk in the diff view.

Action reference

ScopeActionShortcut
Panes and tabs
Panes and tabssplit_horizontallyCmd/CtrlShiftD
Panes and tabssplit_verticallyCmd/CtrlShiftE
Panes and tabsclose_paneCmd/CtrlShiftW
Panes and tabsundo_close_paneCmd/CtrlShiftT
Panes and tabsnew_tabCmd/CtrlAltT
Panes and tabsclose_tabCmd/CtrlW
Panes and tabstoggle_zoomCmd/CtrlShiftZ
Panes and tabssplit_equalizeCmd/CtrlShift=
Panes and tabsswap_paneCmd/CtrlShiftS
Pane focus
Pane focusfocus_leftAltLeft
Pane focusfocus_rightAltRight
Pane focusfocus_upAltUp
Pane focusfocus_downAltDown
Layouts
Layoutslayout_even_horizontalCmd/CtrlAlt1
Layoutslayout_even_verticalCmd/CtrlAlt2
Layoutslayout_main_verticalCmd/CtrlAlt3
Layoutslayout_tiledCmd/CtrlAlt4
Workspaces
Workspacesnew_workspaceCmd/CtrlShiftN
Workspacesclose_workspaceCmd/CtrlShiftQ
Workspacesnext_workspaceCmd/CtrlTab
Workspacesjump_next_waitingCmd/CtrlShiftJ
Workspacesselect_workspace_1Cmd/Ctrl1
Workspacesselect_workspace_2Cmd/Ctrl2
Workspacesselect_workspace_3Cmd/Ctrl3
Workspacesselect_workspace_4Cmd/Ctrl4
Workspacesselect_workspace_5Cmd/Ctrl5
Workspacesselect_workspace_6Cmd/Ctrl6
Workspacesselect_workspace_7Cmd/Ctrl7
Workspacesselect_workspace_8Cmd/Ctrl8
Workspacesselect_workspace_9Cmd/Ctrl9
Workspacescopy_workspace_pathCtrlShiftAltC
Workspacesreveal_workspace_in_file_managerCtrlAltR
Workspacesopen_workspace_in_zedCtrlAltZ
Workspacesopen_workspace_in_cursorCtrlAltC
Workspacesopen_workspace_in_vscodeCtrlAltV
Workspacesopen_workspace_in_windsurfCtrlAltW
App views
App viewsopen_agents_viewCmd/CtrlShiftA
App viewsopen_diff_viewCmd/CtrlShiftG
App viewstoggle_files_sidebarCmd/CtrlAltF
App viewsopen_composerCmd/CtrlShiftSpace
App viewstoggle_broadcast_memberCmd/CtrlShiftB
App viewsopen_broadcast_groupsCmd/CtrlShiftM
App viewsopen_attention_queueCmd/CtrlShiftK
App viewsopen_launch_padCmd/CtrlShiftL
Terminal pane
Terminal paneterminal_copyCtrlShiftC
Terminal paneterminal_pasteCtrlShiftV
Terminal paneterminal_copyCmdC(macOS only)
Terminal paneterminal_pasteCmdV(macOS only)
Terminal panescroll_page_upShiftPageUp
Terminal panescroll_page_downShiftPageDown
Terminal panetoggle_copy_modeCtrlShiftX
Terminal panetoggle_searchCtrlShiftF
Terminal panefont_size_increaseCmd/Ctrl=
Terminal panefont_size_decreaseCmd/Ctrl-
Terminal panefont_size_resetCmd/Ctrl0
Search overlay
Search overlaysearch_nextEnter
Search overlaysearch_prevShiftEnter
Search overlaydismiss_searchEscape
Search overlaytoggle_search_regexAltR
Search overlaytoggle_fleet_searchAltF
Markdown pane
Markdown panemarkdown_scroll_page_upShiftPageUp
Markdown panemarkdown_scroll_page_downShiftPageDown
Markdown panemarkdown_find_openCtrlF
Markdown panemarkdown_copyCtrlShiftC
Markdown panemarkdown_find_nextEnter
Markdown panemarkdown_find_prevShiftEnter
Markdown panemarkdown_find_dismissEscape
Diff view
Diff viewcopy_diff_hunkCtrlShiftC
Diff viewdiff_next_hunk]
Diff viewdiff_prev_hunk[
Diff viewdiff_toggle_viewU
Diff viewdiff_toggle_syncS
Diff viewdiff_dismissEscape
macOS menu bar
macOS menu barquitCmdQ(macOS only)
Actions without a default shortcut
App viewsclose_windowClose the active window.
Terminal paneclear_scroll_historyDrop the scrollback buffer in the focused terminal pane.
Terminal panereset_terminalSend a full reset to the focused terminal pane.

How do I override a binding?

Set the shortcuts object in paneflow.json. Keys are keystrokes; values are action names from the table above.

json
{
  "shortcuts": {
    "ctrl+shift+t": "new_tab",
    "alt+1": "select_workspace_1"
  }
}

The full override syntax, including the secondary modifier and context scoping, lives on the schema page.

Bindings can be overridden in paneflow.json; conflicts resolve in last-write-wins order. Your user entries layer on top of the built-in defaults, so the most recently registered binding for a given keystroke wins. If two user entries map the same keystroke to different actions, the later entry takes effect.