Feature request: option to disable terminal tab title management

Status Closed — duplicate
Maintainer reply None cached
Activity 3 comments · opened Mar 15, 2026 · 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 ↗