
【免费下载链接】tokentabLocal-first CLI and web dashboard that reads Claude Code, Codex and Gemini CLI session logs and shows token usage and cost by model, project, day and activity. No account, no API key, nothing leaves your machine项目地址https://gitcode.com/gh_mirrors/toke/tokentab点击查看免费下载tokentab 是一个本地优先local-first的 Token 用量与成本统计工具它直接读取 Claude Code、Codex 和 Gemini CLI 留在磁盘上的会话日志按模型、项目、日期和活动类型统计 token 消耗与花费——无需账号、无需 API Key数据全程不离开你的机器。这篇文章详解 tokentab 三大解析器的实现这三种工具的会话日志到底长什么样、藏在哪个目录、又是如何被一行行解析成统一数据的。会话日志藏在哪里位置和格式一览三个工具都会悄悄在本地留下会话记录tokentab 的解析器就是围绕这些路径工作的工具日志位置文件形态Claude Code~/.claude/projects/**/*.jsonl每行一个 JSON 对象JSONLCodex~/.codex/sessions/**/rollout-*.jsonl事件流 JSONLGemini CLI~/.gemini/tmp/**/session-*.json单个 JSON 文档没安装的工具会被自动跳过你只会看到自己真正用过的工具。三大解析器的共同语法统一数据模型阅读解析器之前先认识 tokentab 的公共语法——tokentab/types.py 中定义的两组数据类TokenCounts一次调用的 input / output / cache_read / cache_write 四类 token 数UsageRecord一条完整记录含 provider哪个工具、model、project、timestamp、activity活动类型、tokens 和去重用的 id。每个解析器只需暴露一个collect()函数返回扁平的UsageRecord列表并在 tokentab/providers/init.py 的ALL_PROVIDERS里登记。定价、分组、仪表盘等下游代码只接触这同一形状的数据——这就是为什么新增一个工具写完一个模块就全通了。三个解析器共用的辅助函数安全解析 JSON、遍历目录、从编码目录名还原项目名、时间戳容错解析集中在 tokentab/providers/shared.py。Claude Code 解析器最友好的 JSONL 日志怎么读Claude Code 每个会话对应一个~/.claude/projects/编码路径/会话id.jsonl文件是三者中最规整的格式每行一个 JSON 对象assistant 回合的消息里自带model字段和一个usage块形如{input_tokens: 1200, output_tokens: 350, cache_read_input_tokens: 98000, cache_creation_input_tokens: 2048}解析流程见 claude.py 的collect()分两轮扫描上下文轮抓取第一条 user 消息的文本截取前 500 字和所有tool_use块的工具名交给 tokentab/classify.py 猜测活动类型用量轮逐行取出带usage的消息按消息id去重后生成记录。两个值得注意的细节缓存拆分Claude 把缓存读cache_read和缓存写cache_write分开计费解析器原样映射到TokenCounts下游才能按不同单价计价项目名还原目录里的-home-user-myapp这类编码名无法完美反转pretty_project 取最后一段如myapp作为展示名配置目录支持CLAUDE_CONFIG_DIR环境变量覆盖目录不存在则直接返回空列表。Codex 解析器累计型 token_count 事件怎么破Codex 把日志按日期分目录存放在~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl旧数据在archived_sessions/每行是一个事件对象。它的难点在于token 用量出现在token_count事件里而这些数字是整场会话的累计值。直接相加会把同一批 token 重复计费。解析器codex.py的解法是对相邻事件做差值记录上一次的 input / output / cached 累计值本次减去上次负数按 0 处理得到的增量才是这一次调用的真实消耗d_in max(0, tot_in - prev_in) # 累计值做差得到单次调用量其他信息则来自上下文轮扫描项目名取事件里的cwd字段通常来自文件开头附近的 session-meta 事件模型名取model字段工具名来自function_call事件同样用于活动分类首次提问第一条 user 消息文本用于 classify。由于 Codex 只报告已缓存的输入而不区分缓存写入cache_write恒为 0。_find_token_count还做了多层嵌套兼容——token_count可能出现在事件顶层、payload里或info.total_token_usage中保证新旧版本格式都能解析。Gemini CLI 解析器缓存 token 如何避免重复计费Gemini CLI 的日志最文明每个会话是~/.gemini/tmp/项目/chats/session-*.json里的一个完整 JSON 文档包含一个messages列表每条消息自带tokens块input / output / cached、model和timestamp。它有一个隐蔽的坑解析器文档注释里写得直白Gemini 报告的 input 是包含缓存部分的总数。如果直接按 input 计价缓存 token 会被收两次钱。gemini.py 的处理是一行减法fresh_input max(0, raw_input - cached) # input 包含缓存先减掉再计价这样缓存部分被单独归入cache_read按低价计费新鲜输入按正常 input 计价。项目名直接从路径中tmp后的目录段取得工具名来自parts中的functionCall若消息未带模型名则回退到gemini-2.5-pro。两个加分细节活动分类与价格模糊匹配活动分类tokentab/classify.py刻意笨的设计——不调用任何模型只看两类信号用过哪些工具edit/read/bash 等集合 首条消息里的关键词bug、refactor、test、commit……。输出 testing / git / planning / debugging / refactor / feature / coding / exploring / chat 之一。确定性强、零开销当作提示而非判决即可。价格模糊匹配tokentab/pricing/prices.py价格是一张手工维护的美元/百万 token表从不联网查询。日志里的claude-opus-4-6-20260514找不到精确 key 时先去掉anthropic/这类厂商前缀再按最长 key 优先做子串匹配。遇到完全匹配不到的模型CLI 会明确提示而不是悄悄记成 $0.00。快速上手从日志到仪表盘git clone https://gitcode.com/gh_mirrors/toke/tokentab cd tokentab pip install . python cli.py # 默认统计最近 7 天 python cli.py -web # 打开 localhost:4747 的 Web 仪表盘解析出的记录经 collect_all 统一加价后由 tokentab/report/aggregate.py 的build_report按工具、模型、项目、活动、日期分组——单个工具解析失败只会打印一行 warning不会拖垮整份报告。整个 Web 仪表盘只基于 Python 标准库 HTTP 服务搭建只绑定 localhost甚至可以拔网线使用。写在最后看懂这三大解析器你会发现 tokentab 的设计哲学很朴素每种日志格式只在一个文件里被翻译一次翻译结果就只有一个形状UsageRecord。想接入新的工具照着 claude.py 这个最简单的模板写一个collect()再加进ALL_PROVIDERS列表即可——定价、分组、图表全部自动生效。Cursor 的解析位已留好tokentab/providers/cursor.py数据在 SQLite 的state.vscdb里目前返回空列表是现成的练手入口。更多输出解读技巧比如缓存命中率长期低于 80% 说明什么参见 README.md 的 Reading the output 一节。赞分享【免费下载链接】tokentabLocal-first CLI and web dashboard that reads Claude Code, Codex and Gemini CLI session logs and shows token usage and cost by model, project, day and activity. No account, no API key, nothing leaves your machine项目地址https://gitcode.com/gh_mirrors/toke/tokentab点击查看免费下载相关推荐深入 tokentab 日志解析Claude Code、Codex、Gemini 三种会话格式各踩什么坑深入 tokentab 日志解析Claude Code、Codex、Gemini 三种会话格式各踩什么坑 tokentab 是一个命令行工具读取 ClaudCliRelay是什么把Claude Code、Codex、Gemini CLI全塞进一个OpenAI兼容AI网关CliRelay是什么把Claude Code、Codex、Gemini CLI全塞进一个OpenAI兼容AI网关 CliRelay 是一个自托管selfClaude、Codex、Gemini 谁最会看盘三大 AI 接 TradingView 实测横评Claude、Codex、Gemini 谁最会看盘三大 AI 接 TradingView 实测横评 当 Anthropic 在 2024 年底抛出 MCPMMCP 服务AI 应用人工智能金融科技CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考