TL;DR:RTK 是一个用 Rust 编写的 CLI 代理工具,在 LLM 编程工具(如 Claude Code、Cursor、Gemini CLI)执行命令时,自动过滤和压缩输出内容,减少 60-90% 的 token 消耗。单二进制文件、零依赖、支持 100+ 命令,安装只需一行命令。

如果你每天都在用 Claude Code、Cursor、Gemini CLI 等 AI 编程助手,你一定会遇到这个痛点:每次 AI 助手执行 git statuslscatcargo 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 会:

  1. 智能过滤 — 去除注释、空白字符、模板化文本
  2. 智能分组 — 按目录/类型聚合相似项(文件按目录归类、错误按类型分组)
  3. 智能截断 — 保留关键上下文,砍掉冗余内容
  4. 去重合并 — 将重复的日志行合并为计数

项目信息:

属性
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 的内置工具(如 ReadGrepGlob)不经过 Bash hook,所以不会被自动重写。如果想在这些场景下也获得压缩输出,请直接用 shell 命令(cat/rg/find)或手动调用 rtk readrtk greprtk 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 已经证明了它的价值——现在轮到你了。


相关链接: