mcpField
T
terminal-title

terminal-title

github.com/bluzernameAgent 工作流143130 次安装4 天前更新
代码仓库

关于 terminal-title

为 Claude Code 会话设置简洁的终端窗口标题,帮助同时运行多个实例的开发者区分任务。它根据任务生成标题,并通过脚本写入终端。

主要功能

  1. 01从任务提取标题主题
  2. 02生成简短且可识别的标题
  3. 03调用脚本设置终端标题
  4. 04标题自动添加目录名前缀
  5. 05支持通过环境变量自定义前缀
  6. 06提供提示提交钩子替代方案

适用场景

  1. 01区分并行运行的 Claude Code 会话
  2. 02切换到不同任务时更新标题
  3. 03按项目目录标记终端窗口
  4. 04使用提示提交钩子自动设置标题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bluzername/claude-code-terminal-title --skill terminal-title

安装后在 Claude Code 中输入/terminal-title确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
LICENSE
VERSION
hooks/
set-title-hook.sh
scripts/
set_title.sh

详细介绍

终端标题

概述

根据 Claude 正在处理的任务设置描述性终端窗口标题。对于同时运行多个 Claude Code 实例、需要辨认哪个终端对应哪个任务的开发者来说,这项功能必不可少。

何时使用

始终在以下情况触发此技能:

  • 每个新的 Claude Code 会话开始时(收到第一条用户提示词后)
  • 切换到截然不同的任务时(例如从“API 集成”切换到“数据库迁移”)

在以下任务切换时触发:

  • 从前端工作切换到后端工作
  • 从调试转向开发新功能
  • 从一个模块或组件转到完全不同的模块或组件
  • 开始处理系统的另一个部分(例如从身份验证转向支付)

以下情况不要触发:

  • 针对同一任务的后续问题(“能给那个函数加条注释吗?”)
  • 对当前工作进行小幅调整(“把它改成蓝色,不要红色”)
  • 调试刚刚开发的同一项功能
  • 澄清问题(“你说的 X 是什么意思?”)
  • 迭代同一组件或模块
  • 任务进行中的状态更新或进度检查

工作原理

  1. 提取任务摘要:从用户提示词中识别高层级任务
  2. 生成标题:创建简洁且具有描述性的标题(最多 40 个字符)
  3. 设置标题:使用生成的标题运行 set_title.sh
  4. 无需确认:此操作会在后台静默执行

标题格式指南

好的标题:

  • “API 集成:身份验证流程”
  • “修复:登录错误”
  • “数据库迁移:用户表”
  • “构建:仪表盘界面”
  • “重构:支付模块”

显示效果(脚本会添加文件夹前缀):

  • my-project | API Integration: Auth Flow
  • my-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。

评论

支持 Markdown