
关于
从本地成本跟踪数据库跟踪和报告 Claude Code Token 使用量、支出和预算。适用于用户询问按项目、工具、会话或日期的成本、支出、使用量或预算明细。
name: cost-tracking description: 跟踪和报告 Claude Code 的 token 使用量、支出和预算(来自本地成本跟踪数据库)。当用户询问成本、支出、使用量、token、预算或按项目/工具/会话/日期的成本明细时使用。 origin: community
成本跟踪
使用此技能从本地 SQLite 数据库分析 Claude Code 的成本和使用历史。适用于已有成本跟踪钩子或插件将使用记录写入 ~/.claude-cost-tracker/usage.db 的用户。
来源:从社区 PR #1304(作者 MayurBhavsar)中整理。
何时使用
- 用户询问"我花了多少钱?"、"这个会话花了多少?"或"我的 token 使用量是多少?"
- 用户提到预算、支出限制、超支或成本控制。
- 用户想要按项目、工具、会话、模型或日期的成本明细。
- 用户想比较今天和昨天或查看近期趋势。
- 用户想要导出最近使用记录的 CSV。
工作原理
首先验证前置条件:
command -v sqlite3 >/dev/null && echo "sqlite3 available" || echo "sqlite3 missing"
test -f ~/.claude-cost-tracker/usage.db && echo "Database found" || echo "Database not found"
如果数据库不存在,不要编造使用数据。告知用户成本跟踪未配置,并建议安装或启用受信任的本地成本跟踪钩子/插件。
预期的 usage 表通常每个工具调用或模型交互包含一行。列名因跟踪器而异,但以下示例假设:
| 列 | 含义 |
| --- | --- |
| timestamp | 使用事件的 ISO 时间戳 |
| project | 项目或仓库名称 |
| tool_name | 工具或事件名称 |
| input_tokens | 输入 token 数量(如有记录) |
| output_tokens | 输出 token 数量(如有记录) |
| cost_usd | 预计算的美元成本 |
| session_id | Claude Code 会话标识符 |
| model | 事件使用的模型 |
优先使用 cost_usd 而非手动计算定价。模型价格和缓存定价会随时间变化,跟踪器应作为每行定价的权威来源。
示例
快速摘要
sqlite3 ~/.claude-cost-tracker/usage.db "
SELECT
'Today: $' || ROUND(COALESCE(SUM(CASE WHEN date(timestamp) = date('now') THEN cost_usd END), 0), 4) ||
' | Total: $' || ROUND(COALESCE(SUM(cost_usd), 0), 4) ||
' | Calls: ' || COUNT(*) ||
' | Sessions: ' || COUNT(DISTINCT session_id)
FROM usage;
"
按项目成本
sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
SELECT project, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
FROM usage
GROUP BY project
ORDER BY cost DESC;
"
按工具成本
sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
SELECT tool_name, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
FROM usage
GROUP BY tool_name
ORDER BY cost DESC;
"
最近七天
sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
SELECT date(timestamp) AS date, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
FROM usage
GROUP BY date(timestamp)
ORDER BY date DESC
LIMIT 7;
"
会话详情
sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
SELECT session_id,
MIN(timestamp) AS started,
MAX(timestamp) AS ended,
ROUND(SUM(cost_usd), 4) AS cost,
COUNT(*) AS calls
FROM usage
GROUP BY session_id
ORDER BY started DESC
LIMIT 10;
"
报告指南
展示成本数据时,包含:
- 今日支出和与昨日的对比。
- 跟踪数据库中的总支出。
- 按成本排名的顶级项目。
- 按成本排名的顶级工具。
- 当数据充足时,会话数量和每会话平均成本。
对于小金额,使用四位小数格式化货币。对于较大金额,两位小数即可。
反模式
- 当
cost_usd存在时,不要从原始 token 数量估算成本。 - 不要在未检查的情况下假设数据库存在。
- 不要在大型数据库上运行无界的
SELECT *导出。 - 不要在面向用户的回答中硬编码当前模型定价。
- 不要推荐安装未经审查的执行任意代码的钩子或插件。
相关
/cost-report- 使用相同数据库的命令形式报告。cost-aware-llm-pipeline- 模型路由和预算设计模式。token-budget-advisor- 上下文和 token 预算规划。strategic-compact- 上下文压缩以减少重复 token 支出。
兼容工具
Claude CodeCursor
标签
AI与机器学习
