给 Claude Code 装一只状态栏桌宠:cc-statistics 新版本更新

最近给 cc-statistics 加了一个新功能------状态栏 Clawd 像素桌宠,能实时感知 Claude Code 的工作状态。写这篇文章分享一下实现思路,以及顺带介绍一下社区里一个很棒的桌面宠物项目。


一、状态栏动画:让 Claude 的工作状态可见

cc-statistics 是一个统计 AI coding 用量的本地工具,支持 Claude Code / Gemini CLI / Codex / Cursor。之前版本的状态栏只显示 Token 用量和费用,这次新增了 Clawd 像素宠物动画,能跟着 Claude Code 的实际状态切换动作。

状态栏左侧的小人就是 Clawd,右边显示当日费用(今天 $180,有点肉疼)。


二、动画状态是怎么来的?

核心机制是 Claude Code Hook 事件驱动。Claude Code 支持在工具调用前后注入 Hook,cc-statistics 通过监听这些事件来判断当前状态:

vbnet 复制代码
PreToolUse  → Claude 正在执行工具调用  → active 动画
PostToolUse → 工具调用完成,等待下一步 → idle 动画
Stop        → 会话结束                 → sleeping 动画

Hook 配置写在 ~/.claude/settings.json 里:

json 复制代码
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "",
      "hooks": [{ "type": "command", "command": "node /path/to/ccstats-hook.js PreToolUse" }]
    }],
    "PostToolUse": [{
      "matcher": "",
      "hooks": [{ "type": "command", "command": "node /path/to/ccstats-hook.js PostToolUse" }]
    }],
    "Stop": [{
      "matcher": "",
      "hooks": [{ "type": "command", "command": "node /path/to/ccstats-hook.js Stop" }]
    }]
  }
}

ccstats-hook.js 是一个轻量脚本,把当前事件写入 ~/.cc-stats/activity-state.json。状态栏 Swift App 每 3 秒轮询这个文件,根据状态切换对应帧动画。整个链路完全本地,零延迟、零网络。

动画状态一共 3 种:

  • active:敲键盘,Claude 正在干活
  • idle:等待输入,左右摇摆
  • sleeping:会话结束,趴下睡觉

三、Clawd on Desk:感谢鹿鹿的开源项目

像素动画素材来自 clawd-on-desk,这是作者鹿鹿开发的一个 Electron 桌面宠物应用,专门为 AI coding agent 设计。

功能很齐全:

  • 12 种动画状态,覆盖 AI coding 全流程
  • 支持多 Agent:Claude Code / Codex / GitHub Copilot
  • 迷你模式:缩成一个小点趴在角落,不打扰
  • 权限审批气泡:Claude 请求高危权限时,桌宠会弹气泡提示
  • 多 Agent 并发感知:同时跑多个 Agent 时,桌宠会切换到"加班"状态

cc-statistics 直接复用了 clawd-on-desk 的动画素材(MIT 协议),通过 Hook 事件驱动状态切换,把桌宠能力嵌入到了 macOS 状态栏。


四、Skill 调用统计

这次版本还新增了 Skill 调用统计 ,专门针对 Claude Code 的 slash command(/commit/review 这类自定义命令)。

实现原理是解析 ~/.claude/projects/ 下的 JSONL 会话文件,找其中 tool_use 类型且 name == "Skill" 的调用记录,统计汇总后展示:

  • 每个 Skill 的调用频次
  • 成功率分布
  • 一天内各时段的使用热力

五、安装

bash 复制代码
# pipx(隔离环境,推荐)
pipx install cc-statistics

# Homebrew(macOS / Linux)
brew install androidZzT/tap/cc-statistics

安装后启动状态栏:

bash 复制代码
cc-stats-app

首次启动会提示配置 Hook,按提示操作即可。


六、总结

这次更新的核心思路是:把 Claude Code 的内部状态外显出来,让人在专注写代码的时候,也能一眼感知 AI 在干什么。

状态栏桌宠是个小功能,但用起来还挺有意思的------看着小人敲键盘,莫名觉得它真的在帮你干活。

项目地址:

欢迎 Star、Issue、PR。

相关推荐
33三 三like17 分钟前
Jx-Mac 本地部署过程总结
macos
Patrick在香港9 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
冬奇Lab10 小时前
一天一个开源项目(第220篇):WeKnora —— 腾讯开源的企业级知识框架,从 RAG 问答到 Wiki 自进化
人工智能·开源·资讯
SL_staff12 小时前
ERP排程总在纸上谈兵?JVS-APS如何用真实产能约束打通计划与执行闭环
java·人工智能·开源
Behavior12 小时前
每天用 Claude Code 的人,常用指令都在这 100 条里
aigc·claude·vibecoding
一次旅行14 小时前
2026‑09‑16 AI产业深度解读|GPT‑5.5即将下线迁移、AI安全路线大辩论、Perplexity自研数据库大幅降本
人工智能·安全·开源
ZStack开发者社区15 小时前
评估 ZSvirt 是否适合替代 VMware:一份从部署到迁移的 PoC 指南
开源·vmware·虚拟化·poc
奈斯先生Vector15 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
JavaEdge.15 小时前
“think“工具:让 Claude 在复杂工具调用场景中停下来思考
claude·ai agent·anthropic·think工具·extended thinking
魔众16 小时前
写歌、翻唱、可编辑乐谱,YuE2-3B 在 AIGCPanel 一键跑通
人工智能·开源