RTK Token 优化工具

CLI 代理工具,在 AI 编程工具执行 Shell 命令时自动压缩输出,降低 60-90% 的 Token 消耗。

项目地址:https://github.com/rtk-ai/rtk

这是什么

RTK(Rust Token Killer)是一个 CLI 代理工具,解决 AI 编程中上下文窗口被无用输出填满的问题。

AI 编程工具执行 Shell 命令时,原始输出包含大量噪音:测试用例名称、ANSI 颜色码、重复日志、冗余格式等。RTK 在输出到达 LLM 上下文之前自动过滤和压缩,让 AI 只看到关键信息。

核心数据:60-90% Token 节省,<10ms 性能开销,纯 Rust 单二进制,零依赖。

主要功能

  • 智能过滤:自动去掉注释、空格、模板代码、ANSI 颜色码等格式噪音
  • 分组聚合:文件按目录聚合,错误按类型聚合(100 个 lint 错误 → 按规则分组的摘要)
  • 截断保留:保留关键上下文,剪掉重复冗余(git log 500 字符 → "5 commits, +142/-89")
  • 去重压缩:重复日志行合并为带计数的单行([ERROR] Connection failed (x42))
  • 100+ 命令支持:ls、git 系列、测试命令、Docker、AWS 等主流开发场景
  • 多工具适配:Claude Code、Cursor、GitHub Copilot、Gemini CLI、Windsurf、Cline 等 10+ 款工具

工作原理

RTK 通过 Hook 机制透明拦截 AI 工具的 Shell 命令。以 Claude Code 为例:

  1. 你在对话中触发一条 Shell 命令(如 git status)
  2. RTK Hook 自动将命令改写为 rtk git status
  3. RTK 执行命令并压缩输出
  4. AI 收到的是压缩后的精简输出,而非原始噪音

四种压缩策略按命令类型智能组合:

策略做什么例子
智能过滤剥离格式噪音、注释、颜色码测试框架装饰性输出 → 纯结果
分组聚合同类项合并统计100 个 lint 错误 → 按规则分类摘要
截断保留剪掉冗余,保留核心500 字符 git log → 20 字符摘要
去重压缩重复行合并计数42 行相同错误 → 1 行带 (x42)

安装

三种方式任选:

Homebrew(macOS/Linux):

brew install rtk

安装脚本(Linux/macOS):

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

安装后加到 PATH:

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

cargo install(所有平台):

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

Windows:从 GitHub Releases 下载预编译二进制,解压即用。

安装后验证:

rtk gain

输出 Token 节省统计说明装对了。如果功能不对,检查是否误装了另一个同名项目(见下方排错)。

初始化 Hook

RTK 支持 13+ 款 AI 编程工具,根据你使用的工具选择对应的初始化命令:

# Claude Code
rtk init -g                          # PreToolUse hook

# Codex
rtk init -g --codex                  # AGENTS.md + RTK.md 指令

# Gemini CLI
rtk init -g --gemini                 # BeforeTool hook

# Cursor
rtk init -g --agent cursor           # hooks.json

# GitHub Copilot
rtk init -g --copilot

# Windsurf
rtk init -g --agent windsurf

# Cline / Roo Code
rtk init -g --agent cline

# OpenCode
rtk init -g --opencode

# Google Antigravity
rtk init -g --agent antigravity

# Hermes
rtk init -g --agent hermes

根据提示修改对应工具的配置文件,然后重启工具即可。

验证 Hook 生效:

rtk init --show   # 查看 Hook 安装状态
rtk git status    # 手动测试,应看到压缩后的输出

查看节省统计

rtk gain              # 汇总统计
rtk gain --graph      # ASCII 折线图(近 30 天)
rtk gain --history    # 最近命令历史
rtk gain --daily      # 按天细分

排错

  • 名字冲突:GitHub 上有两个同名 rtk 项目。rtk gain 能显示 Token 统计的是 Rust Token Killer(rtk-ai/rtk),不是 Rust Type Kit(reachingforthejack/rtk)
  • Hook 不生效:确认重启了 AI 工具,检查配置文件是否正确写入
  • 只对 Bash 生效:Claude Code 内置的 Read、Grep、Glob 等 MCP 工具不经过 Bash Hook,不受影响

适用场景

  • 适合:频繁执行 dev 命令、大项目输出处理、长会话上下文紧张
  • 不太需要:快速探索(1-2 条命令)、小输出(<100 字符)、已用 MCP 原生工具