这个项目能做什么

cc-grass 是一个小型 Node.js 命令行工具,可将本地 Claude Code 的活动转化为 GitHub 风格的贡献图,并渲染为独立的 SVG 文件,单元格颜色为橙色而非绿色。它读取存储在 ~/.claude/projects 下的 JSONL 格式会话记录;若 ~/.codex 目录存在,则还会读取由 OpenAI Codex CLI 产生的 ~/.codex/sessions 会话展开记录。 README 中明确阐述了开发动机:Claude Code 已经在终端的 /usage Stats 中绘制了使用图表,但该视图仅限本地查看。cc-grass 将相同的基础数据重新渲染为文件,用户可以将其提交并嵌入到 GitHub 个人资料 README、作品集页面或任何其他地方。 来自 README 的实现与设计说明: - 零运行时依赖:仅使用 Node 的 fs、path 和 os 模块。无需 ccusage,无需 API 调用。支持 macOS、Linux 和 Windows 上的 Node 18 或更高版本。 - 增量缓存:这意味着重复运行仅重新解析新增或更改的会话文件。可通过 --no-cache 禁用,缓存目录默认为 ~/.cache/cc-grass。 - SVG 镜像 GitHub 布局:10x10 单元格,3px 间隙,圆角,周一/三/五行标签,月份标题以及 Less/More 图例。 - 输出为单个 SVG,或通过 --html 标志生成一个极简 HTML 页面。该项目特意没有提供守护进程、调度器或捆绑的 GitHub Actions 工作流;调度由用户自行决定,README 提供了一个 crontab 示例,用于在文件实际发生变化时重新生成并提交。 选项包括选择指标(提示词 prompts、会话 sessions 或 Token,默认为 tokens)、通过 --since 和 --until 指定日期范围、选择深色或浅色主题、覆盖标题字符串、指定替代的 Claude 和 Codex 数据目录、排除 Codex 数据、排除子代理(subagent)记录以及覆盖缓存位置。 Token 统计:每日 Token 计数汇总了每条记录的输入、输出、缓存创建和缓存读取 Token,即 API 计费的所有项。默认包含子代理文件;排除它们后将与 Claude Code 在 /usage 中显示的数字一致。Codex 会话通过 token_count 事件中的累积 total_token_usage 值使用增量计算,因此重复事件不会被重复计算。HTML 输出还会根据存储的每个价格周期的每百万 Token 公布费率,显示每个模型的预估 API 成本;未知费率的模型将显示不可用价格标记,且 README 注明订阅用户实际上无需支付这些金额。 文档诚实地记录了两个注意事项。首先,单元格悬停提示使用 SVG title 元素;它们在独立 SVG 查看器和 HTML 输出中有效,但在 SVG 嵌入 GitHub README 时无效,因为 GitHub 将其作为图像提供,浏览器会忽略其中的 title。其次,示例 SVG 和链接的交互页面显示的是作者的真实活动,因此 README 建议用户在发布自己的图表时要谨慎。 该项目还提供了一个编程 API:可以通过导入 parseClaudeProjects 和 renderSvg 在自己的代码中构建相同的图表。项目采用 MIT 许可证。