What does this skill do, and when should you use it?
This Claude Code skill solves the problem of losing track of which terminal is doing what when running multiple Claude Code instances. On the first prompt of a session and on switches to a clearly new high-level task, it generates a concise title of at most 40 characters and sets the terminal window title via a bash script using ANSI escape sequences. Titles are automatically prefixed with the current directory (project) name, and an optional custom prefix can be added via the CLAUDE_TITLE_PREFIX environment variable. All processing is local with no external calls. Installation is available via an automated script, the Claude Code CLI, or manually, with a dedicated uninstall script.
Analyzes the user's prompt to extract a high-level task summary; generates a max-40-character title in "Category: Focus" format (e.g., "Debug: Auth API Flow"); calls scripts/set_title.sh, which uses ANSI escape sequences to set the terminal title; automatically prepends the current directory name; optionally reads the CLAUDE_TITLE_PREFIX environment variable for a custom prefix; runs silently with no confirmation and exits safely if no title argument is given.
- Developers running multiple Claude Code sessions who need to instantly tell apart terminals handling API integration, database migration, or bug fixes
- macOS Terminal.app or iTerm2 users who want window titles to reflect the current task instead of default shell info
- Engineers frequently switching between frontend/backend, debugging, and new features, who need titles updated on each task switch
- Users managing sessions in multiplexers like tmux or screen, which the script claims compatibility with
How do you install this skill?
- This is a pure static source review; no scripts were executed and all conclusions carry low confidence.
- setup-zsh.sh modifies ~/.zshrc and Terminal.app settings; back up before installing. Its details were not part of the reviewed evidence.
- install-and-test.sh and uninstall.sh were not included in the evidence; review their source before use.
- The 40-character title limit does not specify handling of Chinese titles; CJK users may face unclear truncation behavior.
- Titles briefly propagate across terminals via ~/.claude/terminal_title (~5-minute window); new terminals may briefly show a wrong title when running multiple projects.
- Publisher is unverified in the FollowSkills registry; identity is unknown, which is not itself a risk signal.
- Shell / CLI
- Local filesystem
bashterminal emulator with ANSI escape sequence support
Recommended: clone the repo, then chmod +x install-and-test.sh && ./install-and-test.sh — the script checks prerequisites (unzip, mkdir, chmod, bash), extracts the skill to ~/.claude/skills/, and runs verification tests. Alternative CLI install: claude-code install terminal-title.skill. Manual: mkdir -p ~/.claude/skills, unzip terminal-title.skill there, then chmod +x ~/.claude/skills/terminal-title/scripts/set_title.sh. macOS Terminal.app + zsh users should also run ./setup-zsh.sh to strip the system's default title suffixes (it backs up .zshrc first). Uninstall with ./uninstall.sh.
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/bluzername/claude-code-terminal-title.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/temp_extract/terminal-title" ~/.claude/skills/
rm -rf "$tmp"Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.
How do you use this skill?
Once installed, send your agent any of these to trigger it:
- Help me debug the authentication API
- my-api-project | Debug: Auth API Flow
After installation no manual configuration is needed. Start Claude Code and give it a task — e.g., "Help me debug the authentication API" — and the title becomes "my-api-project | Debug: Auth API Flow". Add a custom prefix by exporting CLAUDE_TITLE_PREFIX="🤖 Claude" in your shell config. If titles show escape codes or unwanted prefixes/suffixes, see the README troubleshooting section and setup-zsh.sh.
What are this skill's strengths and limitations?
- Zero dependencies — plain bash, ~2KB, fully local processing with no external calls
- Automatic project-directory prefix makes multi-terminal, multi-project identification effortless
- Tested and confirmed working on macOS Terminal.app and iTerm2
- One-shot install-and-test script plus a complete uninstall script
- Carefully specified trigger rules: task switches trigger; follow-ups and minor tweaks on the same task do not
- Repo has no GitHub Topics and license is marked unknown in repo metadata (README claims MIT — verify yourself)
- Windows native terminals (Command Prompt, PowerShell) explicitly unsupported due to ANSI limitations
- Alacritty, Kitty, GNOME Terminal, Konsole, and Windows Terminal + WSL are only "should work", not extensively tested
- Plain bash without precmd support won't persist titles across prompts
- Terminals opened within 5 minutes briefly inherit a previous terminal's title (by design, but potentially confusing)
- No evidence of an automated cross-platform test suite — the install-and-test script does not equate to regression coverage
How does this skill compare with similar options?
Side by side with related skills; every score comes from the same FSRS standard.
| Skill | FS score | Stars | Last updated | License |
|---|---|---|---|---|
| Terminal Title this page | 58 · Recommended | ★ 142 | 1mo ago | — |
| cmux-capture: Screenshot and Record cmux Windows | 55 · Use with care | ★ 28k | 11d ago | NOASSERTION |
| cmux Custom Sidebar | 50 · Use with care | ★ 28k | 11d ago | NOASSERTION |
| cmux Core Control | 47 · Use with care | ★ 28k | 11d ago | NOASSERTION |
| cmux Ghostty Submodule Workflow Skill | 54 · Use with care | ★ 28k | 11d ago | NOASSERTION |
How did FollowSkills review this skill?
Script behavior is minimal: sets terminal title via ANSI escapes, atomic write to ~/.claude/terminal_title, input sanitized (control chars stripped, length capped), no network calls, no sensitive data, no privilege escalation. Deducted for: automatic execution without user confirmation (though impact is minor), undisclosed rollback/cleanup for the HOME-directory file write, and unverified publisher identity.
Script logic is self-consistent: silent exit on empty input, re-check after sanitization, atomic write, terminal-type branching. Deducted for: no executed verification (static-review cap), install-and-test.sh referenced but its tests absent from evidence, abnormal-input paths only inferred from code, and no failure-feedback mechanism.
Trigger and non-trigger conditions (new task vs follow-ups/small tweaks) are clearly delineated, with positive/negative title examples and layered compatibility claims. Deducted for: no statement of Chinese-language title behavior or length handling (40-char limit vs CJK), compatibility grounded mainly in macOS.
Docs are well layered: SKILL.md, README, troubleshooting, install/uninstall/versioning all present, MIT declared, version 1.1.0. Deducted for: LICENSE/VERSION/CHANGELOG.md files referenced but not present in evidence, setup-zsh.sh/install-and-test.sh/uninstall.sh modify user shell config with details not shown, maintenance ownership unclear.
Core task path is complete at code level: extract task, generate title, run script, set ANSI title, with directory prefix and optional custom prefix as added value. Deducted for: static review cannot verify real execution, benefit depends on Claude Code honoring SKILL.md trigger rules, known cross-terminal persistence limitations.
Script and docs cross-corroborate (prefix logic, silent exit, format matching README examples), facts and speculation are mostly separated ('should work' clearly flagged). Deducted for: no independent execution evidence, no committed test suite, claims like automatic repo-name detection rest only on basename, no third-party corroboration.
Open a dimension to read why it scored that way
Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.
See the full review method →