Skip to content
overterm
Documentation

Keyboard shortcuts

Every default binding, the command id behind it, and what it does.

Every shortcut on this page is a default, and every one of them is rebindable — menu items and the terminal’s own keys alike. Settings ▸ Keyboard Shortcuts (⌘,) lists them with their command ids and writes your changes to keybindings.json; see keybindings.json for the file’s format.

The Command id column is the name you use in that file. The groups below are the groups the app itself uses, in its own order.

Where the Keys column says Ghostty’s own, the command has no key of its own: it takes whatever Ghostty binds the action to, which means your ~/.config/ghostty/config decides. Settings shows the key in force.

Overterm

Keys Command id What it does
⌘, app.settings Opens Settings as a tab. Ghostty’s open_config too.
⌥⌘O app.changelog View Latest Changelog — what the installed build added
⌘H app.hide Hide Overterm
⌥⌘H app.hideOthers Hide Others
⌘Q app.quit Quit Overterm

Tabs

Keys Command id What it does
⌘T tabs.new New tab, in the current tab’s folder
⌥⌘C tabs.newClaude New Claude tab here
⌥⌘X tabs.newCodex New Codex tab here
⇧⌘N tasks.new New Task — a worktree, a branch and an agent
⌘W tabs.close Closes the pane when the tab is split, else the tab
⇧⌘] tabs.next Show next tab
⇧⌘[ tabs.previous Show previous tab
⌃⌘I tabs.info Tab Info — processes, ports, branch, Claude session, disk
⌘I inbox.show Agent Inbox
⌥⌘↓ tabs.nextAttention Next failure or tab that needs you
⇧⌘E tabs.peek Tab Peek — every tab’s terminal, live
⇧⌘A agents.overview Agent Overview — every tab as a card, by state

Groups

Keys Command id What it does
⌃⌘N groups.new Group the selected tabs
⌃⌘G groups.switcher Group switcher
⌃⌘F groups.focus Focus on this group
⌃⌘S groups.stash Stash the group (its tabs keep running)
⌃⌘B groups.broadcast Broadcast input to the group…
⌃⌘1 groups.goto1 Go to group 1
⌃⌘2 groups.goto2 Go to group 2
⌃⌘3 groups.goto3 Go to group 3
⌃⌘4 groups.goto4 Go to group 4
⌃⌘5 groups.goto5 Go to group 5
⌃⌘6 groups.goto6 Go to group 6
⌃⌘7 groups.goto7 Go to group 7
⌃⌘8 groups.goto8 Go to group 8
⌃⌘9 groups.goto9 Go to group 9

The group keys live on ⌃⌘ rather than the ⌃ the designs drew, because ⌃2 and ⌃6 are real control characters a terminal has to pass through.

Panes

Keys Command id What it does
⌘D splits.right Split right
⇧⌘D splits.down Split down
⌘] splits.next Next pane
⌘[ splits.previous Previous pane
⇧⌘↩ splits.zoom Zoom the pane, and back
⌃⌘= splits.equalize Equalize panes
Ghostty’s own splits.left Pane to the left
Ghostty’s own splits.rightPane Pane to the right
Ghostty’s own splits.up Pane above
Ghostty’s own splits.below Pane below

Panels

Keys Command id What it does
⌘K palette.show Command palette
⌘B sidebar.toggle Toggle the sidebar
⌥⌘G overgit.show Overgit — history, branches, worktrees
⌥⌘D changes.toggle Changes
⇧⌘B browser.toggle Browser
⌥⌘U usage.show Usage
⌘F search.terminal Search the terminal and the checkout’s files

Editing

Keys Command id What it does
⌘C edit.copy Copy
⌘V edit.paste Paste
⌘A edit.selectAll Select all
⌘L agents.askSelection Ask an agent about the selection
⌘F edit.find Find in the editor
⌘S file.save Save the file open in the editor

⌘F is deliberately two commands: the editor’s find bar while the editor has the keyboard, and the terminal’s search overlay in the terminal. Settings does not treat that as a clash.

Terminal

Keys Command id What it does
⇧⌘K terminal.clear Clear the screen
Ghostty’s own terminal.fontBigger Bigger text
Ghostty’s own terminal.fontSmaller Smaller text
Ghostty’s own terminal.fontReset Text size back
⌘↑ terminal.promptPrevious Previous prompt
⌘↓ terminal.promptNext Next prompt
⇧⌘C terminal.copyOutput Copy the last command’s output
⌘R terminal.rerun Run the last command again
Ghostty’s own terminal.scrollTop Scroll to the top
Ghostty’s own terminal.scrollBottom Scroll to the bottom

Clearing the screen is ⇧⌘K because ⌘K is the palette; Overterm writes the unbind for Ghostty’s own ⌘K so the key is not silently eaten in the terminal.

Window

Keys Command id What it does
⇧⌘W window.close Close window
⌘M window.minimize Minimize

Editor

These apply only while the editor has the keyboard, as a scope of their own, and they are never menu key equivalents. That is what lets ⌘D add the next match in the editor and still split a pane in the terminal. They are Zed’s defaults, which are VS Code’s.

Keys Command id What it does
⌃G editor.goToLine Go to line…
⇧⌘O editor.goToSymbol Go to symbol in file…
F12 editor.goToDefinition Go to definition
⇧F12 editor.findReferences Find all references
⌃- editor.goBack Go back
⌃⇧- editor.goForward Go forward
F8 editor.nextProblem Next problem
⇧F8 editor.previousProblem Previous problem
⌥F1 editor.showHover Show hover
⌃Space editor.complete Show completions
⌥⇧F editor.format Format document
⌘/ editor.toggleComment Toggle line comment
⌥↑ editor.moveLineUp Move line up
⌥↓ editor.moveLineDown Move line down
⌥⇧↑ editor.duplicateLineUp Duplicate line up
⌥⇧↓ editor.duplicateLineDown Duplicate line down
⇧⌘K editor.deleteLine Delete line
⌘↩ editor.insertLineBelow Insert line below
⇧⌘↩ editor.insertLineAbove Insert line above
⌘D editor.selectNext Add next match to selection
⇧⌘L editor.selectAll Select all matches
⌃J editor.joinLines Join lines
⌘] editor.indent Indent
⌘[ editor.outdent Outdent
⌥Z editor.toggleSoftWrap Toggle soft wrap
⇧⎋ editor.toggleZoom Zoom the editor, and back
⇧⌘V editor.markdownPreview Toggle Markdown preview
⌘W editor.closeFile Close the file
⌥⌘→ editor.nextFile Next file
⌥⌘← editor.previousFile Previous file

Not a shortcut, but worth knowing

  • ⌘-click on a printed path:line opens that file in the editor at that line. See Search.
  • Three fingers down the trackpad opens Tab Peek, in stages. Settings ▸ General changes the finger count or switches it off.
  • ⌥ while dropping files on a terminal forces plain shell-quoted paths, even where Claude Code is running. See Snippets and drag and drop.
  • J / K move the highlight in the Agent Inbox once you have clicked into it.
  • Some menu items deliberately have no key: Clean Up Merged Worktrees…, Pin / Unpin Tab, Pull Request, Search Terminal & Files…, Check for Updates… and About Overterm. Bind them yourself if you want — they are commands like any other, except the two that are not (Pull Request and Check for Updates… have no command id).

Ghostty’s own bindings still reach Overterm where the action maps onto something Overterm has: ⇧⌘P opens the palette (Ghostty’s toggle_command_palette), ⌥⌘W closes the tab, and ⌥⇧⌘W closes the window. Ghostty’s split and tab keys drive Overterm’s own splits and tabs.

Shortcuts that are not wired up

These appear in the designs, in older internal documents, or in other terminals, and they do nothing in Overterm. Listed so you are not left hunting.

What you may have seen What is actually bound
⌘P for the palette The palette is ⌘K. ⇧⌘P also works, via Ghostty.
⌘I for Tab Info ⌘I is the Agent Inbox; Tab Info is ⌃⌘I.
⇧⌘G / ⌥⌘I for groups Ghostty v1.3.1 binds both and eats them before the menu, so the group commands live on ⌃⌘.
⌃1…⌃9 for groups ⌃⌘1…⌃⌘9.
⇧⌘↓ for Tab Peek Tab Peek is ⇧⌘E. ⇧⌘↓ would never arrive — Ghostty’s jump_to_prompt takes it first.
⌘N for a new window Nothing. Overterm is one process and one window.
⌘E for a search selection Ghostty’s own search_selection; Overterm adds nothing to it.

There is also no overterm command-line tool, no URL scheme and no plugin system, so nothing is bound to them either.