Claude Code

如何查询 Claude Code 的 Token 消耗量?三种方法对比

Claude Code 自带的 /cost、Anthropic Console 后台、第三方工具——三种查询方式各有优劣。这篇用一个完整对比告诉你什么场景用哪个,以及最常被忽略的本地日志方案。

「Claude Code 烧得有点快」是我最近在群里听得最多的一句话。但当我反问"你具体烧了多少?"的时候,能拿出明确数字的不到一半人。

不是大家不在乎,是查询入口本身就藏得深、口径还乱。这篇把目前能查的所有方式列一遍,告诉你各自的局限,以及一个我个人最常用的方案。

方法一:会话内的 /cost 命令

最直接的方式:在 Claude Code 的会话框里输入 /cost,它会打出当前 session 的 Token 数和估算费用。

Total cost:            $1.23
Total tokens:          1,245,332 (input: 245,000, output: 18,332, cached: 982,000)

适合场景: 想知道当前这场对话烧了多少。

短板:

  1. 只看当前 session。退出 Claude Code 重启之后,再 /cost 是新的零。
  2. 不能跨项目汇总。换一个目录打开,又是从零开始的统计。
  3. 不能看历史趋势。"我上周一共烧了多少?"这种问题它答不出来。

如果你只想知道"这次任务花了多少",/cost 够用。其他场景都不够。

方法二:Anthropic Console 后台

登录 console.anthropic.com,进 Usage 页面,能看到按 API key 维度的 Token 消耗,按天、按模型分组。

适合场景: 你知道账单要交多少钱,想看大盘趋势。

短板:

  1. 只能按 API key 拆。如果你一个 key 同时跑 Claude Code、自己的脚本、Cursor 等,这些都混在一起,没法单独看 Claude Code 部分。
  2. 颗粒度按小时,不能精准到 session。
  3. 没法按"项目"区分——console 不知道你在哪个项目跑的。
  4. 如果你订阅的是 Claude Pro/Max 套餐而不是 API 计费,console 这页是空的。

订阅用户基本看不到任何东西,这是最大的硬伤。

方法三:直接读本地日志

少有人意识到的事情——Claude Code 把每场对话的完整记录都写在本地:

~/.claude/projects/<project-path>/<session-id>.jsonl

每个 jsonl 文件是一场会话的完整事件流。里面的每条 message 都带 usage 字段,包含 input/output/cached 各类 Token 数。

$ ls ~/.claude/projects/
-Users-myname-Projects-foo
-Users-myname-Projects-bar

优势:

  1. 完整的、不会丢的、可重放的数据
  2. 能区分项目(路径就是项目)
  3. 能区分模型(每条 message 带 model 字段)
  4. 能算出任意时间段的统计

短板:

需要你自己写脚本去解析。jsonl 格式不算复杂但也不算简单。我之前写过一段 awk + jq 的管道脚本,能跑但每次想换个聚合维度都要改半天。

我现在用的方案

后来我用的是 Vibe Usage——它做的就是「方法三的自动化版本」。

装好之后它自动监听 ~/.claude/projects/ 下的所有 jsonl 文件变化,实时同步到本地数据库,给你一个 Web 界面:按天的趋势图、按项目的占比、按模型的分布、缓存命中率,全都有。

而且它不止支持 Claude Code,Codex CLI、Gemini CLI、OpenCode 也都同步——所以我能在同一个页面看四个工具的总消耗。

最关键的是它免费、跑在本地、不联网(除非你主动开同步功能)。Token 数据是隐私敏感的——能看出你在做什么项目、节奏多紧——所以我愿意用本地工具的前提就是它不偷偷上传数据。

选哪个的简单判断

我自己同时用三种。/cost 用来快速判断当前任务是不是太烧,console 用来对账,Vibe Usage 用来回溯和分析。

相关阅读

相关阅读

如何查询 Claude Code 的 Token 消耗量?三种方法对比