Skip to content

Keyboard shortcuts ​

Keys show as the app draws them: P is Command+Shift+P, and KS means Command+K, then Command+S. In keymap.json the same keys are written cmd-shift-p and cmd-k cmd-s (hover a key here to see how). The same list, with what each key is bound to right now, is in Settings > Keymap.

Pomelo runs on macOS today. Windows and Linux are coming soon; their column shows the keys they will use, with ctrl in place of cmd.

Window ​

ActionmacOSWindows / Linux (coming soon)
Command PalettePCtrl+Shift+P
Go to FilePCtrl+P
Find in ProjectFCtrl+Shift+F
Project DiagnosticsMCtrl+Shift+M
Open Settings,Ctrl+,
Open Keymap (Settings > Keymap)KSCtrl+KCtrl+S
Open ProjectOCtrl+O
New ProjectNCtrl+Shift+N
New WorkspaceNCtrl+N
Switch WorkspaceOCtrl+Alt+O
Next ThemeKTCtrl+KCtrl+T
Toggle Left DockBCtrl+B
Toggle Right DockRCtrl+R
Toggle Bottom DockJCtrl+J
FilesECtrl+Shift+E
GitCCtrl+Shift+C
ServicesSCtrl+Shift+S
DatabaseDCtrl+Shift+D
Pull Requests (the Git panel's pull requests)RCtrl+Shift+R
Agent?Ctrl+?
Agent UsageUCtrl+Shift+U
Terminal`Ctrl+`
New TerminalTCtrl+T
Close TabWCtrl+W
Close All TabsWCtrl+Alt+W
Markdown PreviewVCtrl+Shift+V
Markdown Preview to the SideKVCtrl+KV

These have no default key; run them from the command palette or bind them yourself: Open in External Editor, Open Project Config, Set Up Project with AI, Add Repository, Clone Missing Repos into Main, Export Config, Import Config, Open Jira Ticket.

Tabs and splits ​

ActionmacOSWindows / Linux (coming soon)
Split the editor to the right\Ctrl+\
Split the editor in that directionK then an arrowCtrl+K then an arrow
Move focus to the pane in that directionK then Ctrl+K then Ctrl+Left
Swap with the pane in that directionK then Ctrl+K then Shift+Left
Pin or unpin the tabKCtrl+KShift+Return
Zoom the paneEscapeShift+Escape
Previous / next tab / Ctrl+PageUp / Ctrl+PageDown
Previous / next tab[ / ]Ctrl+Shift+[ / Ctrl+Shift+]
Go to tab 1 to 91 to 9Ctrl+1 to Ctrl+9
Go to the last tab0Ctrl+0

In a terminal, cmd-d or ctrl-alt-arrow splits the terminal pane.

ActionmacOSWindows / Linux (coming soon)
Switch to a recent tab (hold ctrl, press again to go further back) / Ctrl+Tab / Ctrl+Shift+Tab
Close the tab picked in the switcherCtrl+Backspace
Close the other tabsTCtrl+Alt+T
Close the tabs to the left / rightKE / KTCtrl+KE / Ctrl+KT
Close the saved tabsKUCtrl+KU

Pinned tabs stay when a set of tabs closes.

Moving around ​

ActionmacOSWindows / Linux (coming soon)
Previous / next workspace in the sidebar / Ctrl+Alt+Up / Ctrl+Alt+Down
Next workspace waiting for youACtrl+Alt+A
Back to the editor (from a panel, terminal or agent)EscapeCtrl+Escape
Next / previous region (editor, panels, terminal, agent)K / KCtrl+KTab / Ctrl+KShift+Tab

A panel's own key (Files, Git, Services, Database in the Window table) moves the keyboard into its list; pressed again, or with Escape, it goes back to the editor. Clicking a list does the same. In any list or context menu, / , Home / End move, picks and Escape closes. Tooltips of buttons that have a key show it.

Panel lists ​

These work only while the list has the keyboard, never in a terminal or an agent, so single letters are safe there.

Files

KeysAction
SpaceOpen
or F2Rename
N / NNew file / folder
X / C / VCut / copy / paste
DDuplicate
C / CCopy path / relative path
or Move to Trash
Delete
RReveal in Finder
/ Collapse / expand
/ Collapse / expand all

Git

KeysAction
Open the diff, commit or pull request
SpaceStage or unstage
Y / YStage / unstage the file
Y / YStage / unstage everything
Discard the file's changes (asks first)
C / CCopy path / relative path
To the commit message and back
/ Fold / unfold
GGFetch
G / GPush / pull
1 / 2 / 3Changes / Remote / History

Services

KeysAction
Open the service's tab
SStart or stop (the whole repo on a repo row)
RRestart
OOpen in the browser
LLogs
/ Fold / unfold

Database

KeysAction
Open the table, console or bucket
/ Fold / unfold
CCopy the connection URL
NNew console

Agents and notices ​

ActionmacOSWindows / Linux (coming soon)
Start a side agent (pick Ask, Review, Second opinion or Fix)KACtrl+KA
Take the agent's session overKOCtrl+KO
Allow / deny the tool call waiting on youKY / KNCtrl+KY / Ctrl+KN
Stop the agentK.Ctrl+K.
Run the notice's action (for example Restart to Update)KCtrl+KReturn
Close the noticeKEscapeCtrl+KEscape

The agent keys act on the front tab of the focused group, then the agent dock's.

Settings window ​

/ open the previous / next page,Home / End the first / last. (or) steps into the page's controls, goes

back, or Space presses the control, and

or Escape returns to the pages. In an open

dropdown, / and pick an item.

Vim mode ​

Turn it on in Settings > Keymap > Vim Mode or with Toggle Vim Mode in the command palette. The editor then starts in Normal mode and the status bar shows the mode.

KeysAction
h j k l, w b e (W B E), 0 ^ $, gg G, f t F T ; ,Motions, with counts
i a I A o OInsert mode; Escape back to Normal
d c y > < + a motion, or doubled for linesDelete, change, yank, indent, outdent
x X s S D C Y r JSmall edits
p PPaste the last delete or yank
u / RUndo / redo
.Repeat the last change
v / VVisual mode by character / line
/ ? n N * #Search with the find bar
D / UScroll a page

In the panel lists, vim mode adds j / k, gg / G and h / l (the Services list keeps l for logs); the Git list also takes x to stage or unstage, X / U for everything and i for the commit message.

Editor ​

KeysAction
SSave
Z / ZUndo / redo
FFind
HFind and replace
G / GNext / previous match
EUse the selection for find
C / W / XToggle case sensitive / whole word / regex
Select all matches of the search
Replace all
DAdd the next occurrence to the selection
LSelect all occurrences
/ Add a cursor above / below
/Toggle comment
[ / ]Outdent / indent
KDelete the line
/ Move the line up / down
/ Duplicate the line up / down
/ Expand / shrink the selection by syntax node
MJump to the matching bracket
JJoin lines
GGo to line
- / _Go back / forward
SpaceShow completions
F12Go to definition
F12 / F12 / F12Go to type definition / implementation / declaration
F8 / F8Next / previous diagnostic
F8 / F8Next / previous changed hunk
OOutline
KZToggle soft wrap

In a diff, cmd-y stages the hunk and moves to the next, cmd-shift-y unstages it, cmd-alt-z restores it, cmd-' toggles the selected hunks and cmd-" expands them all.

Terminal ​

KeysAction
C / VCopy / paste
KClear (when no cmd-k chord follows)
ASelect all
F / GFind / next match
/ Start / end of the line
Delete to the start of the line
/ Scroll a page
Home / EndScroll to the top / bottom

Your own bindings ​

Window actions can be rebound in ~/.config/pomelo/keymap.json. **Settings

Keymap > Open keymap.json** creates the file if it is missing and opens it in the editor; saved changes apply right away. Entries are read after the defaults, so they win, and null unbinds a key:

json
[
  {
    "context": "Workspace",
    "bindings": {
      "cmd-shift-g": "git_panel::ToggleFocus",
      "secondary-shift-t": "workspace::NewTerminal",
      "cmd-alt-1": ["pane::ActivateItem", 0],
      "cmd-r": null
    }
  }
]

secondary is Command on macOS and Control on Windows and Linux, so one file works on every platform. Going to a tab takes its position from 0: ["pane::ActivateItem", 0] is the first tab.

Each action's name (such as git_panel::ToggleFocus) is listed under its label in Settings > Keymap, which also shows any mistakes found in the file, and in the key bindings reference. The contexts read are Workspace and the lists' own ProjectPanel, GitPanel, ServicesPanel, DatabasePanel and TabSwitcher, which apply only while that list has the keyboard; editor and terminal keys, and the split and pane keys in the tables above, are fixed. The menu bar shows the keys currently bound, including yours.