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
| Scope | Action | Shortcut |
|---|---|---|
| Panes and tabs | ||
| Panes and tabs | split_horizontally | Cmd/CtrlShiftD |
| Panes and tabs | split_vertically | Cmd/CtrlShiftE |
| Panes and tabs | close_pane | Cmd/CtrlShiftW |
| Panes and tabs | undo_close_pane | Cmd/CtrlShiftT |
| Panes and tabs | new_tab | Cmd/CtrlAltT |
| Panes and tabs | close_tab | Cmd/CtrlW |
| Panes and tabs | toggle_zoom | Cmd/CtrlShiftZ |
| Panes and tabs | split_equalize | Cmd/CtrlShift= |
| Panes and tabs | swap_pane | Cmd/CtrlShiftS |
| Pane focus | ||
| Pane focus | focus_left | AltLeft |
| Pane focus | focus_right | AltRight |
| Pane focus | focus_up | AltUp |
| Pane focus | focus_down | AltDown |
| Layouts | ||
| Layouts | layout_even_horizontal | Cmd/CtrlAlt1 |
| Layouts | layout_even_vertical | Cmd/CtrlAlt2 |
| Layouts | layout_main_vertical | Cmd/CtrlAlt3 |
| Layouts | layout_tiled | Cmd/CtrlAlt4 |
| Workspaces | ||
| Workspaces | new_workspace | Cmd/CtrlShiftN |
| Workspaces | close_workspace | Cmd/CtrlShiftQ |
| Workspaces | next_workspace | Cmd/CtrlTab |
| Workspaces | jump_next_waiting | Cmd/CtrlShiftJ |
| Workspaces | select_workspace_1 | Cmd/Ctrl1 |
| Workspaces | select_workspace_2 | Cmd/Ctrl2 |
| Workspaces | select_workspace_3 | Cmd/Ctrl3 |
| Workspaces | select_workspace_4 | Cmd/Ctrl4 |
| Workspaces | select_workspace_5 | Cmd/Ctrl5 |
| Workspaces | select_workspace_6 | Cmd/Ctrl6 |
| Workspaces | select_workspace_7 | Cmd/Ctrl7 |
| Workspaces | select_workspace_8 | Cmd/Ctrl8 |
| Workspaces | select_workspace_9 | Cmd/Ctrl9 |
| Workspaces | copy_workspace_path | CtrlShiftAltC |
| Workspaces | reveal_workspace_in_file_manager | CtrlAltR |
| Workspaces | open_workspace_in_zed | CtrlAltZ |
| Workspaces | open_workspace_in_cursor | CtrlAltC |
| Workspaces | open_workspace_in_vscode | CtrlAltV |
| Workspaces | open_workspace_in_windsurf | CtrlAltW |
| App views | ||
| App views | open_agents_view | Cmd/CtrlShiftA |
| App views | open_diff_view | Cmd/CtrlShiftG |
| App views | toggle_files_sidebar | Cmd/CtrlAltF |
| App views | open_composer | Cmd/CtrlShiftSpace |
| App views | toggle_broadcast_member | Cmd/CtrlShiftB |
| App views | open_broadcast_groups | Cmd/CtrlShiftM |
| App views | open_attention_queue | Cmd/CtrlShiftK |
| App views | open_launch_pad | Cmd/CtrlShiftL |
| Terminal pane | ||
| Terminal pane | terminal_copy | CtrlShiftC |
| Terminal pane | terminal_paste | CtrlShiftV |
| Terminal pane | terminal_copy | CmdC(macOS only) |
| Terminal pane | terminal_paste | CmdV(macOS only) |
| Terminal pane | scroll_page_up | ShiftPageUp |
| Terminal pane | scroll_page_down | ShiftPageDown |
| Terminal pane | toggle_copy_mode | CtrlShiftX |
| Terminal pane | toggle_search | CtrlShiftF |
| Terminal pane | font_size_increase | Cmd/Ctrl= |
| Terminal pane | font_size_decrease | Cmd/Ctrl- |
| Terminal pane | font_size_reset | Cmd/Ctrl0 |
| Search overlay | ||
| Search overlay | search_next | Enter |
| Search overlay | search_prev | ShiftEnter |
| Search overlay | dismiss_search | Escape |
| Search overlay | toggle_search_regex | AltR |
| Search overlay | toggle_fleet_search | AltF |
| Markdown pane | ||
| Markdown pane | markdown_scroll_page_up | ShiftPageUp |
| Markdown pane | markdown_scroll_page_down | ShiftPageDown |
| Markdown pane | markdown_find_open | CtrlF |
| Markdown pane | markdown_copy | CtrlShiftC |
| Markdown pane | markdown_find_next | Enter |
| Markdown pane | markdown_find_prev | ShiftEnter |
| Markdown pane | markdown_find_dismiss | Escape |
| Diff view | ||
| Diff view | copy_diff_hunk | CtrlShiftC |
| Diff view | diff_next_hunk | ] |
| Diff view | diff_prev_hunk | [ |
| Diff view | diff_toggle_view | U |
| Diff view | diff_toggle_sync | S |
| Diff view | diff_dismiss | Escape |
| macOS menu bar | ||
| macOS menu bar | quit | CmdQ(macOS only) |
| Actions without a default shortcut | ||
| App views | close_window | Close the active window. |
| Terminal pane | clear_scroll_history | Drop the scrollback buffer in the focused terminal pane. |
| Terminal pane | reset_terminal | Send 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.
{
"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.