关于 terminal-title
为 Claude Code 会话设置简洁的终端窗口标题,帮助同时运行多个实例的开发者区分任务。它根据任务生成标题,并通过脚本写入终端。
主要功能
- 01从任务提取标题主题
- 02生成简短且可识别的标题
- 03调用脚本设置终端标题
- 04标题自动添加目录名前缀
- 05支持通过环境变量自定义前缀
- 06提供提示提交钩子替代方案
适用场景
- 01区分并行运行的 Claude Code 会话
- 02切换到不同任务时更新标题
- 03按项目目录标记终端窗口
- 04使用提示提交钩子自动设置标题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bluzername/ claude-code-terminal-title --skill terminal-title安装后在 Claude Code 中输入/terminal-title确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdLICENSEVERSIONhooks/set-title-hook.shscripts/set_title.sh详细介绍
终端标题
概述
根据 Claude 正在处理的任务设置描述性终端窗口标题。对于同时运行多个 Claude Code 实例、需要辨认哪个终端对应哪个任务的开发者来说,这项功能必不可少。
何时使用
始终在以下情况触发此技能:
- 每个新的 Claude Code 会话开始时(收到第一条用户提示词后)
- 切换到截然不同的任务时(例如从“API 集成”切换到“数据库迁移”)
在以下任务切换时触发:
- 从前端工作切换到后端工作
- 从调试转向开发新功能
- 从一个模块或组件转到完全不同的模块或组件
- 开始处理系统的另一个部分(例如从身份验证转向支付)
以下情况不要触发:
- 针对同一任务的后续问题(“能给那个函数加条注释吗?”)
- 对当前工作进行小幅调整(“把它改成蓝色,不要红色”)
- 调试刚刚开发的同一项功能
- 澄清问题(“你说的 X 是什么意思?”)
- 迭代同一组件或模块
- 任务进行中的状态更新或进度检查
工作原理
- 提取任务摘要:从用户提示词中识别高层级任务
- 生成标题:创建简洁且具有描述性的标题(最多 40 个字符)
- 设置标题:使用生成的标题运行
set_title.sh - 无需确认:此操作会在后台静默执行
标题格式指南
好的标题:
- “API 集成:身份验证流程”
- “修复:登录错误”
- “数据库迁移:用户表”
- “构建:仪表盘界面”
- “重构:支付模块”
显示效果(脚本会添加文件夹前缀):
my-project | API Integration: Auth Flowmy-project | Fix: Login Bug
不好的标题:
- 太长:“实现支持 OAuth2.0 的新身份验证系统”
- 太笼统:“工作中”或“编码中”
- 太冗长:“用户想让我帮忙……”
- 包含系统信息:“/Users/john/project: 构建功能”
- 完整句子:“我正在处理仪表盘组件”
格式模板:
[Action/Category]: [Specific Focus]
标题应简洁、明确可执行,并且一眼就能辨认。
实现
从已安装的技能目录运行脚本。此处显示的是个人安装路径;对于项目安装,请使用相对于项目根目录的 .claude/skills/terminal-title/scripts/set_title.sh。
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Your Title Here"
工作流示例:
# 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"
脚本详情
scripts/set_title.sh 会将 OSC 0 转义序列写入控制终端(/dev/tty);如果未连接终端,则回退到标准输出。它还会将标题保存到 ~/.claude/terminal_title,以便 shell 钩子在每次提示词后重新应用该标题。它兼容 macOS Terminal.app、iTerm2、Alacritty、Kitty 以及大多数兼容 xterm 的终端模拟器(包括 tmux 和 screen)。
脚本接受一个参数(标题);如果未提供参数,则静默退出。
自动添加目录前缀
每个标题都会添加当前目录名称作为前缀(通常是仓库名称):
my-project | Build: Dashboard UI
another-repo | Debug: Auth API
可选的自定义前缀
用户可以通过 CLAUDE_TITLE_PREFIX 环境变量添加自定义前缀:
export CLAUDE_TITLE_PREFIX="Claude"
生成的标题示例如 Claude | my-project | Build: Dashboard UI。
**注意:**无需检查这些变量,也无需改变行为。脚本会处理这些内容。
确定性替代方案
此技能目录中的 hooks/set-title-hook.sh 可以配置为 Claude Code 的 UserPromptSubmit 钩子。它会根据每条提示词的第一行设置标题,无需调用此技能。设置片段请参阅项目 README。