爱意满满的作品展示区。
southFlowFire

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

  •  
  •   southFlowFire · 4h 20m ago · 132 views

    我经常同时开几个 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 场景下也会遇到这个问题吗?如果有其他终端状态呈现方式,或者安装兼容问题,欢迎拍砖。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   850 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:39 · PVG 05:39 · LAX 14:39 · JFK 17:39
    ♥ Do have faith in what you're doing.