Claude code:用 RTK打造的 CLI 输出 Token 压缩神器,LLM 开发成本直降 80%

在大模型辅助开发的日常场景中,你是否经常因为把
git log、cargo test、docker ps等 CLI 命令输出粘贴到对话框,导致 Token 瞬间爆炸?本文介绍的 RTK(Rust Token Killer) 正是解决这一痛点的利器——一款基于 Rust 的高性能 CLI 代理工具,能将 LLM 上下文的 Token 消耗降低 60%–90%,且性能开销不足 10ms。
一、RTK 是什么?
RTK 是由 rtk-ai 团队开发的开源工具(⭐ 25.9k),核心目标是:在 CLI 命令的输出到达 LLM 上下文之前,对其进行智能过滤与压缩,剔除冗余字符(重复空格、ANSI 颜色码、注释噪音、重复日志行等),仅保留 LLM 真正需要的核心信息,从而大幅减少传入大模型的 Token 数量。
它本质上是一个 CLI 代理(Proxy):当你在 AI 编程工具(Claude Code、Cursor、Copilot 等)中执行 Shell 命令时,RTK 的 Hook 机制会自动将命令透明改写为 rtk 版本(例如 git status → rtk git status),AI 工具完全无感知,只会收到压缩后的精简输出。
核心特性
- 极致 Token 节省:针对开发者高频命令(ls/tree、cat/read、grep、git 系列、测试命令、Docker、AWS 等)深度优化,一次 30 分钟 Claude Code 会话可减少约 80% Token 消耗;
- 轻量高性能:纯 Rust 编写的单一二进制文件,零外部依赖,命令执行额外开销 < 10ms;
- 广泛支持:支持 100+ 常用 CLI 命令,兼容 macOS、Linux、Windows(推荐搭配 WSL);
- 无侵入使用:通过 AI 工具的 Hook 机制透明拦截,开发者无需修改任何使用习惯;
- 多 AI 工具适配:支持 Claude Code、GitHub Copilot、Cursor、Gemini CLI、Windsurf、Cline 等 10 款主流 AI 编程工具;
- 开源可配置:Apache-2.0 许可证,支持通过配置文件调整行为。
Token 消耗对比(30 分钟 Claude Code 会话)
| 操作 | 频次 | 原始 Token | RTK 后 | 节省比例 |
|---|---|---|---|---|
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 / npm test |
5x | 25,000 | 2,500 | -90% |
pytest |
4x | 8,000 | 800 | -90% |
docker ps |
3x | 900 | 180 | -80% |
| 合计 | ~118,000 | ~23,900 | -80% |
以中等规模 TypeScript/Rust 项目为基准,实际节省比例因项目大小而异。
二、安装方式(5 分钟搞定)
RTK 提供多种安装方式,安装完成后执行 rtk --version 验证。
⚠️ 注意名称冲突:crates.io 上存在同名的 “Rust Type Kit” 项目。如果执行
rtk gain报错,说明装错了包,请改用cargo install --git方式安装。
方式 1:Homebrew(macOS 推荐)
brew install rtk
方式 2:一键脚本(Linux / macOS 通用)
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
默认安装到 ~/.local/bin,如果 PATH 未包含该目录,执行:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # 或 ~/.zshrc
方式 3:Cargo(有 Rust 环境推荐)
# 注意:必须从 GitHub 安装,避免与 crates.io 上的同名包冲突
cargo install --git https://github.com/rtk-ai/rtk
方式 4:手动安装(全平台)
从 GitHub Releases 下载对应平台的预编译包:
- macOS (Intel):
rtk-x86_64-apple-darwin.tar.gz - macOS (Apple Silicon):
rtk-aarch64-apple-darwin.tar.gz - Linux (x86_64):
rtk-x86_64-unknown-linux-musl.tar.gz - Linux (ARM64):
rtk-aarch64-unknown-linux-gnu.tar.gz - Windows:
rtk-x86_64-pc-windows-msvc.zip
# 以 Linux x86_64 为例
wget https://github.com/rtk-ai/rtk/releases/latest/download/rtk-x86_64-unknown-linux-musl.tar.gz
tar -zxvf rtk-x86_64-unknown-linux-musl.tar.gz
mv rtk ~/.local/bin/
rtk --version
验证安装
rtk --version # 应输出类似 "rtk 0.36.0"
rtk gain # 查看 Token 节省统计
三、快速上手:与 AI 工具集成
RTK 最核心的使用方式,是通过 rtk init 为 AI 工具安装 自动改写 Hook。安装后,AI 工具每次调用 Bash 命令时,Hook 会自动将命令透明改写(如 git status → rtk git status),AI 完全无感知,只会收到压缩后的输出。
第一步:初始化并安装 Hook
根据你使用的 AI 工具选择对应命令:
rtk init -g # Claude Code / GitHub Copilot(默认,推荐)
rtk init -g --gemini # Gemini CLI
rtk init -g --codex # OpenAI Codex
rtk init -g --agent cursor # Cursor
rtk init -g --agent windsurf # Windsurf(项目级别,需加 -g 参数)
rtk init --agent cline # Cline / Roo Code(项目级别)
安装完成后,重启 AI 工具使 Hook 生效。
第二步:验证 Hook 生效
rtk init --show # 查看已安装的 Hook 和配置
第三步:正常使用即可
Hook 生效后,你在 AI 工具中使用原生命令时,RTK 会自动在后台完成改写和压缩:
# 以下命令在 AI 工具中执行时,会自动被 RTK 透明处理
git status
git diff main
cargo test
ls -l ./src
grep -r "error" ./logs
docker ps
重要提示:Hook 只作用于 Bash 工具调用。Claude Code 的内置工具(如
Read、Grep、Glob)不经过 Bash Hook,不会自动改写。如需在这些场景下使用 RTK 压缩,请改用 Shell 命令(cat/rg/find)或直接调用rtk read、rtk grep、rtk find。
手动调用 RTK 命令
不依赖 Hook,也可以直接手动调用 RTK 的各类子命令:
# 文件与目录
rtk ls . # Token 优化的目录树
rtk read file.rs # 智能读取文件
rtk read file.rs -l aggressive # 只保留函数签名(去掉函数体)
rtk grep "pattern" . # 分组展示搜索结果
rtk find "*.rs" . # 紧凑的 find 结果
rtk diff file1 file2 # 精简 diff
# Git
rtk git status
rtk git log -n 10
rtk git diff
rtk git push # 输出简化为 "ok main"
# 测试命令(只显示失败项)
rtk test cargo test
rtk pytest
rtk go test
rtk vitest run
# 构建与 Lint
rtk tsc # TypeScript 错误按文件分组
rtk lint # ESLint 按规则/文件分组
rtk cargo build
rtk cargo clippy
# Docker / Kubernetes
rtk docker ps
rtk docker logs <container>
rtk kubectl pods
# 日志与杂项
rtk log app.log # 去重日志
rtk env -f AWS # 过滤环境变量
rtk json config.json # 只显示结构,隐藏值
查看 Token 节省统计
rtk gain # 汇总统计
rtk gain --graph # ASCII 折线图(近 30 天)
rtk gain --history # 最近命令历史
rtk gain --daily # 按天细分
rtk discover # 找出未被 RTK 处理的"遗漏节省"机会
rtk session # 查看 RTK 在 Claude Code 会话中的 adoption 率
rtk learn # 从 Claude Code 错误历史中学习 CLI 修正模式
四、RTK 与 Claude Code 深度配合
Claude Code 是 Anthropic 推出的 AI 编程工具,RTK 对其有原生的一等支持,也是目前最佳的组合之一。
安装 Claude Code 专属 Hook
rtk init -g # 安装 Hook + 生成 RTK.md 上下文文档
rtk init --show # 验证安装状态
rtk init -g 会做两件事:
- 在 Claude Code 的全局配置中注入 PreToolUse Hook,拦截所有 Bash 工具调用并透明改写为
rtk命令; - 生成
RTK.md文档,让 Claude Code 了解 RTK 的能力,进一步优化协作效果。
实际效果对比
git push 输出(原始 vs RTK):
# 原始输出(~15 行,约 200 Token) # RTK 输出(1 行,约 10 Token)
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.
...
cargo test 失败输出(原始 vs RTK):
# 原始输出(200+ 行) # RTK 输出(~20 行)
running 15 tests FAILED: 2/15 tests
test utils::test_parse ... ok test_edge_case: assertion failed
test utils::test_format ... ok test_overflow: panic at utils.rs:18
... [full output: ~/.local/share/rtk/tee/...]
Tee 恢复机制:当命令失败时,RTK 会将完整的原始输出保存到本地文件(
~/.local/share/rtk/tee/),并在精简输出末尾附上文件路径。Claude Code 可以随时读取完整日志,不丢失任何信息。
推荐工作流:用 RTK + Claude Code 排查 Bug
# 1. 执行测试,RTK 自动压缩(只显示失败项)
cargo test
# 2. 查看相关代码变更,RTK 自动压缩 diff
git diff main -- ./src
# 3. 将精简后的信息发给 Claude Code
# "以上是测试失败和相关代码变更,请分析根本原因并给出修复方案"
由于输入内容大幅精简,Claude Code 能更专注于核心错误信息,响应更准确,且 Token 消耗仅为原来的约 15%。
五、配置详解
配置文件路径
- Linux / macOS:
~/.config/rtk/config.toml - macOS(应用支持目录):
~/Library/Application Support/rtk/config.toml
主要配置项
[tracking]
# 自定义历史数据库路径
database_path = "/path/to/custom.db" # 默认: ~/.local/share/rtk/history.db
[hooks]
# 跳过某些命令的自动改写
exclude_commands = ["curl", "playwright"]
[tee]
# 失败命令的完整输出保存策略(max_files 目前为源码硬编码,暂不可配置)
enabled = true
mode = "failures" # "failures"(默认)| "always" | "never"
[telemetry]
# 匿名遥测(默认关闭,需显式 consent 后才开启)
enabled = true # 设为 true 并执行 `rtk telemetry enable` 开启
关于遥测(隐私说明)
RTK 默认关闭匿名遥测。如需开启,需执行 rtk telemetry enable 显式同意。开启后大约每 23 小时上报一次以下聚合信息(用于辅助开发优先级决策):
- 设备哈希(加盐 SHA-256,不可逆)
- RTK 版本、操作系统、架构
- 命令计数和命令名称(如 “git”、“cargo”,不包含参数和路径)
- Token 节省百分比
不收集:源代码、文件路径、命令参数、密钥、环境变量或任何个人可识别信息。
如需禁用遥测(即使已开启):
# 方式 1:环境变量(优先级最高)
export RTK_TELEMETRY_DISABLED=1
# 方式 2:撤回 consent
rtk telemetry disable
# 方式 3:配置文件
# 在 ~/.config/rtk/config.toml 中添加:
[telemetry]
enabled = false
卸载
rtk init -g --uninstall # 移除 Hook、RTK.md 及相关配置
cargo uninstall rtk # 移除二进制(Cargo 安装时)
brew uninstall rtk # 移除二进制(Homebrew 安装时)
六、工作原理:四大过滤策略
RTK 的核心是针对每类命令输出应用以下四种策略的组合:
| 策略 | 说明 | 典型效果 |
|---|---|---|
| Smart Filtering(智能过滤) | 移除注释、空白行、样板文字、ANSI 颜色码 | 去除 git push 进度条信息 |
| Grouping(分组聚合) | 将同类项目合并展示(按目录聚合文件、按规则聚合 lint 错误) | rtk ls 将子目录折叠为一行 |
| Truncation(截断裁剪) | 保留最相关的上下文,截去冗余部分 | rtk read 大文件时只保留核心段落 |
| Deduplication(去重折叠) | 将重复日志行合并并显示计数 | rtk docker logs 将 1000 条重复日志折叠为 1 条 |
以 git push 为例,原始输出包含进度条、对象计数、Delta 压缩等约 15 行无实质内容的信息,RTK 直接精简为 ok main(约 10 Token),对于 AI 来说信息等价,但成本降低 95%。
Hook 改写流程
RTK 并非通过系统调用拦截(如 ptrace/DTrace)实现透明压缩,而是借助 AI 工具自带的 PreToolUse Hook 机制,在 Bash 命令执行前将其改写为 rtk 前缀版本:
这种设计的优势是零系统级侵入:不需要 root 权限,也不依赖平台特定的系统调用拦截技术,仅需在 AI 工具配置中注入一段 Hook 脚本即可。
命令失败时的 Tee 恢复机制
当命令执行失败时,RTK 会将完整原始输出保存到本地文件,并向 LLM 提供精简摘要 + 文件路径,兼顾 Token 节省与排错需求:
可通过环境变量 RTK_TEE_DIR 自定义 Tee 保存路径。
支持的 AI 工具
| 工具 | 安装命令 | 集成方式 |
|---|---|---|
| Claude Code | rtk init -g |
PreToolUse Hook(Bash) |
| GitHub Copilot (VS Code) | rtk init -g --copilot |
PreToolUse Hook(透明改写) |
| Cursor | rtk init -g --agent cursor |
preToolUse Hook (hooks.json) |
| Gemini CLI | rtk init -g --gemini |
BeforeTool Hook |
| OpenAI Codex | rtk init -g --codex |
AGENTS.md 指令 |
| Windsurf | rtk init -g --agent windsurf |
.windsurfrules(项目级,需加 -g) |
| Cline / Roo Code | rtk init --agent cline |
.clinerules(项目级) |
七、适用场景与成本测算
RTK 尤其适合以下场景:
- 频繁将 CLI 输出发送给 ChatGPT、Claude、Gemini 等 LLM 的开发者;
- 使用 Claude Code、Cursor 等 AI 编程工具进行日常开发;
- 对 API 调用成本敏感的团队或个人(Token 消耗降低 = 直接减少费用);
- 日志分析、代码调试、CI/CD 结果解读等场景。
月度成本节省参考
以某开发者日常使用 Claude Code 为例:
- 使用前:每次会话平均消耗 ~118,000 Token
- 使用后:每次会话平均消耗 ~24,000 Token
- 节省比例:约 80%
- 折算费用:按 Claude Sonnet 计算,每百次会话节省约数十美元,长期积累相当可观
八、总结与资源
RTK 是 LLM 辅助开发场景下几乎没有理由不用的工具:零学习成本、零侵入、即装即用,对 Claude Code 等 AI 工具有原生支持。唯一需要注意的是:它的匿名遥测默认关闭(需执行 rtk telemetry enable 显式同意后才能开启),以及 Hook 不覆盖 Claude Code 的内置文件读取工具(需手动改用 Shell 命令或 rtk 命令)。
官方资源
- 📦 开源仓库:https://github.com/rtk-ai/rtk
- 🌐 官方文档:https://www.rtk-ai.app
- 🔧 故障排查:TROUBLESHOOTING.md
- 🏗️ 架构文档:ARCHITECTURE.md
- 💬 社区交流:Discord
附录:原博文主要错误与修正说明
以下是原博文中发现的主要错误,供参考:
| 问题类型 | 原博文内容 | 实际情况 |
|---|---|---|
| 许可证错误 | MIT 许可证 | LICENSE 文件为 Apache-2.0,但 Cargo.toml 和 README 徽章仍标注 MIT,存在不一致 |
| 工作原理错误 | 通过 ptrace/DTrace 拦截系统调用 |
通过 AI 工具的 PreToolUse Hook 透明改写 Bash 命令 |
| 配置路径错误 | ~/.rtk/filters.toml、~/.rtk/hooks.toml |
配置文件为 ~/.config/rtk/config.toml,不存在 filters.toml |
| 初始化命令错误 | rtk init(无参数) |
需加 -g 参数,且不同工具有不同参数(如 --gemini、--agent cursor) |
| 不存在的命令 | rtk filter、RTK_DISABLE=1 |
无 rtk filter 命令;无 RTK_DISABLE 环境变量(有 RTK_TELEMETRY_DISABLED) |
| 节省比例张冠李戴 | git diff 节省 92% |
92% 是 git add/commit/push 的节省比,git diff 实际节省 75% |
| 遥测信息缺失 | 未提及 | RTK 默认关闭匿名遥测,需执行 rtk telemetry enable 显式同意后方可开启;上报间隔约 23 小时 |
| 支持工具不完整 | 只提及 Claude Code | 实际支持 10 款 AI 编程工具 |
| 自定义规则描述不准 | 描述了不存在的 [claude-code-optimize] 等配置节 |
实际配置项以 [tracking]、[hooks]、[tee]、[telemetry] 为主 |
更多推荐


所有评论(0)