Feature Request: Set terminal title from within Claude Code session

Resolved 💬 2 comments Opened Dec 30, 2025 by JohnAposto83 Closed Dec 30, 2025

Problem Statement

When running multiple Claude Code sessions simultaneously in VS Code/Cursor, all terminal tabs have generic names like "claude - infrastructure". Users must manually rename each tab to identify which session is which.

This is particularly painful when using agent frameworks (like BMAD) where multiple specialized agents run in parallel - there's no way to tell at a glance which terminal contains which agent.

Current Behavior

  • All Claude Code terminals show as claude - <directory>
  • The CLAUDE_CODE_DISABLE_TERMINAL_TITLE=1 env var only prevents Claude from setting titles, doesn't allow user control
  • Bash escape sequences (printf '\033]0;Title\007') don't work because:
  • Claude Code's bash subprocess has no TTY access
  • Escape sequences are captured as text output, never reaching the terminal
  • /dev/tty is not available
  • Hooks also run in isolated subprocesses with the same limitation
  • /rename command renames the session (for --resume), not the terminal tab

Requested Feature

A mechanism to set the terminal tab title from within Claude Code, such as:

Option A: Slash command

/title "🏗️ HA Architect - skrig1"

Option B: Programmatic API (for agent frameworks)

// In custom commands or skills
claude.setTerminalTitle("🌐 Atlas - Infrastructure")

Option C: Automatic from skill/agent name
When loading a skill via the Skill tool, automatically set terminal title to skill name.

Use Cases

  1. Multi-agent workflows: Running PM, Architect, and Dev agents simultaneously
  2. Multi-project work: Working on different codebases in parallel sessions
  3. Infrastructure management: Sessions for different servers/environments
  4. Teaching/demos: Clear identification for screen recordings

Environment

  • Claude Code version: 1.0.52+
  • Terminal: VS Code / Cursor integrated terminal
  • OS: Linux (Ubuntu 24.04)

Workaround Attempted

Full investigation documented: escape sequences, /dev/tty writes, hooks - all fail due to subprocess architecture.

Current workaround is manual right-click → Rename, which breaks workflow.

View original on GitHub ↗

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