Support customizable terminal window title format

Resolved 💬 5 comments Opened Feb 20, 2026 by sswthrower Closed Mar 22, 2026

Summary

Claude Code automatically sets the terminal window title to an auto-generated conversation topic summary. The statusLine setting already lets users define a custom format string for the status line -- the window title should support the same kind of customization.

Problems with the current approach

  1. Topic summaries lack sufficient context. A summary like "List Formatting Issue" doesn't identify which project, branch, or piece of work a session belongs to -- and multiple sessions could share the same topic. Structural context like working directory, branch name, or PR number is much more useful for telling sessions apart.
  2. Titles are often too general to distinguish one session from another when scanning a taskbar or window switcher.
  3. Titles can get stale. The summary may reflect an earlier topic rather than what the session is currently doing.

The only control available is CLAUDE_CODE_DISABLE_TERMINAL_TITLE=1, which disables it entirely.

Proposed behavior

Add a terminalTitle (or similar) setting that accepts a format string, reusing the same placeholder syntax as statusLine. This would let users define a consistent, useful window title -- e.g., working directory, branch name, model, or any combination. The auto-generated topic summary could also be available as a placeholder, so users who find it useful can include it alongside structural context.

If no custom format is set, the current auto-summarized behavior could remain as the default for backwards compatibility.

Why

When running multiple Claude Code sessions, the window title is one of the primary ways to identify which session is which (especially in taskbars, window switchers, and tab bars). A user-defined format would make this reliable instead of depending on the quality of an auto-generated summary.

The infrastructure for this largely exists already via the statusLine format string system -- this would be applying the same concept to a different output target.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗