Command Palette

A searchable popup that lists every action you can run and lets you pick one with the keyboard.

The command palette is a popup that lets you discover and run any action without having to remember a keybinding. Open it, type to filter, and press enter to execute. If you've used the command palette in VS Code or the action search in JetBrains, this is the same idea.

It's especially useful for actions that don't have a default keybinding, or that you don't run often enough to remember the exact key chord.

Opening the Palette

Bind the toggle_command_palette action to a key:

keybind = ctrl+shift+p=toggle_command_palette

There is no default keybinding on every platform, so you may want to pick one that matches your other tools. ctrl+shift+p is conventional.

What Goes Into the Palette

By default the palette is preloaded with a curated set of Wintty actions that are useful in an interactive setting but typically don't have a quick keyboard shortcut, such as font size resets, scroll-to-prompt helpers, and split focus commands.

You can add your own entries with command-palette-entry. Each entry needs a title and an action, and may include an optional description. Field names and values are separated by colons; fields are separated by commas; quote values that contain commas or special characters.

command-palette-entry = title:Reset Font Style, action:csi:0m
command-palette-entry = title:Focus Split Right, description:"Focus the split to the right.", action:goto_split:right
command-palette-entry = title:Ghost, description:"Add a little Ghostty.", action:"text:\xf0\x9f\x91\xbb"

The action grammar is identical to the one used in keybinds, so anything you can do with a keybind you can also wire up as a palette entry. See the Keybind Action Reference for the full catalog.

To clear the default entries entirely and start fresh:

command-palette-entry =

You can then add your own entries after that line, and only those entries will appear in the palette.

Using the Palette

Once the palette is open:

  • Type to filter by title or description (fuzzy match).
  • Use the up/down arrows to move the highlighted entry.
  • Press enter to run the highlighted action.
  • Press escape to dismiss without running anything.

The palette closes itself after running an action.

Platform Availability

The command palette is implemented on all three platforms, but each one has its own UI hookup:

  • Windows: the palette is implemented as a WinUI 3 control (CommandPaletteControl.xaml). All entries from the command-palette-entry config are honored.
  • Linux: the palette uses a libadwaita popup.

Note

On Linux the command palette requires libadwaita 1.5 or newer. You can check the running version with wintty version. Older libadwaita versions are still supported by Wintty for general use, but the command palette action will be a no-op.

Configuration

OptionPurpose
command-palette-entryAdd (or clear) entries that appear in the palette

Keybindings

ActionPurpose
toggle_command_paletteOpen or close the command palette