做了个小工具:让 iTerm2 tab 跟随 Claude Code / Codex 状态自动变色

查看 17|回复 0
作者:southFlowFire   
我经常同时开几个 Claude Code / Codex CLI 的 iTerm2 标签页,过一会儿就分不清哪个还在跑、哪个在等审批、哪个已经结束了。
所以做了个很小的开源工具:ai-tab-color
它会根据当前 Agent 状态自动修改 iTerm2 tab 的背景色:
  • 🔵 蓝色:working
  • 🔴 红橙色:waiting for approval
  • 🟢 绿色:done ,保持到下次提交 prompt

    安装:
    curl -fsSL https://github.com/misaka1018/ai-tab-color/releases/latest/download/install.sh | bash
    项目地址:
    https://github.com/misaka1018/ai-tab-color
    实现方式比较简单:Claude Code / Codex lifecycle hooks 只负责写状态,每个 CLI 会话启动一个轻量 poller ,默认每 5 秒检查状态,再通过 iTerm2 OSC 序列修改 tab 颜色。
    有几个细节稍微多做了一点:
  • 配置采用合并而不是覆盖,保留原有字段和第三方 hooks
  • 重复安装不会重复注入
  • 修改 JSON 前自动备份,JSON 损坏时直接中止
  • 等待审批后,通过 transcript 的更新时间判断 Agent 是否已经继续工作,避免 tab 一直“卡红”
  • Codex 没有 SessionEnd ,poller 会通过 iTerm2 session 存活检查和硬 TTL 做回收
  • 检测到 cc-switch 时,会把 Claude hooks 同步到各个 provider

    先把限制说清楚:
  • 目前只支持 macOS + iTerm2
  • Codex 需要 stable lifecycle hooks
  • jq 是必需依赖
  • 默认 5 秒轮询,不是实时到毫秒
  • 没有 UI 或 dashboard ,就只是 tab 颜色

    仓库里有隔离临时 HOME 的集成测试,覆盖 Claude/Codex 安装、重复安装、卸载、Codex 不支持 hooks 时的降级,以及坏 JSON 中止等场景。
    想问问大家:你们在多 Agent / 多 tab 场景下也会遇到这个问题吗?如果有其他终端状态呈现方式,或者安装兼容问题,欢迎拍砖。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部