Visual status indicators for Claude Code in your terminal title bar
A lightweight hook that provide real-time visual feedback for Claude Code sessions directly in your terminal title. Never lose track of your Claude Code's status again!
Use it with https://github.com/jackiotyu/git-worktree-manager to manage your git worktrees in VS Code, and you can have multiple Claude Code sessions running in parallel, each with its own terminal title showing the current status of the session. Thanks @jackioityu for this awesome extension!
This project is not affiliated with Anthropic or Claude Code. It is an independent tool designed to enhance the user experience for developers using Claude Code.
Only tested on macOS, but should work on Linux too. Hope this can insipire someone using Windows and create a PR to make it work there too! I would love to see it! But I don't have a Windows machine to test it on.
Sometimes, the terminal title would show things like "* Initial Greeting" "* (briefing of the current session)", this is normal behavior as Claude Code itself would update the terminal title using osc 0 escape sequence. This script will not override that, so you can still see the current session information in the terminal title. And after the work is complete or need your permission, this status hook will update the terminal title to reflect the current status of Claude Code.
- 🎯 Real-time Status Display: Shows Claude's current state (🟡 Working, 🟢 Ready, 🔴 Waiting for user inputs) in terminal title
- 💻 VS Code Integration: Full compatibility with VS Code's integrated terminal
- ⚡ Quick Status Shortcuts: Use single characters (y, g, r) for rapid status updates
- 🛡️ Robust TTY Handling: Works reliably across different shell environments and process hierarchies
Download the script and put it somewhere under ~/.claude/...
chmod +x set-terminal-title.sh
Modify as much as you like, but ${sequence} is required to make it work in VS Code.
{
"terminal.integrated.tabs.title": "${sequence}"
}{
"hooks": {
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/status-indicator/set-terminal-title.sh r"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/status-indicator/set-terminal-title.sh g"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/status-indicator/set-terminal-title.sh '🟡 Claude'"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/status-indicator/set-terminal-title.sh g"
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/status-indicator/set-terminal-title.sh y"
}
]
}
]
}
}