tokenusage logo

tokenusage

不再毫无预警地被限速。0.08 秒掌握你的 AI 编码开销。

CI crates.io npm PyPI License

English | 中文

--- ### 一行安装 ```bash npm i -g tokenusage # 或: cargo install tokenusage --bin tu ``` ### 运行 ```bash tu # 0.08 秒出日报 ``` ---

解析 Claude 日志比 ccusage 快 214 倍 · 解析 Codex 日志快 138 倍(热缓存) · 查看基准测试

--- ## 截图
tu — 日报

tu cli

tu gui — 桌面仪表盘

tu gui

tu img day — 分享卡片

tu img daily

tu img week — 周报卡片

tu img weekly

tu live — 实时 TUI 监控

tu live

## 为什么选 tokenusage | 痛点 | tokenusage 方案 | |---|---| | 重构到一半被限速,毫无预警 | `tu live` 实时显示用量 | | 不知道 AI 编码每天花多少钱 | `tu` 0.08 秒给出每日开销明细 | | Codex 和 Claude 日志分散在不同目录 | 一个统一仪表盘,合并所有数据源 | | 现有工具在大日志上很慢 | 比 ccusage 快 214 倍(Rust + 并行扫描 + 缓存) | | 不想把日志上传到云端 | 100% 本地解析,数据不离开你的电脑 | | 不只想看 token,还想看编码时间与效率 | 默认 `tu` 保持经典 token 报表;`--with-activity` 按需增加 coding time 与 tokens/hour | | 想分享使用统计 | `tu img` 生成可分享的图片卡 | ## 安装 ### npm(推荐) ```bash npm install -g tokenusage ``` ### cargo (crates.io) ```bash cargo install tokenusage --bin tu ``` ### pip (PyPI) ```bash pip install tokenusage ``` ### cargo-binstall(预编译二进制) ```bash cargo binstall tokenusage --no-confirm ``` ## 快速开始 ```bash # 日报(默认) tu # 经典合并 token 报表 tu --tui # 同一份报表的终端 UI # 指定数据源 tu codex tu claude tu antigravity # 日期过滤 tu --since 2026-02-01 --until 2026-02-28 # 周报 / 月报 tu weekly --start-of-week monday tu monthly # 基于本地 AI 使用记录推断的时间视图 tu today tu activity tu activity --days 14 tu activity --project tokenusage # 给合并后的 token 报表增加 activity 列(Coding / Tok/hr) tu --with-activity tu --with-activity --tui tu live --with-activity # 原生本地 heartbeat 采集层 tu heartbeat watch . tu heartbeat stats tu heartbeat ping src/main.rs --write # 实时监控(标签页: Codex / Claude / Antigravity) tu live # htop 风格的会话查看器 tu top tu top --active-hours 12 # 显示最近 12 小时的活跃会话 # GUI 仪表盘 tu gui # 生成分享图片 tu img tu img day tu img week ``` ## 性能基准 **测试环境:** - 机器: Apple M3 Max, macOS 15.6.1 - `tu` 版本: `1.2.6` · `ccusage` 版本: `18.0.8` - 默认模式(无日期过滤,在线定价,网络启用) **Claude** — 1,521 个 JSONL 文件, 2.2 GB | | `tu claude` | `bunx ccusage` | 加速比 | |---|---:|---:|---:| | 冷启动(重建缓存) | **0.73s** | 17.15s | **23.5x** | | 热缓存(5 次最佳 / 3 次均值) | **0.08s** | 17.15s | **214x** | **Codex** — 91 个 JSONL 文件, 1.7 GB | | `tu codex` | `bunx @ccusage/codex` | 加速比 | |---|---:|---:|---:| | 冷启动(重建缓存) | **0.92s** | 20.76s | **22.6x** | | 热缓存(5 次最佳 / 3 次均值) | **0.15s** | 20.76s | **138x** | > 结果因硬件、文件系统缓存状态和日志量而异。 详细对比请看 [tokenusage vs ccusage](docs/compare/tokenusage-vs-ccusage.md)。 ## 常见问题 ### 数据从哪来? 从本地日志目录和 IDE 探测: - Claude: `~/.config/claude/projects`, `~/.claude/projects` - Codex: `~/.codex/sessions`, `~/.config/codex/sessions` - Antigravity: 从运行中的 IDE 语言服务器探测(无需日志文件) 可通过 `--claude-projects-dir` 和 `--codex-sessions-dir` 覆盖。 ### 如何估算费用? `tu` 优先使用 OpenRouter 在线定价(缓存 6 小时),网络不可用时回退到内置离线费率。 ### `--with-activity` 是怎么工作的? `tu` 会直接从本地机器推断编码活跃时间。默认情况下它会把相近的 AI usage 事件聚合成活跃窗口;如果你启用了原生 heartbeat 采集层(`tu heartbeat watch ...`),那么在 heartbeat 覆盖足够的日期上会优先使用 heartbeat,在其他日期回退到 token 事件推断。 基于这套本地 activity 信号,`tu` 会得到: - coding time - tokens per coding hour - cost per coding hour - project / language / source breakdowns 专门的时间视图命令 `tu today` / `tu activity` 会自动启用这一能力。`--with-activity` 会把同一套本地 activity 上下文合并进日/周/月报表和 `tu live`。 默认情况下,`tu` 会保持原来的合并 token 报表列布局。只有在显式启用 `--with-activity`,或使用专门的时间视图时,才会显示额外的 `Coding` / `Tok/hr` 列。 ### 数据隐私安全吗? 日志解析完全在本地进行。`tu` 仅请求定价元数据,使用 `--offline` 可完全离线。 ## 配置文件 配置搜索顺序: 1. `./.tu/tu.json` 2. `~/.config/tu/tu.json` 3. `~/.config/tokenusage/tokenusage.json` 指定配置文件: ```bash tu --config /path/to/tu.json ``` 示例: ```json { "defaults": { "timezone": "Asia/Shanghai", "workers": 16, "compact": false }, "commands": { "daily": { "instances": true }, "live": { "sessionLength": 5, "refreshInterval": 1 }, "img": { "period": "daily", "bars": 24, "brand": "tokenusage", "brandUrl": "https://github.com/hanbu97/tokenusage" }, "weekly": { "startOfWeek": "monday" } } } ``` ## 开发 ```bash cargo fmt cargo clippy --all-targets --all-features cargo check ``` ## 许可证 MIT. 见 [LICENSE](./LICENSE)。