ByteNoteByteNote
rtk - 减少 LLM Token 消耗 80% 的 CLI 代理工具

字节笔记本

2026年6月8日

rtk - 减少 LLM Token 消耗 80% 的 CLI 代理工具

API中转
¥120

本文介绍 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 编程会话中,仅 lscatgrepgit statuscargo test 等常见命令就会产生约 118,000 个 Token。使用 rtk 后,这个数字可以降到约 23,900 个 Token,节省约 80%

Token 节省效果

操作频率原始 Tokenrtk Token节省率
ls / tree10x2,000400-80%
cat / read20x40,00012,000-70%
grep / rg8x16,0003,200-80%
git status10x3,000600-80%
git diff5x10,0002,500-75%
git log5x2,500500-80%
git add/commit/push8x1,600120-92%
cargo test5x25,0002,500-90%
pytest4x8,000800-90%
docker ps3x900180-80%
合计~118,000~23,900-80%

工作原理

rtk 通过 Auto-Rewrite Hook 机制工作。安装后,它会注册一个钩子,在 AI 助手执行 Bash 命令前自动将命令重写为 rtk 等价命令:

text
无 rtk:  Claude → git status → shell → git → ~2,000 tokens (原始输出)
有 rtk:  Claude → git status → rtk → git → ~200 tokens (过滤输出)

四种核心过滤策略:

  • 智能过滤:移除注释、空白、样板代码等噪声
  • 分组聚合:将同类项聚合(按目录分组文件、按类型分组错误)
  • 智能截断:保留相关上下文,裁剪冗余部分
  • 去重:折叠重复的日志行并显示计数

安装

Homebrew(推荐)

bash
brew install rtk

快速安装(Linux/macOS)

bash
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

Cargo

bash
cargo install --git https://github.com/rtk-ai/rtk

预编译二进制

GitHub Releases 下载对应平台的二进制文件,支持 macOS(x64/ARM)、Linux(x64/ARM)、Windows。

快速开始

bash
# 1. 安装 Hook(自动重写模式)
rtk init -g

# 2. 重启 AI 编程工具,然后正常使用即可
git status  # 自动被重写为 rtk git status

安装 Hook 后,所有命令会被自动拦截和重写,AI 助手接收到的是压缩后的输出,无需手动调用 rtk。

支持的 AI 编程工具

rtk 支持 14 种主流 AI 编程工具:

工具安装命令集成方式
Claude Codertk init -gPreToolUse Hook
GitHub Copilot (VS Code)rtk init -g --copilotPreToolUse Hook
GitHub Copilot CLIrtk init -g --copilotdeny-with-suggestion
Cursorrtk init -g --agent cursorhooks.json
Gemini CLIrtk init -g --geminiBeforeTool Hook
Codex (OpenAI)rtk init -g --codexAGENTS.md + RTK.md
Windsurfrtk init -g --agent windsurf.windsurfrules
Cline / Roo Codertk init --agent cline.clinerules
OpenCodertk init -g --opencodePlugin TS
OpenClawPlugin 安装Plugin TS
Kilo Codertk init --agent kilocode项目规则
Pirtk init -g --agent piTypeScript 扩展
Hermesrtk init --agent hermesPython 插件
Google Antigravityrtk init --agent antigravity项目规则

支持的命令类型

文件操作

bash
rtk ls .                   # 优化的目录树
rtk read file.rs           # 智能文件读取
rtk read file.rs -l aggressive  # 仅保留签名(极简模式)
rtk smart file.rs          # 2 行启发式代码摘要
rtk find "*.rs" .          # 紧凑的查找结果
rtk grep "pattern" .       # 分组搜索结果

Git 操作

bash
rtk git status             # 紧凑的状态输出
rtk git log -n 10          # 单行提交记录
rtk git diff               # 精简的差异对比
rtk git commit -m "msg"    # → "ok abc1234"
rtk git push               # → "ok main"

测试运行器

bash
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

bash
rtk lint                   # ESLint 按规则/文件分组
rtk tsc                    # TypeScript 错误按文件分组
rtk cargo build            # Cargo 构建(-80%)
rtk ruff check             # Python 检查(-80%)

云服务与容器

bash
rtk aws ec2 describe-instances    # 紧凑的实例列表
rtk docker ps                     # 紧凑的容器列表
rtk docker logs <container>       # 去重的日志
rtk kubectl pods                  # 紧凑的 Pod 列表

Token 节省统计

rtk 内置详细的 Token 节省分析功能:

bash
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):

toml
[hooks]
exclude_commands = ["curl", "playwright"]  # 跳过重写的命令

[tee]
enabled = true          # 命令失败时保存原始输出(默认开启)
mode = "failures"       # "failures", "always", 或 "never"

当命令失败时,rtk 会自动保存完整的未过滤输出,LLM 无需重新执行即可查看:

text
FAILED: 2/15 tests
[full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log]

卸载

bash
rtk init -g --uninstall     # 移除 Hook、RTK.md、settings.json 配置
cargo uninstall rtk          # 移除二进制
brew uninstall rtk           # 如果通过 Homebrew 安装

项目信息

  • GitHubrtk-ai/rtk
  • Stars:59.8k+
  • 许可证:Apache-2.0
  • 语言:Rust 92%、Shell 5%、TypeScript 1.6%
  • 最新版本:v0.42.3
  • 官方网站rtk-ai.app
分享: