Token is money, Token is context. RTK 让 AI 编程助手获得高密度信息,降低成本,提升判断质量。

在 AI 编程助手日益普及的今天,一个不容忽视的问题逐渐浮现:Token 消耗。每次 Claude Code、GitHub Copilot 或 Cursor 执行命令时,大量的冗余输出被塞进上下文窗口,吞噬着宝贵的 Token 额度和成本。

比如一个简单的 git status 可能输出 20 行、2000 tokens;cargo test 失败时可能输出 200+ 行、25000 tokens。这些噪音不仅增加了 API 成本,还稀释了真正重要的信息,影响 AI 的判断质量。

RTK (Rust Token Killer) 就是为了解决这个问题而诞生的——一个 CLI 代理工具,通过智能过滤命令输出,将 Token 消耗降低 **60-90%**。

📋 目录

  1. 什么是 RTK?
  2. 真实 Token 节省数据
  3. 核心工作原理
  4. 支持的命令范围
  5. 实战示例
  6. 自动重写 Hook
  7. 支持的 AI 编程助手
  8. Token 节省分析工具
  9. 安装方法
  10. Windows 用户注意事项
  11. 隐私与遥测
  12. 为什么 RTK 重要?
  13. 快速上手清单
  14. 结语

什么是 RTK?

RTK 是一个用 Rust 编写的单二进制文件工具,零依赖,安装简单。它充当命令输出过滤器,在终端命令和 AI 助手之间建立一道智能屏障:

1
2
3
4
5
Without rtk:
Claude → git status → shell → git → 输出 ~2000 tokens

With rtk:
Claude → git status → RTK → git → 输出 ~200 tokens (压缩 80%)

核心特性

  • 单 Rust 二进制文件 - 无依赖,安装简单,跨平台
  • <10ms 开销 - 对执行速度影响极小
  • 100+ 命令支持 - 覆盖主流开发场景
  • 智能过滤器 DSL - 可自定义过滤规则(TOML 配置)
  • 故障恢复机制 - 命令失败时保存完整输出到 tee 文件,供 AI 回溯分析

真实 Token 节省数据

根据官方测试,一个 30 分钟的 Claude Code 会话中:

操作 频率 标准 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%
cargo test 5x 25,000 2,500 -90%
pytest 4x 8,000 800 -90%
总计 - ~118,000 ~23,900 -80%

这意味着原本消耗 118K tokens 的会话,现在只需要 24K,节省了约 94K tokens。按当前 API 价格计算,每次会话可节省数美元。


核心工作原理

RTK 采用四重优化策略:

1. 智能过滤

去除注释、空白行、样板代码等噪音。例如 git push 的 “Enumerating objects”、”Delta compression” 等进度信息被过滤。

2. 分组聚合

将相似项归类(按目录、错误类型等)。例如 ls 输出按目录分组,测试失败按类型聚合。

3. 智能截断

保留关键上下文,砍掉冗余。例如 cargo test 只保留失败的测试,跳过 100+ 个通过的测试。

4. 去重复制

折叠重复日志行,附带计数。例如容器日志中的重复错误只显示一次 + 出现次数。


支持的命令范围

RTK 支持 100+ 常用开发命令,覆盖主流开发场景:

文件操作

1
2
3
4
5
6
7
rtk ls .                      # Token-optimized 目录树
rtk read file.rs # 智能文件读取
rtk read file.rs -l aggressive # 仅保留签名(去除函数体)
rtk smart file.rs # 2行启发式代码摘要
rtk find "*.rs" . # 压缩查找结果
rtk grep "pattern" . # 分组搜索结果
rtk diff file1 file2 # 压缩差异

Git 操作

1
2
3
4
5
6
rtk git status                # 压缩状态
rtk git log -n 10 # 单行提交历史
rtk git diff # 压缩差异
rtk git commit -m "msg" # → "ok abc1234"
rtk git push # → "ok main"
rtk git pull # → "ok 3 files +10 -2"

GitHub CLI

1
2
3
4
rtk gh pr list                # 压缩 PR 列表
rtk gh pr view 42 # PR 详情 + 检查状态
rtk gh issue list # 压缩 Issue 列表
rtk gh run list # Workflow 运行状态

测试运行器

1
2
3
4
5
6
7
8
9
10
rtk cargo test                # Rust 测试(-90%)
rtk pytest # Python 测试(-90%)
rtk go test # Go 测试(-90%)
rtk jest # Jest(仅显示失败)
rtk vitest # Vitest(仅显示失败)
rtk playwright test # E2E 结果(仅显示失败)
rtk rake test # Ruby minitest(-90%)
rtk rspec # RSpec(-60%+)
rtk err <cmd> # 任意命令的错误过滤器
rtk test <cmd> # 通用测试包装器(-90%)

构建 & Lint

1
2
3
4
5
6
7
8
9
rtk lint                      # ESLint 分组显示
rtk tsc # TypeScript 错误按文件分组
rtk next build # Next.js 构建压缩
rtk cargo build # Cargo 构建(-80%)
rtk cargo clippy # Cargo clippy(-80%)
rtk ruff check # Python linting(-80%)
rtk golangci-lint run # Go linting(-85%)
rtk rubocop # Ruby linting(-60%+)
rtk prettier --check . # 需格式化的文件列表

包管理器

1
2
3
4
5
rtk pnpm list                 # 压缩依赖树
rtk pip list # Python 包(自动检测 uv)
rtk pip outdated # 过期包列表
rtk bundle install # Ruby gems(去除 Using 行)
rtk prisma generate # Schema 生成(去除 ASCII art)

AWS

1
2
3
4
5
6
7
8
rtk aws sts get-caller-identity  # 单行身份
rtk aws ec2 describe-instances # 压缩实例列表
rtk aws lambda list-functions # Name/runtime/memory(去除 secrets)
rtk aws logs get-log-events # 时间戳消息
rtk aws cloudformation describe-stack-events # 失败优先
rtk aws dynamodb scan # 解包类型注解
rtk aws iam list-roles # 去除策略文档
rtk aws s3 ls # 截断 + tee 恢复

容器

1
2
3
4
5
6
7
rtk docker ps                  # 压缩容器列表
rtk docker images # 压缩镜像列表
rtk docker logs container # 去重日志
rtk docker compose ps # Compose 服务
rtk kubectl pods # 压缩 Pod 列表
rtk kubectl logs pod # 去重日志
rtk kubectl services # 压缩服务列表

数据 & 分析

1
2
3
4
5
6
7
8
rtk json config.json           # 结构无值
rtk deps # 依赖摘要
rtk env -f AWS # 过滤环境变量
rtk log app.log # 去重日志
rtk curl <url> # 自动检测 JSON + schema
rtk wget <url> # 下载,去除进度条
rtk summary <long command> # 启发式摘要
rtk proxy <command> # 原始透传 + 跟踪

实战示例

Git push 压缩对比

原始输出(~200 tokens)

1
2
3
4
5
6
7
8
9
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 1.2 KiB | 1.2 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 1 local object.
To github.com:user/repo.git
abc1234..def5678 main -> main

RTK 输出(~10 tokens)

1
ok main

目录树压缩对比

原始 ls -la(45 行,~800 tokens)

1
2
3
4
5
6
7
8
drwxr-xr-x  15 user staff 480 Jan 15 10:30 .
drwxr-xr-x 3 user staff 96 Jan 15 10:30 ..
-rw-r--r-- 1 user staff 1234 Jan 15 10:30 Cargo.toml
-rw-r--r-- 1 user staff 567 Jan 15 10:30 README.md
-rw-r--r-- 1 user staff 234 Jan 15 10:30 .gitignore
drwxr-xr-x 8 user staff 256 Jan 15 10:30 src
-rw-r--r-- 1 user staff 890 Jan 15 10:30 src/main.rs
... (40+ lines omitted)

RTK ls(12 行,~150 tokens)

1
2
3
4
my-project/
+-- src/ (8 files)
| +-- main.rs
+-- Cargo.toml

测试失败压缩对比

原始 cargo test(200+ 行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
running 15 tests
test utils::test_parse ... ok
test utils::test_format ... ok
test utils::test_validate ... ok
... (150+ passing tests)
test edge_cases::test_edge_case ... FAILED
---- edge_cases::test_edge_case stdout ----
thread 'test_edge_case' panicked at 'assertion failed: left != right'
left: 42,
right: 42
at src/edge_cases.rs:18:5
note: run with `RUST_BACKTRACE=1` to display a backtrace
test overflow::test_overflow ... FAILED
... (detailed panic output)

RTK cargo test(~20 行)

1
2
3
4
5
6
7
FAILED: 2/15 tests

test_edge_case: assertion failed at edge_cases.rs:18
left: 42, right: 42

test_overflow: panic at overflow.rs:42
message: capacity exceeded

自动重写 Hook

RTK 最强大的功能是 自动重写 Hook,它透明地拦截 Bash 命令,将其转换为 rtk 命令执行,AI 助手根本感知不到这个过程:

1
2
3
Claude 发出: git status
Hook 重写: rtk git status
执行返回: 压缩后的输出(Claude 只看到结果)

这意味着 100% RTK 采用率,无需手动添加 rtk 前缀,所有会话和子代理自动受益。

安装 Hook

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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 --agent windsurf

# Cline / Roo Code
rtk init --agent cline

# OpenCode
rtk init -g --opencode

# OpenClaw
openclaw plugins install ./openclaw

# Kilo Code
rtk init --agent kilocode

# Google Antigravity
rtk init --agent antigravity

安装后重启 AI 工具即可生效。


支持的 AI 编程助手

RTK 支持 12 种主流 AI 编程工具

工具 安装命令 集成方式
Claude Code rtk init -g PreToolUse hook
GitHub Copilot rtk init -g --copilot PreToolUse hook
Gemini CLI rtk init -g --gemini BeforeTool hook
Cursor rtk init -g --agent cursor hooks.json
Codex rtk init -g --codex AGENTS.md + RTK.md
Windsurf rtk init --agent windsurf .windsurfrules
Cline / Roo Code rtk init --agent cline .clinerules
OpenCode rtk init -g --opencode Plugin TS
OpenClaw openclaw plugins install ./openclaw Plugin TS
Kilo Code rtk init --agent kilocode .kilocode/rules
Google Antigravity rtk init --agent antigravity .agents/rules

Token 节省分析工具

RTK 内置分析功能,让你量化节省效果:

1
2
3
4
5
6
7
8
9
10
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 在最近会话中的采用率

安装方法

Homebrew(推荐)

1
brew install rtk

快速安装脚本(Linux/macOS)

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

安装到 ~/.local/bin,需要添加到 PATH:

1
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc  # 或 ~/.zshrc

Cargo

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

预编译二进制

Releases 下载:

  • macOS: rtk-x86_64-apple-darwin.tar.gz / rtk-aarch64-apple-darwin.tar.gz
  • Linux: rtk-x86_64-unknown-linux-musl.tar.gz / rtk-aarch64-unknown-linux-gnu.tar.gz
  • Windows: rtk-x86_64-pc-windows-msvc.zip

验证安装

1
2
rtk --version   # 应显示 "rtk 0.37.1"
rtk gain # 应显示 Token 节省统计

注意:crates.io 上有一个同名项目 “rtk” (Rust Type Kit),如果 rtk gain 失败,说明安装错了包。请使用 cargo install --git 方式安装。


Windows 用户注意事项

RTK 在 Windows 上有限制:自动重写 Hook 需要 Unix shell,因此原生 Windows 使用 CLAUDE.md 注入模式,命令不会自动重写,需手动添加 rtk 前缀。

推荐:WSL(完全支持)

在 WSL 内 RTK 完全正常工作,包括 Hook 功能:

1
2
3
# 在 WSL 内
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
rtk init -g

原生 Windows(有限支持)

在原生 Windows(cmd.exe / PowerShell),RTK 过滤器工作但 Hook 不自动重写命令:

1
2
3
4
5
6
7
# 1. 从 Releases 下载并解压 rtk-x86_64-pc-windows-msvc.zip
# 2. 将 rtk.exe 添加到 PATH
# 3. 初始化(回退到 CLAUDE.md 注入模式)
rtk init -g
# 4. 显式使用 rtk
rtk cargo test
rtk git status

重要:不要双击 rtk.exe —— 它是 CLI 工具,会打印用法并立即退出。始终从终端运行(命令提示符、PowerShell 或 Windows Terminal)。

功能 WSL 原生 Windows
过滤器 完全 完全
自动重写 Hook 支持 不支持
rtk init -g Hook CLAUDE.md
analytics 完全 完全

隐私与遥测

RTK 可收集匿名、聚合使用指标,帮助团队改进产品。遥测默认禁用,需明确同意:

1
2
3
4
rtk telemetry status    # 查看当前状态
rtk telemetry enable # 给予同意(交互式提示)
rtk telemetry disable # 撤回同意,立即停止收集
rtk telemetry forget # 撤回同意 + 删除所有本地数据 + 请求服务器端删除

收集内容

类别 数据 用途
身份 加盐设备哈希(SHA-256,不可逆) 统计唯一安装数
环境 RTK 版本、OS、架构、安装方式 确定支持平台
使用量 命令计数(24h)、总命令、Token 节省 衡量采用和价值
质量 Top 5 透传命令、解析失败数、<30% 节省命令 识别缺失/弱过滤器
生态 命令类别分布(git 45%, cargo 20% 等) 优先开发热门生态

不收集的内容:源代码、文件路径、命令参数、秘密、环境变量、个人数据、仓库内容。

可通过环境变量强制禁用:

1
export RTK_TELEMETRY_DISABLED=1

为什么 RTK 重要?

1. 成本节省

按当前 API 价格,每次会话节省数千 tokens,长期使用可节省数百美元/月。

2. 上下文质量提升

去除噪音后,AI 助手获得的是高信号密度信息,判断更准确,减少误操作。

3. 会话持久性

更少的 Token 消耗意味着上下文窗口可用更久,复杂任务不会被截断。

4. 团队协作

自动重写 Hook 让所有团队成员、所有会话、所有子代理自动受益,无需培训。


快速上手清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1. 安装 RTK
brew install rtk # macOS/Linux

# 2. 安装 Hook(选择你的 AI 工具)
rtk init -g # Claude Code / Copilot

# 3. 重启 AI 工具

# 4. 正常使用,命令自动压缩
git status # 自动重写为 rtk git status

# 5. 查看节省效果
rtk gain

# 6. 发现更多优化机会
rtk discover

结语

RTK 解决了 AI 编程助手的一个痛点:Token 消耗与噪音污染。通过智能过滤,它让 AI 助手获得高密度信息,提升判断质量,同时大幅降低 API 成本。

对于每天使用 Claude Code、Copilot、Cursor 等工具的开发者,RTK 是一个值得尝试的工具——安装简单、透明集成、效果立竿见影。

项目地址: https://github.com/rtk-ai/rtk
官方网站: https://www.rtk-ai.app
Discord 社区: https://discord.gg/RySmvNF5kF


如果你使用 AI 编程助手,不妨试试 RTK,感受一下”降噪”后的清爽体验。