TL;DR:RTK 是一个用 Rust 编写的 CLI 代理工具,在 LLM 编程工具(如 Claude Code、Cursor、Gemini CLI)执行命令时,自动过滤和压缩输出内容,减少 60-90% 的 token 消耗。单二进制文件、零依赖、支持 100+ 命令,安装只需一行命令。
如果你每天都在用 Claude Code、Cursor、Gemini CLI 等 AI 编程助手,你一定会遇到这个痛点:每次 AI 助手执行 git status、ls、cat、cargo test 等命令时,完整的原始输出都会被塞进 LLM 上下文窗口,疯狂消耗 token。
一个 30 分钟的编码会话,大约消耗 118,000 个 token,其中 94,100 个都是冗余信息。
RTK 就是来解决这个问题的。它用 Rust 编写,体积小巧(单个二进制文件,零依赖),在命令执行路径上拦截输出,智能过滤噪音,只保留关键信息。30 分钟会话的 token 消耗从 118,000 降到约 23,900 —— 节省 80%。
RTK 是什么?
RTK 全名 "Rust Token Killer"(Rust 编写的 Token 终结者),是一个运行在你和 LLM 之间的 CLI 代理层。它不是 LLM,不是 IDE 插件,而是一个很聪明的"中间人"。
没有 RTK: 使用 RTK 后:
Claude --git status--> shell --> git Claude --git status--> RTK --> git
^ | ^ | |
| ~2,000 tokens (原始输出) | | ~200 tokens | 智能过滤 |
+-----------------------------------+ +------- (压缩输出) -----+----------+
当 AI 工具执行命令时,RTK 会:
- 智能过滤 — 去除注释、空白字符、模板化文本
- 智能分组 — 按目录/类型聚合相似项(文件按目录归类、错误按类型分组)
- 智能截断 — 保留关键上下文,砍掉冗余内容
- 去重合并 — 将重复的日志行合并为计数
项目信息:
| 属性 | 值 |
|---|---|
| GitHub | rtk-ai/rtk |
| 语言 | Rust |
| 协议 | Apache 2.0 |
| Stars | 68,000+ |
| 最新版本 | 0.28.2 |
| 依赖 | 零(单个静态二进制) |
安装 RTK
RTK 的安装非常简单。它不依赖任何运行时,就是一个独立的二进制文件。
macOS / Linux
推荐:Homebrew
brew install rtk
快速安装脚本:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
安装到
~/.local/bin,确保该路径在 PATH 中:bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
从 Cargo 安装:
cargo install --git https://github.com/rtk-ai/rtk
Windows
从 GitHub Releases 下载 rtk-x86-64-pc-windows-msvc.zip,解压后将 rtk.exe 放到 PATH 中的目录(如 C:\Users\<你>\.local\bin)。
⚠️ 不要双击 exe 运行,它需要在命令行(PowerShell/CMD/Windows Terminal)中执行。
验证安装
rtk --version # 应显示 "rtk 0.28.2"
rtk gain # 应显示 token 节省统计
名称冲突警告:crates.io 上还有一个叫 "rtk"(Rust Type Kit)的项目。如果
rtk gain命令报错,说明装错了。请使用上面的cargo install --git方式安装。
快速上手:3 分钟接入你的 AI 工具
安装完成后,只需一步即可为你的 AI 编程工具启用 RTK:
# Claude Code / Copilot(默认)
rtk init -g
# Gemini CLI
rtk init -g --gemini
# Codex(OpenAI)
rtk init -g --codex
# Cursor
rtk init -g --agent cursor
# Windsurf
rtk init -g --agent windsurf
# Cline / Roo Code
rtk init --agent cline
# Kilo Code
rtk init --agent kilocode
# Google Antigravity
rtk init --agent antigravity
-g(或 --global)参数的作用:它会自动重写你 AI 工具的配置文件,把所有常用命令(如 git status)替换为 rtk git status。重启 AI 工具后生效。
# 重启 Claude Code 后测试
git status # 自动重写为 rtk git status
⚠️ Hook 只在 Bash 工具调用上生效。Claude Code 的内置工具(如
Read、Grep、Glob)不经过 Bash hook,所以不会被自动重写。如果想在这些场景下也获得压缩输出,请直接用 shell 命令(cat/rg/find)或手动调用rtk read、rtk grep、rtk find。
RTK 支持的命令一览
RTK 支持超过 100 条命令的压缩输出,覆盖文件操作、Git、测试、构建、包管理、云服务等场景。
文件操作
rtk ls . # 智能目录树(token -80%)
rtk read file.rs # 智能文件读取
rtk read file.rs -l aggressive # 仅保留函数签名(去掉函数体)
rtk smart file.rs # 2 行启发式代码摘要
rtk find "*.rs" . # 压缩版 find 结果
rtk grep "pattern" . # 分组搜索结果
rtk diff file1 file2 # 压缩 diff(文件不同时 exit 1)
Git 操作
rtk git status # 紧凑状态
rtk git log -n 10 # 一行式提交记录
rtk git diff # 压缩 diff
rtk git add # → "ok"
rtk git commit -m "msg" # → "ok abc1234"
rtk git push # → "ok main"
rtk git pull # → "ok 3 files +10 -2"
git push 的效果对比非常震撼:
# git push(15 行,~200 tokens) # rtk git push(1 行,~10 tokens)
Enumerating objects: 5, done. ok main
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 456 bytes | 456.00 KiB/s, done.
...
从 15 行压缩到 1 行,token 减少 95%。
测试运行器
rtk pytest # Python 测试(-90%)
rtk cargo test # Rust 测试(-90%)
rtk go test # Go 测试(NDJSON,-90%)
rtk jest # Jest 紧凑输出
rtk vitest # Vitest 紧凑输出
rtk playwright test # E2E 测试结果(仅失败)
rtk err <cmd> # 从任意命令中提取错误
rtk test <cmd> # 通用测试包装——仅失败(-90%)
构建与 Lint
rtk tsc # TypeScript 错误按文件分组
rtk cargo build # Cargo 构建(-80%)
rtk cargo clippy # Cargo clippy(-80%)
rtk ruff check # Python linting(JSON,-80%)
rtk golangci-lint run # Go linting(JSON,-85%)
rtk next build # Next.js 构建压缩
rtk prettier --check . # 需要格式化的文件
Docker 与容器
rtk docker ps # 紧凑容器列表
rtk docker images # 紧凑镜像列表
rtk docker logs <container> # 去重日志
rtk kubectl pods # 紧凑 Pod 列表
rtk kubectl logs <pod> # 去重日志
AWS CLI
rtk aws sts get-caller-identity # 一行身份标识
rtk aws ec2 describe-instances # 紧凑实例列表
rtk aws lambda list-functions # 名称/运行时/内存(去除密钥)
rtk aws s3 ls # 截断列表 + tee 恢复
rtk aws dynamodb scan # 展开类型注解
数据分析
rtk json config.json # 结构展示(去除值)
rtk deps # 依赖摘要
rtk env -f AWS # 过滤环境变量
rtk log app.log # 去重日志
rtk summary <long command> # 启发式摘要
Token 节省分析:你的 RTK 效果如何?
RTK 内置详细的统计功能,让你清楚看到省了多少 token:
rtk gain # 摘要统计
rtk gain --graph # ASCII 图表(最近 30 天)
rtk gain --history # 最近命令历史
rtk gain --daily # 每日明细
rtk gain --all --format json # JSON 导出(仪表盘用)
rtk discover # 发现未利用的节省机会
rtk discover --all --since 7 # 所有项目,最近 7 天
rtk session # 显示近期会话的 RTK 采用率
全局参数
-u, --ultra-compact # ASCII 图标 + 内联格式(额外节省 token)
-v, --verbose # 增加详细度(-v, -vv, -vvv)
实战:RTK + Claude Code 的一天
假设你是一个 Rust 项目的全职开发者,一天内的工作流程是这样的:
早上:代码审查
# 查看今天的提交
git log --oneline --since="today" # rtk 压缩为单行提交摘要
# 检查 PR 列表
gh pr list # rtk 输出紧凑 PR 表
# 查看某个 PR 详情
gh pr view 42 # rtk 输出 PR 详情 + 检查状态
上午:功能开发
# 查看项目结构
ls -la # rtk 目录树(~150 tokens vs ~800)
# 查看核心文件
read src/main.rs # rtk 智能读取(保留签名+关键逻辑)
# 运行测试
cargo test # rtk 仅失败测试(-90%)
# 提交并推送
git commit -m "feat: add auth" # rtk → "ok abc1234"
git push # rtk → "ok main"
下午:CI 调试
# 查看 CI 运行结果
gh run list # rtk 紧凑工作流状态
# 排查失败
docker ps # rtk 紧凑容器列表
docker logs my-container # rtk 去重日志
# 修复后重新测试
rtk test pytest # 通用测试包装,仅显示失败
一天下来省了多少?
| 场景 | 原始 Token | RTK Token | 节省 |
|---|---|---|---|
| 目录/文件浏览 | 50,000 | 10,000 | -80% |
| Git 操作 | 18,100 | 3,700 | -80% |
| 测试运行 | 41,000 | 4,100 | -90% |
| 构建/Lint | 18,000 | 3,600 | -80% |
| 其他 | 10,000 | 2,000 | -80% |
| 合计 | 137,100 | 23,400 | -83% |
如果你按 $10/百万 token 的 Claude 3.5 Sonnet 定价计算,一天可以省下 ~$1.14。一个月 20 个工作日就是 ~$22.8——看起来不多?但如果是团队 10 个人呢?每月 $228,每年 $2,736。
对于使用更贵的模型(如 Claude Opus),节省金额会更可观。
架构原理
RTK 的设计哲学很朴素:不做 LLM 能做的事,只做 LLM 不需要看的东西。
// 伪代码:RTK 的核心处理流程
fn process_command(cmd: &str, output: &str) -> String {
match cmd_type(cmd) {
CmdType::GitStatus => compact_git_status(output),
CmdType::TestRunner => failures_only(output),
CmdType::FileList => group_by_dir(output),
CmdType::Logs => deduplicate(output),
CmdType::Build => errors_only(output),
_ => heuristic_summary(output),
}
}
RTK 对每种命令类型应用不同的压缩策略:
git status:只保留修改文件的简要列表,去掉详细的 staged/unstaged 状态说明cargo test:只显示失败的测试用例,通过的测试合并为一行统计ls/find:按目录分组,只显示文件名,不显示权限/大小/日期docker logs:去除重复行,相同日志行显示首次 + 计数aws describe-*:去除元数据,只保留关键属性(且自动过滤敏感信息)
整个 RTK 二进制文件编译后只有几 MB,启动开销 <10ms,几乎零感。
适用场景与限制
✅ 非常适合
- AI 编程助手重度用户:每天用 Claude Code、Cursor、Gemini CLI 工作 4+ 小时
- 多语言项目:Rust/Go/Python/TypeScript 混合项目,各种测试 runner 都覆盖
- 团队协作:统一 token 预算,减少 CI/CD 中 LLM 调用成本
- 云端部署:在 CI 管道中使用 AI 工具时(按 token 付费)
⚠️ 需要注意
- Hook 只覆盖 Bash 调用:Claude Code 的内置工具不经过 RTK
- 过度压缩可能丢失上下文:调试复杂问题时可能需要
--verbose查看完整输出 - 需要重新适应:AI 工具的输出变短后,你可能需要调整对 AI 的提问方式
总结
RTK 是我见过最实用、最立竿见影的 AI 编程辅助工具之一。它没有炒作、没有花哨的 UI,就是一个安静工作的 Rust 二进制文件,帮你每天省 token、省钱、提速。
30 秒安装,永久受益。 这就是开源精神——用最少的代码,解决最实际的痛点。
快速开始:
brew install rtk # macOS
rtk init -g # 启用 Claude Code 集成
# 重启 Claude Code,开始享受 token 节省
如果你的 AI 编程工具每天执行几十上百条命令,RTK 绝对值得尝试。68K+ GitHub Stars 已经证明了它的价值——现在轮到你了。
相关链接:
- GitHub: rtk-ai/rtk
- 官网: rtk-ai.app
- Discord: 社区交流
- 架构文档: ARCHITECTURE.md