如何查询 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)
适合场景: 想知道当前这场对话烧了多少。
短板:
- 只看当前 session。退出 Claude Code 重启之后,再
/cost是新的零。 - 不能跨项目汇总。换一个目录打开,又是从零开始的统计。
- 不能看历史趋势。"我上周一共烧了多少?"这种问题它答不出来。
如果你只想知道"这次任务花了多少",/cost 够用。其他场景都不够。
方法二:Anthropic Console 后台
登录 console.anthropic.com,进 Usage 页面,能看到按 API key 维度的 Token 消耗,按天、按模型分组。
适合场景: 你知道账单要交多少钱,想看大盘趋势。
短板:
- 只能按 API key 拆。如果你一个 key 同时跑 Claude Code、自己的脚本、Cursor 等,这些都混在一起,没法单独看 Claude Code 部分。
- 颗粒度按小时,不能精准到 session。
- 没法按"项目"区分——console 不知道你在哪个项目跑的。
- 如果你订阅的是 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
优势:
- 完整的、不会丢的、可重放的数据
- 能区分项目(路径就是项目)
- 能区分模型(每条 message 带 model 字段)
- 能算出任意时间段的统计
短板:
需要你自己写脚本去解析。jsonl 格式不算复杂但也不算简单。我之前写过一段 awk + jq 的管道脚本,能跑但每次想换个聚合维度都要改半天。
我现在用的方案
后来我用的是 Vibe Usage——它做的就是「方法三的自动化版本」。
装好之后它自动监听 ~/.claude/projects/ 下的所有 jsonl 文件变化,实时同步到本地数据库,给你一个 Web 界面:按天的趋势图、按项目的占比、按模型的分布、缓存命中率,全都有。
而且它不止支持 Claude Code,Codex CLI、Gemini CLI、OpenCode 也都同步——所以我能在同一个页面看四个工具的总消耗。
最关键的是它免费、跑在本地、不联网(除非你主动开同步功能)。Token 数据是隐私敏感的——能看出你在做什么项目、节奏多紧——所以我愿意用本地工具的前提就是它不偷偷上传数据。
选哪个的简单判断
- 只想看当前会话:
/cost - 是 API 用户、只关心账单总额: Anthropic Console
- 想看趋势 / 按项目 / 跨工具: 打开 Vibe Usage 看自己的 Claude Code Token 消耗
我自己同时用三种。/cost 用来快速判断当前任务是不是太烧,console 用来对账,Vibe Usage 用来回溯和分析。