写了一个 Claude Code 实时 token 消耗监控器,按项目聚合 - V2EX
爱意满满的作品展示区。
SIFT2009

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

  •  
  •   SIFT2009 Apr 18 838 views
    This topic created in 35 days ago, the information mentioned may be changed or developed.

    写了一个 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
       Apr 19
    # [更新] 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 。
    About     Help     Advertise     Blog     API     FAQ     Solana     2741 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 56ms UTC 02:03 PVG 10:03 LAX 19:03 JFK 22:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86