V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SIFT2009

写了一个 Claude Code 实时 token 消耗监控器,按项目聚合

  •  
  •   SIFT2009 · 4 天前 · 584 次点击

    写了一个 Claude Code 实时 token 消耗监控器,按项目聚合,带 TUI

    用 Claude Code 做项目开发的时候,经常开好几个会话切来切去,到了月底看账单才发现某个项目烧了几十刀。Claude 自带的 /cost 只能看当前会话,没有项目维度的聚合,也不能实时看。

    所以写了 cc-monitor 这个小工具,核心就几个功能:

    能做什么

    • 按项目聚合 — 同时监控多个项目的 token 消耗和费用
    • 实时 TUI — 终端界面每 2 秒刷新,最近的操作记录会自动轮播
    • 双数据源 — JSONL 日志(精确)+ PostToolUse Hook (实时时序)
    • 费用估算 — 按模型定价自动算,Sonnet / Opus / Haiku 都支持
    • Compact 检测 — 自动识别上下文压缩,显示节省了多少 token

    安装使用

    git clone https://github.com/SagesAi/claude-cost-monitor.git
    cd claude-cost-monitor
    python -m pip install -e .
    cc-monitor-install    # 一键安装 hook
    cc-monitor &          # 后台启动 monitor
    cc-monitor-tui        # 启动终端 UI
    

    TUI 长这样

    ┌─────────────────────────────────────────────────────────────────┐
    │ cc-monitor  ● hook  ● jsonl  refreshed 14:38:42  total: $7.72   │
    ├───────────────────┬─────────────────────────────────────────────┤
    │ PROJECTS          │  my-startup                                  │
    │                   │  ┌──────────────────────────────────────┐   │
    │ ● my-startup $4.21│  │ 1.24M tokens  $4.21  12 sessions  8× │   │
    │   api-gateway$1.87│  ├──────────────────────────────────────┤   │
    │   data-pipeli$0.94│  │ current session  #a3f2               │   │
    │   infra-scrip$0.52│  │ ┌────────┐ ┌────────┐ ┌──────────┐ │   │
    │   docs-site  $0.18│  │ │ 134k   │ │ $0.43  │ │ 2.1k     │ │   │
    │                   │  │ │input   │ │session │ │cache hit │ │   │
    │                   │  │ │tokens  │ │cost    │ │tokens    │ │   │
    │                   │  │ └────────┘ └────────┘ └──────────┘ │   │
    │                   │  ├──────────────────────────────────────┤   │
    │                   │  │ bash      ████████████  769k  $2.18  │   │
    │                   │  │ file_read ████░░░░░░░░  298k  $0.95  │   │
    │                   │  │ compact   ───────────  -842k  saved  │   │
    │                   │  ├──────────────────────────────────────┤   │
    │                   │  │ 14:38  bash      pytest tests/  +2.3k│   │
    │                   │  │ 14:37  bash      find . -name   +8.9k│   │
    │                   │  │ 14:32  compact   230k → 134k    -96k │   │
    └───────────────────┴─────────────────────────────────────────────┘
    

    技术细节

    • Python 3.10+,依赖只有 rich
    • 采用 src/ 包结构,模块化拆分了 models / pricing / parser / state / server / watcher / tui
    • 零侵入,通过 Claude Code 官方 Hook 采集,不修改 Claude Code 本身
    • MIT 协议

    代码在 GitHub: https://github.com/SagesAi/claude-cost-monitor

    欢迎提 issue 和 PR 。

    SIFT2009
        1
    SIFT2009  
    OP
       3 天前
    # [更新] cc-monitor v0.2.0 — 加了费用 spike 告警和会话结束自动总结

    之前发的 [Claude Code 实时 token 监控器]( https://github.com/SagesAi/claude-cost-monitor) 更新到 **v0.2.0** 了,这次主要补了两个呼声最高的功能。

    ---

    ## 1. 费用 spike 告警

    用户最痛的场景:开了个 Claude Code 会话去做别的事,回来发现烧了十几刀。

    现在 monitor 会追踪每个项目 5 分钟内的 cost 变化,如果突增 ≥ $0.50 ,TUI 顶部会出现红色告警横幅,同时触发 terminal bell:

    ```
    ┌─────────────────────────────────────────────────────────────────┐
    │ cc-monitor ● hook ● jsonl refreshed 14:38:42 total: $7.72 │
    ├─────────────────────────────────────────────────────────────────┤
    │ ⚠ my-startup +$0.82 │
    ├───────────────────┬─────────────────────────────────────────────┤
    │ PROJECTS │ my-startup │
    │ ...
    ```

    阈值目前硬编码在 $0.50/5min ,后续考虑做成可配置。

    ---

    ## 2. 会话结束自动总结

    之前只有实时监控,会话结束后数据就留在内存里,没有事后分析。

    现在检测到某个 session 的 JSONL 5 分钟没有更新(视为结束)时,会自动:

    1. 在终端 stderr 打印一行总结
    2. 追加一条记录到 `~/.claude/cc-monitor-sessions.jsonl`

    效果:

    ```bash
    # 终端里直接看到
    cc-monitor: session ended #a3f2d1e9 2.0k tokens $0.43 (compaction saved 96k tokens)

    # 日志文件可以 jq 分析
    cat ~/.claude/cc-monitor-sessions.jsonl | jq -s 'group_by(.project)[] | {project: .[0].project, sessions: length, total_cost: map(.total_cost) | add}'
    ```

    ---

    ## 升级

    ```bash
    cd claude-cost-monitor
    git pull
    pip install -e .
    ```

    不需要重新装 hook ,`cc-monitor` 和 `cc-monitor-tui` 直接重启就行。

    ---

    ## 其他

    - 代码结构之前也重构过,现在是比较标准的 `src/` package layout ,9 个模块 + 对应测试。
    - 接下来准备做 `--report` 命令( today/this-week 聚合)和按 model 拆分成本,有兴趣可以 track GitHub 。

    代码和 README:[github.com/SagesAi/claude-cost-monitor]( https://github.com/SagesAi/claude-cost-monitor)

    MIT 协议,欢迎 issue / PR 。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 20:34 · PVG 04:34 · LAX 13:34 · JFK 16:34
    ♥ Do have faith in what you're doing.