Feature request: option to disable terminal tab title management

Resolved 💬 3 comments Opened Mar 15, 2026 by shtofadhor Closed Mar 19, 2026

Problem

Claude Code actively sets the terminal tab title via OSC escape sequences, overriding any title set by shell hooks (zsh chpwd/precmd) or external scripts. There is no way to disable this behavior.

This is a problem for users who run multiple Claude Code sessions in different project directories simultaneously. All tabs show the same "claude" title, making it impossible to distinguish between projects.

Current behavior

  • Shell-level tab title management (e.g., zsh chpwd hooks that set titles based on CWD) works correctly outside Claude Code
  • Once Claude Code starts, it continuously overwrites the tab title
  • terminalTitleFromRename: false in settings only affects /rename — Claude Code still manages the title through other mechanisms
  • Ghostty's shell-integration-features = no-title is also bypassed since Claude Code sets titles directly, not through shell integration

Attempted workarounds (all failed or caused flickering)

  1. SessionStart hook with OSC sequences → Claude Code overwrites immediately after
  2. UserPromptSubmit hook → causes flickering as both Claude Code and the hook fight over the title
  3. Direct write to /dev/ttysXXX → works for ~1 second, then overridden by Claude Code
  4. Background loop re-setting title → works but causes constant flickering

Proposed solution

Add a setting like terminalTitle with options:

  • true (default, current behavior)
  • false — Claude Code does not touch the terminal title at all
  • Or a terminalTitlePrefix option that prepends a user-defined string (e.g., project emoji) to Claude Code's title

This would allow users to manage tab titles themselves via shell hooks, terminal config, or wrapper scripts.

Use case

Running 5+ Claude Code tabs simultaneously for different projects (e.g., infrastructure, product development, client work). Each directory has a shell hook that sets a project-specific emoji + name as tab title. This works perfectly in regular terminal usage but breaks inside Claude Code.

Environment

  • Terminal: Ghostty 1.2+
  • Shell: zsh with custom chpwd hook for tab titles
  • Claude Code: latest (MAX plan)

View original on GitHub ↗

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