字
字节笔记本
2026年7月12日
model-usage:一键统计所有 AI 工具的 Token 用量与费用
API中转
¥120
本文介绍 model-usage,一个零配置的命令行工具,帮你统计和分析 pi、Claude Code、Codex、Gemini CLI、OpenCode、Grok CLI 等本地 TUI 工具的模型用量和成本。一键安装,自动检测,所有数据只在本地处理。
项目简介
model-usage 是一个开源的命令行工具,由 Evan Long 开发维护,用于分析本地所有 TUI AI 工具的模型使用情况和费用。截至目前,该项目在 GitHub 上已获得 15 stars,主要使用 TypeScript 编写。
如果你同时在用 pi、Claude Code、Codex、Gemini CLI 等多个 AI 编程工具,往往不清楚每个工具到底花了多少 token、花了多少钱。model-usage 就是来解决这个问题的——它自动读取各个工具的本地数据,一条命令汇总所有用量。
核心特性
- 🪄 零配置:自动检测 pi、Claude Code、Codex、Gemini CLI、OpenCode、Grok CLI 的数据
- 🔒 100% 本地安全:无需 API Key,只读取本地数据
- ⚡ 快速分析:一个
mu命令查看所有用量 - 💰 成本追踪:精确费用计算(预计算价格或 LiteLLM 定价)
- 🎛️ 交互式数据源选择:TUI 复选框选择要查询的工具
- 🎯 智能项目检测:在项目目录下自动识别当前项目
- 📊 多种视图模式:按日聚合、逐条消息详情、按日期统计
- 🔍 智能过滤:按时间范围、项目名、模型过滤
- 📈 灵活排序:按费用、时间、token 数或项目名排序
- 🧩 可扩展:一个文件即可添加新的 TUI 工具支持
支持的 TUI 工具
所有工具均自动检测,无需配置文件:
| 工具 | 数据来源 | 已知模型 |
|---|---|---|
| pi | ~/.pi/agent/sessions/ | deepseek-v4-pro 等 |
| Claude Code | ~/.claude/projects/ | claude-sonnet-4-5 等 |
| Codex CLI | ~/.codex/sessions/ | gpt-5 等 |
| Gemini CLI | ~/.gemini/tmp/<hash>/chats/ | gemini-3-pro-preview 等 |
| OpenCode | ~/.local/share/opencode/opencode.db | deepseek-v4-pro 等 |
| Grok CLI | ~/.grok/grok.db | grok-4.3 等 |
安装指南
前置要求
- Node.js >= 22.0.0(使用内置的
node:sqlite) - 至少一个支持的 TUI 工具且有对话历史
安装步骤
bash
# 全局安装(推荐)
npm install -g model-usage
# 或一次性使用(不安装)
npx model-usage
# 或本地项目安装
npm install model-usage
npx model-usage快速开始
安装后直接运行,无需任何配置:
bash
mu首次运行时,会出现一个交互式复选框让你选择要查询的 TUI 工具,随后用量统计就会显示出来。
使用示例
数据源选择
bash
mu # 交互式选择数据源(在终端中)
mu --sources pi,opencode # 只查询 pi 和 OpenCode
mu --sources all # 查询所有可用数据源(跳过提示)在非交互环境(管道、定时任务等)下,所有数据源会自动全选,不弹出提示。
基本命令
bash
mu # 自动检测项目的用量(终端中弹出数据源选择)
mu -a, --all-projects # 所有项目的用量
mu -P, --projects # 列出所有项目
mu -M, --models # 列出所有模型(含 LiteLLM 定价)
mu -v, --version # 版本
mu -h, --help # 帮助时间过滤
bash
mu -t 7d # 最近 7 天
mu -t 2h # 最近 2 小时
mu -t 2024-07-01T14:30,2024-07-01T16:45 # 日期范围(ISO 8601)项目和模型过滤(支持部分匹配)
bash
mu -p myproject # 项目名包含 "myproject"
mu -m sonnet # 模型名包含 "sonnet"
mu -m gpt-4 # 模型名包含 "gpt-4"组合过滤
bash
mu -t 7d -m sonnet -p myproject排序
bash
mu -k cost -o desc # 费用最高优先
mu -k tokens -o desc # token 最多优先
mu -k project -o asc # 按项目名字母序
mu -k time -o desc # 最新优先视图模式
bash
mu # 按项目和日期聚合(默认)
mu -d # 详情模式:逐条消息
mu --by-date # 仅按日期,合并所有项目输出示例
运行 mu 后的典型输出:
text
🔍 Options applied:
Project: my-website (auto-detected)
Sort: cost ↓
┌──────────┬─────────────┬──────────┬────────┬────────┬──────────────┬────────────┬─────────────────┬──────────┬────────────┐
│ Time │ Project │ Messages │ Input │ Output │ Cache Create │ Cache Read │ Model │ Total │ Cost (USD) │
├──────────┼─────────────┼──────────┼────────┼────────┼──────────────┼────────────┼─────────────────┼──────────┼────────────┤
│ 7/1/2026 │ my-website │ 15 │ 1,200 │ 400 │ 0 │ 20,000 │ gpt-4.1 │ 21,600 │ $0.09 │
├──────────┼─────────────┼──────────┼────────┼────────┼──────────────┼────────────┼─────────────────┼──────────┼────────────┤
│ 6/30/2026│ my-website │ 20 │ 800 │ 300 │ 0 │ 15,000 │ gpt-4.1 │ 16,100 │ $0.06 │
├──────────┼─────────────┼──────────┼────────┼────────┼──────────────┼────────────┼─────────────────┼──────────┼────────────┤
│ TOTAL │ │ 35 │ 2,000 │ 700 │ 0 │ 35,000 │ │ 37,700 │ $0.15 │
└──────────┴─────────────┴──────────┴────────┴────────┴──────────────┴────────────┴─────────────────┴──────────┴────────────┘清晰展示每天的消息数、输入输出 token、缓存读写、模型和费用,底部汇总合计。
隐私与安全
- 100% 本地:只从本地磁盘读取数据
- 极简网络:仅从 LiteLLM 获取模型定价(缓存 1 小时)
- 无 API Key:不需要任何认证
- 隐私优先:你的数据永远不会离开本机
扩展:添加新的 TUI 工具支持
只需创建 src/sources/mytool.ts:
typescript
export const name = 'mytool';
export function isAvailable(): boolean {
// 同步检查是否可用
}
export async function readSessions(): Promise<UsageResult> {
// return { messages, totals }
}
export async function getProjects(): Promise<ProjectsResult> {
// return { projects, messageCount }
}无需改动其他文件,自动发现机制会自动识别。共享工具函数见 src/sources/common.ts。
项目链接
- GitHub 仓库:https://github.com/evanlong-me/model-usage
- NPM 包:https://www.npmjs.com/package/model-usage
- License:MIT
分享: