Skip to content

Supported AI Tools zh CN

Rynn edited this page Apr 24, 2026 · 1 revision

已支持的 AI 工具

English · 简体中文

TokenTracker 通过三种方式采集 11 款 AI 工具 的用量:hook(工具主动调我们)、插件(我们交付一个插件,工具加载它)、被动读取(直接读工具自己产生的文件)。本页深入到实现层面,讲每个集成写了什么到哪、怎么验证、怎么调试。

任何时候跑 tokentracker status 都能看当前机器上各工具的接入状态。

基于 hook 的集成

这类工具会在每次会话/轮次结束时调用 TokenTracker。我们往它们自己的配置文件里写一两行。

Claude Code

  • Hook 位置: ~/.claude/settings.jsonhooks.SessionEnd
  • Hook 脚本: 一个 shim,调用 node ~/.tokentracker/app/hooks/notify.cjs claude
  • 解析的日志: Claude 的 JSONL 会话日志
  • 验证: 下次 Claude Code 会话后,tokentracker status 应显示 claude: configured 且会话数非零

Codex CLI

  • Hook 位置: ~/.codex/config.tomlnotify 数组
  • 解析的日志: Codex rollout JSONL
  • 坑: Codex 原始的 input_tokens 已经包含了 cached tokens。我们的 normalizer 会减掉 cached_input_tokens,否则高缓存命中的会话成本会虚高 6–7 倍
  • 验证: grep tokentracker ~/.codex/config.toml 应看到一条 notify 记录

Every Code

和 Codex 结构一样 —— Every Code 配置里的 TOML notify 数组。同样的坑同样处理。

Gemini CLI

  • Hook 位置: ~/.gemini/settings.jsonhooks.SessionEnd
  • 解析的日志: Gemini 的 turn 日志;由于 Gemini 上报的是累计值,我们通过会话间差值计算增量,而不是直接累加

基于插件的集成

这类工具有插件系统。插件随 npm 包分发,存在 ~/.tokentracker/app/,由工具自己的 CLI 软链接到其插件目录 —— 不用手动拷贝。

OpenCode

  • 插件: ~/.tokentracker/app/opencode-plugin/ → 通过 opencode plugins 链接
  • 日志: OpenCode 自己的 SQLite(~/.opencode/db.sqlite),插件也会直接发出 token 事件

OpenClaw

  • 插件: ~/.tokentracker/app/openclaw-plugin/ → 通过 openclaw plugins install --link … + openclaw plugins enable 链接
  • 日志: session 插件以 rollout 风格的 JSONL 输出
  • 旧 hook: 老版 OpenClaw 用的是 SessionEnd hook —— 作为 fallback 仍然支持,代码在 src/lib/openclaw-hook.js

被动读取(不往目标工具里装东西)

这类工具本身就会产生我们能读的文件,不动它们的配置。

Cursor

  • 数据源: Cursor 的 auth token(SQLite,macOS 在 ~/Library/Application Support/Cursor/,Linux 在 ~/.config/Cursor/)+ 用这个 token 调用 Cursor 的用量 CSV 接口
  • 隐私说明: auth token 绝不上传,只用于代表你给 Cursor 自己的接口发 HTTP 请求
  • macOS 权限: Cursor 数据在 App Support 下,macOS 用 App Management 权限保护。macOS App 首次启动会弹一次权限请求

Kiro

  • 数据源: Kiro 的 SQLite sessions 表 + JSONL 会话文件
  • 位置: ~/.kiro/(所有平台)

Hermes Agent

  • 数据源: Hermes 的 SQLite sessions 表,路径 ~/.hermes/state.db
  • Normalizer: parseHermesIncremental —— 跟踪每个 session 已读的行 id,避免重复计数

GitHub Copilot

  • 数据源: OpenTelemetry 文件导出(Copilot 自带)
  • 怎么开启:COPILOT_OTEL_FILE_EXPORTER_PATH 设到一个你选的目录(如 ~/.copilot-otel),重启 VS Code。如果 Copilot 已安装但 OTEL 没配,tokentracker activate-if-needed 会提示对应环境变量
  • 解析的日志: OTEL JSON spans,由 rollout parser 标准化

Kimi Code

  • 数据源: ~/.kimi/sessions/**/wire.jsonl —— Kimi 把每次 wire 请求/响应都写在这里
  • Parser: parseKimiIncremental —— 跟踪文件字节偏移量,恢复解析时不用重读

集成出问题怎么办

tokentracker status       # 各工具状态(configured / skipped / error)
tokentracker doctor       # 更深的健康检查 —— 路径、权限、队列大小
tokentracker diagnostics  # 完整 JSON dump(可以直接贴到 issue 里)

如果某个工具显示 skippeddetail 列会解释原因 —— 常见的几种:

  • 工具 CLI 不在 PATH
  • 配置文件不存在或无法读取
  • 工具没装(这种没关系,直接忽略即可,不会同步它)

装了新工具后想重新探测:

tokentracker activate-if-needed

想加入新工具?

大多数新集成就一个 parser 文件的事。把工具的日志格式(或一份样本文件)贴到 新 Issue 里,通常就足够立项了。

Clone this wiki locally