Software Engineer's Blog

Ghostty 1.3: Fixed Tab Titles for Claude Code and Codex

Ghostty 1.3: Fixed Tab Titles for Claude Code and Codex

If you keep a few projects open in tabs and run Claude Code or Codex in each, the tab names keep changing. The shell shows up as zsh, claude becomes claude, and moving into a folder renames the tab to that folder. With just a few tabs open, it’s hard to tell which is which.

Ghostty 1.3.0 (March 9, 2026) lets you fix this. You can now pin a tab’s title so it stops changing.

Two kinds of title: tab and surface

First, the terms. In Ghostty, a single tab can hold more than one terminal view. When you split a tab left/right or top/bottom, each pane is one view, and Ghostty calls a single view a surface. If you haven’t split, the tab just holds one surface.

  • Tab title: the name shown for the tab in the tab bar
  • Surface title: the title of a single view, set by whatever program or shell is running in it

These two used to be tied together. A tab’s name was just the current surface’s title, so whenever a program or shell changed its title, the tab name changed with it — which is why cd, vim, claude, or ssh all shifted it around.

Pinning a tab title

Since 1.3.0 you can set the tab title separately from the view’s title. Run the tab-title command from the command palette, or bind a key to the prompt_tab_title action. (It’s a keybind action, not a config option.)

Once you set a name, it sticks for the whole tab. Name a tab backend-api and it stays backend-api no matter what you run inside it — the program’s own title is ignored.

Bind it in your config to make it quick:

# Pop-up prompt to rename the tab
keybind = ctrl+shift+i=prompt_tab_title

# Set a value directly (1.3.1+)
keybind = ctrl+alt+one=set_tab_title:backend-api
keybind = ctrl+alt+two=set_tab_title:frontend-web

# Clear it (empty value → back to automatic names)
keybind = ctrl+alt+zero=set_tab_title:

Renaming with the mouse

You don’t have to use a keybind — the mouse works too.

  • Ubuntu (Linux): right-click the tab to open its context menu, then choose the rename option. A popup appears where you type the name. (The same item also lives in the headerbar’s hamburger menu.)
  • macOS: double-click the tab to edit the name inline.

Either way, confirm with the name left blank to return to automatic titles.

Wrap-up

When you’re running Claude Code or Codex across several projects, giving each tab a fixed name keeps the workspace readable. Small feature, big everyday payoff.

References