terminal-title
About
This skill automatically updates terminal window titles to reflect Claude's current task, helping developers identify multiple sessions at a glance. Trigger it at the start of each Claude Code session and whenever switching to a distinctly new high-level task. It's essential for managing parallel development work across different terminals.
Quick Install
Claude Code
Recommendednpx skills add bluzername/claude-code-terminal-title -a claude-code/plugin add https://github.com/bluzername/claude-code-terminal-titlegit clone https://github.com/bluzername/claude-code-terminal-title.git ~/.claude/skills/terminal-titleCopy and paste this command in Claude Code to install this skill
Documentation
Terminal Title
Overview
Sets a descriptive terminal window title based on the task Claude is working on. Essential for developers running multiple Claude Code instances who need to identify which terminal handles which task.
When to Use
Always trigger this skill:
- At the start of every new Claude Code session (after receiving the first user prompt)
- When switching to a substantially different task (for example from "API Integration" to "Database Migration")
Trigger on task switches like these:
- Switching from frontend work to backend work
- Moving from debugging to new feature development
- Changing from one module or component to a completely different one
- Starting work on a different part of the system (for example from auth to payments)
Do NOT trigger for:
- Follow-up questions about the same task ("Can you add a comment to that function?")
- Small refinements to current work ("Make it blue instead of red")
- Debugging the same feature you just built
- Clarifications ("What did you mean by X?")
- Iterating on the same component or module
- Mid-task status updates or progress checks
How It Works
- Extract task summary: identify the high-level task from the user's prompt
- Generate title: create a concise, descriptive title (max 40 characters)
- Set title: run
set_title.shwith the generated title - No confirmation needed: this happens silently in the background
Title Format Guidelines
Good titles:
- "API Integration: Auth Flow"
- "Fix: Login Bug"
- "DB Migration: Users Table"
- "Build: Dashboard UI"
- "Refactor: Payment Module"
Displayed as (the script adds the folder prefix):
my-project | API Integration: Auth Flowmy-project | Fix: Login Bug
Bad titles:
- Too long: "Implementing the new authentication system with OAuth2.0 support"
- Too generic: "Working" or "Coding"
- Too verbose: "The user wants me to help them with..."
- Includes system information: "/Users/john/project: Build feature"
- A full sentence: "I am working on the dashboard component"
Format pattern:
[Action/Category]: [Specific Focus]
Keep titles concise, actionable, and immediately recognizable.
Implementation
Run the script from the installed skill directory. The personal install path is shown; for a project install use .claude/skills/terminal-title/scripts/set_title.sh relative to the project root.
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Your Title Here"
Example workflow:
# User asks: "Help me debug the authentication flow in the API"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Debug: Auth API Flow"
# User asks: "Create a React component for the user profile page"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Build: User Profile UI"
# User asks: "Write tests for the payment processing module"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Test: Payment Module"
Script Details
scripts/set_title.sh writes the OSC 0 escape sequence to the controlling terminal (/dev/tty), falling back to stdout when no terminal is attached. It also stores the title in ~/.claude/terminal_title so shell hooks can re-apply it after each prompt. It is compatible with macOS Terminal.app, iTerm2, Alacritty, Kitty, and most xterm-compatible emulators (including tmux and screen).
The script takes one argument (the title) and exits silently when none is given.
Automatic Directory Prefix
Every title is prefixed with the current directory name (usually the repo name):
my-project | Build: Dashboard UI
another-repo | Debug: Auth API
Optional Custom Prefix
Users can add a custom prefix through the CLAUDE_TITLE_PREFIX environment variable:
export CLAUDE_TITLE_PREFIX="Claude"
This produces titles like Claude | my-project | Build: Dashboard UI.
Note: You do not need to check these variables or change your behaviour. The script handles them.
Deterministic Alternative
hooks/set-title-hook.sh in this skill directory can be wired as a Claude Code UserPromptSubmit hook. It sets the title from the first line of every prompt without relying on this skill being invoked. See the project README for the settings snippet.
GitHub Repository
Frequently asked questions
What is the terminal-title skill?
terminal-title is a Claude Skill by bluzername. Skills package instructions and resources that Claude loads on demand, so Claude can perform terminal-title-related tasks without extra prompting.
How do I install terminal-title?
Use the install commands on this page: add terminal-title to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does terminal-title belong to?
terminal-title is in the Design category.
Is terminal-title free to use?
Yes. terminal-title is listed on AIMCP and free to install.
Related Skills
Use the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
This skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.
This skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.
This skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.
