Automatically updates terminal window title to reflect the current high-level task. Use at the start of every Claude Code session when the user provides their first prompt, and whenever the user switches to a distinctly new high-level task. Helps developers manage multiple Claude Code terminals by providing clear, at-a-glance identification of what each terminal is working on.
Automatically sets descriptive terminal window titles based on the task Claude is working on. Essential for developers running multiple Claude Code instances who need to quickly identify which terminal is handling which task.
Always trigger this skill:
Trigger on task switches like these:
Do NOT trigger for:
scripts/set_title.sh script with the generated titleGood titles:
Bad titles:
Format pattern:
[Action/Category]: [Specific Focus]
Keep titles concise, actionable, and immediately recognizable.
❌ Too Verbose:
❌ Too Vague:
❌ Including System Information:
❌ Using Complete Sentences:
Execute the title script:
bash scripts/set_title.sh "Your Title Here"
Example workflow:
# User asks: "Help me debug the authentication flow in the API"
bash scripts/set_title.sh "Debug: Auth API Flow"
# User asks: "Create a React component for the user profile page"
bash scripts/set_title.sh "Build: User Profile UI"
# User asks: "Write tests for the payment processing module"
bash scripts/set_title.sh "Test: Payment Module"
The scripts/set_title.sh script uses ANSI escape sequences to set the terminal title. It's compatible with:
The script accepts a single argument (the title string) and exits silently if no title is provided (fail-safe behavior).
Users can optionally customize terminal titles with a prefix by setting the CLAUDE_TITLE_PREFIX environment variable:
export CLAUDE_TITLE_PREFIX="🤖 Claude"
This produces titles like: 🤖 Claude | Build: Dashboard UI
Without the prefix, titles remain in the standard format: Build: Dashboard UI
Note: You don't need to check for this variable or modify your behavior. The script handles this automatically.