
字节笔记本
2026年6月8日
rtk - 减少 LLM Token 消耗 80% 的 CLI 代理工具
本文介绍 rtk(Rust Token Killer),一个高性能 CLI 代理工具,能在 AI 编程助手执行常见开发命令时减少 60-90% 的 Token 消耗,帮你显著降低 LLM API 调用成本。
什么是 rtk
rtk 是由 Patrick Szymkowiak 创建的开源 CLI 工具,用 Rust 编写,单个二进制文件,零依赖。它的核心思路很简单:在 AI 编程助手(如 Claude Code、Copilot、Cursor 等)执行 Shell 命令时,拦截并压缩命令输出,过滤掉噪声和冗余信息,只保留 AI 真正需要的上下文。
截至目前,rtk 在 GitHub 上已获得 59.8k stars,支持 14 种主流 AI 编程工具,覆盖 100+ 常用命令,单次过滤延迟低于 10ms。
为什么需要 rtk
AI 编程助手在处理代码时会频繁执行 Shell 命令,但这些命令的原始输出往往包含大量对 AI 没有价值的信息——注释、空白行、重复日志、进度条等。这些噪声会白白消耗 Token,推高 API 成本。
一个典型的 30 分钟 Claude Code 编程会话中,仅 ls、cat、grep、git status、cargo test 等常见命令就会产生约 118,000 个 Token。使用 rtk 后,这个数字可以降到约 23,900 个 Token,节省约 80%。
Token 节省效果
| 操作 | 频率 | 原始 Token | rtk Token | 节省率 |
|---|---|---|---|---|
| ls / tree | 10x | 2,000 | 400 | -80% |
| cat / read | 20x | 40,000 | 12,000 | -70% |
| grep / rg | 8x | 16,000 | 3,200 | -80% |
| git status | 10x | 3,000 | 600 | -80% |
| git diff | 5x | 10,000 | 2,500 | -75% |
| git log | 5x | 2,500 | 500 | -80% |
| git add/commit/push | 8x | 1,600 | 120 | -92% |
| cargo test | 5x | 25,000 | 2,500 | -90% |
| pytest | 4x | 8,000 | 800 | -90% |
| docker ps | 3x | 900 | 180 | -80% |
| 合计 | ~118,000 | ~23,900 | -80% |
工作原理
rtk 通过 Auto-Rewrite Hook 机制工作。安装后,它会注册一个钩子,在 AI 助手执行 Bash 命令前自动将命令重写为 rtk 等价命令:
无 rtk: Claude → git status → shell → git → ~2,000 tokens (原始输出)
有 rtk: Claude → git status → rtk → git → ~200 tokens (过滤输出)四种核心过滤策略:
- 智能过滤:移除注释、空白、样板代码等噪声
- 分组聚合:将同类项聚合(按目录分组文件、按类型分组错误)
- 智能截断:保留相关上下文,裁剪冗余部分
- 去重:折叠重复的日志行并显示计数
安装
Homebrew(推荐)
brew install rtk快速安装(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | shCargo
cargo install --git https://github.com/rtk-ai/rtk预编译二进制
从 GitHub Releases 下载对应平台的二进制文件,支持 macOS(x64/ARM)、Linux(x64/ARM)、Windows。
快速开始
# 1. 安装 Hook(自动重写模式)
rtk init -g
# 2. 重启 AI 编程工具,然后正常使用即可
git status # 自动被重写为 rtk git status安装 Hook 后,所有命令会被自动拦截和重写,AI 助手接收到的是压缩后的输出,无需手动调用 rtk。
支持的 AI 编程工具
rtk 支持 14 种主流 AI 编程工具:
| 工具 | 安装命令 | 集成方式 |
|---|---|---|
| Claude Code | rtk init -g | PreToolUse Hook |
| GitHub Copilot (VS Code) | rtk init -g --copilot | PreToolUse Hook |
| GitHub Copilot CLI | rtk init -g --copilot | deny-with-suggestion |
| Cursor | rtk init -g --agent cursor | hooks.json |
| Gemini CLI | rtk init -g --gemini | BeforeTool Hook |
| Codex (OpenAI) | rtk init -g --codex | AGENTS.md + RTK.md |
| Windsurf | rtk init -g --agent windsurf | .windsurfrules |
| Cline / Roo Code | rtk init --agent cline | .clinerules |
| OpenCode | rtk init -g --opencode | Plugin TS |
| OpenClaw | Plugin 安装 | Plugin TS |
| Kilo Code | rtk init --agent kilocode | 项目规则 |
| Pi | rtk init -g --agent pi | TypeScript 扩展 |
| Hermes | rtk init --agent hermes | Python 插件 |
| Google Antigravity | rtk init --agent antigravity | 项目规则 |
支持的命令类型
文件操作
rtk ls . # 优化的目录树
rtk read file.rs # 智能文件读取
rtk read file.rs -l aggressive # 仅保留签名(极简模式)
rtk smart file.rs # 2 行启发式代码摘要
rtk find "*.rs" . # 紧凑的查找结果
rtk grep "pattern" . # 分组搜索结果Git 操作
rtk git status # 紧凑的状态输出
rtk git log -n 10 # 单行提交记录
rtk git diff # 精简的差异对比
rtk git commit -m "msg" # → "ok abc1234"
rtk git push # → "ok main"测试运行器
rtk jest # Jest(仅显示失败)
rtk vitest # Vitest(仅显示失败)
rtk pytest # Python 测试(-90%)
rtk go test # Go 测试(-90%)
rtk cargo test # Cargo 测试(-90%)
rtk rspec # RSpec(-60%+)构建与 Lint
rtk lint # ESLint 按规则/文件分组
rtk tsc # TypeScript 错误按文件分组
rtk cargo build # Cargo 构建(-80%)
rtk ruff check # Python 检查(-80%)云服务与容器
rtk aws ec2 describe-instances # 紧凑的实例列表
rtk docker ps # 紧凑的容器列表
rtk docker logs <container> # 去重的日志
rtk kubectl pods # 紧凑的 Pod 列表Token 节省统计
rtk 内置详细的 Token 节省分析功能:
rtk gain # 总览统计
rtk gain --graph # ASCII 图表(最近 30 天)
rtk gain --history # 近期命令历史
rtk gain --daily # 每日明细
rtk discover # 发现遗漏的节省机会
rtk session # 查看最近会话的 RTK 使用率配置
配置文件位于 ~/.config/rtk/config.toml(macOS 为 ~/Library/Application Support/rtk/config.toml):
[hooks]
exclude_commands = ["curl", "playwright"] # 跳过重写的命令
[tee]
enabled = true # 命令失败时保存原始输出(默认开启)
mode = "failures" # "failures", "always", 或 "never"当命令失败时,rtk 会自动保存完整的未过滤输出,LLM 无需重新执行即可查看:
FAILED: 2/15 tests
[full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log]卸载
rtk init -g --uninstall # 移除 Hook、RTK.md、settings.json 配置
cargo uninstall rtk # 移除二进制
brew uninstall rtk # 如果通过 Homebrew 安装项目信息
- GitHub:rtk-ai/rtk
- Stars:59.8k+
- 许可证:Apache-2.0
- 语言:Rust 92%、Shell 5%、TypeScript 1.6%
- 最新版本:v0.42.3
- 官方网站:rtk-ai.app