rtk-ai / rtk

rtk-ai/rtk

open_in_new前往仓库

RTK (Rust Token Killer) 是一个高性能 CLI 代理,通过智能过滤和压缩命令输出,为 AI 编程助手减少高达 90% 的 bash 输出 token 消耗。单 Rust 二进制,零依赖,支持 100+ 命令和 16 种 AI 工具集成。

项目概览

项目概述

RTK (Rust Token Killer) 是一个高性能 CLI 代理,位于 AI 编程助手(如 Claude Code、Cursor、Copilot 等)与开发工具之间,通过智能过滤和压缩命令输出,减少高达 90% 的 bash 输出 token 消耗。项目采用 Rust 编写,提供单一二进制文件,零运行时依赖,启动开销小于 10ms。

核心功能

  • 命令输出压缩:对 ls、cat、grep、git status、git diff、cargo test、pytest 等 100+ 常用命令的输出进行智能过滤、分组、截断和去重,减少 60-99% 的 bash 输出。
  • 自动重写 Hook:通过 Hook 机制透明拦截 AI 工具的 Bash 命令,自动重写为 rtk 等价命令,实现 100% 采用率,无需手动干预。
  • 多 AI 工具集成:支持 Claude Code、GitHub Copilot、Cursor、Gemini CLI、Codex、Windsurf、Cline、OpenCode 等 16 种 AI 编码工具。
  • Token 节省分析:提供 rtk gain、rtk discover、rtk session 等命令,分析 token 节省量、发现遗漏的优化机会、跟踪采用率。
  • Tee 恢复机制:命令失败时自动保存完整原始输出到本地文件,供 LLM 重新读取,避免重复执行。
  • 可配置过滤:支持通过 TOML DSL 自定义过滤器,以及 config.toml 配置排除命令、调整行为。

适用与不适用场景

适用场景:

  • 使用 AI 编程助手(Claude Code、Cursor、Copilot 等)进行日常开发,希望降低 token 消耗和成本。
  • 需要处理大量命令行输出(如测试、构建、Git 操作)的 AI 辅助编码工作流。
  • 希望在不改变工作流程的前提下,优化 LLM 上下文窗口利用率的开发者。

不适用场景:

  • 交互式 TUI 程序(如 htop、vim、less),不兼容批处理模式。
  • 二进制输出(如图像、编译产物),无文本可过滤。
  • 无文本输出的命令,无压缩空间。
  • 需要精确 token 计数的场景(RTK 使用 bytes/4 估算,非真实 tokenizer)。

技术架构与依赖

  • 语言:Rust
  • 许可证:Apache-2.0
  • 依赖:零运行时依赖,单二进制文件
  • 架构:CLI 代理模式,通过 Hook 拦截命令,执行过滤后输出。核心模块包括命令路由、过滤引擎(Rust 模块 + TOML DSL)、token 跟踪(SQLite)、Tee 恢复、Hook 系统。
  • 性能:启动时间 <10ms,内存占用 <5MB,二进制大小 <5MB。

安装与快速开始

安装方式:

# Homebrew (macOS/Linux)
brew install rtk

# 快速安装 (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

# Cargo (注意名称冲突,使用 Git URL)
cargo install --git https://github.com/rtk-ai/rtk

# 预编译二进制:从 GitHub Releases 下载对应平台包

快速开始:

# 1. 为 AI 工具初始化 (以 Claude Code 为例)
rtk init -g

# 2. 重启 AI 工具,然后测试
git status  # 自动重写为 rtk git status

# 3. 查看节省统计
rtk gain

典型使用方法

# 文件操作
rtk ls .                        # 紧凑目录树
rtk read file.rs                # 智能文件读取
rtk grep "pattern" .            # 分组搜索结果

# Git 操作
rtk git status                  # 紧凑状态
rtk git log -n 10               # 单行提交
rtk git diff                    # 压缩 diff

# 测试运行器
rtk cargo test                  # 仅显示失败 (-90%)
rtk pytest                      # Python 测试 (-90%)
rtk go test                     # Go 测试 (-90%)

# 构建与 Lint
rtk cargo build                 # 仅错误和警告 (-80%)
rtk tsc                         # TypeScript 错误分组
rtk ruff check                  # Python Lint (-80%)

# 容器
rtk docker ps                   # 紧凑容器列表
rtk kubectl pods                # 紧凑 Pod 列表

# 分析
rtk gain                        # 节省统计
rtk discover                    # 发现遗漏的节省机会

配置与部署要点

配置文件: ~/.config/rtk/config.toml (Linux) 或 ~/Library/Application Support/rtk/config.toml (macOS)

[hooks]
exclude_commands = ["curl", "playwright"]  # 排除自动重写的命令

[tee]
enabled = true          # 失败时保存原始输出
mode = "failures"       # "failures", "always", 或 "never"

环境变量:

  • RTK_DISABLED=1:禁用单条命令的 RTK 处理
  • RTK_TELEMETRY_DISABLED=1:禁用遥测
  • RTK_TEE_DIR:覆盖 tee 目录

部署要点:

  • 安装后需重启 AI 工具使 Hook 生效。
  • Windows 原生支持 Hook(v0.37.2+),但需从终端运行,不要双击 exe。
  • 部分过滤器依赖 ripgrep (rg),需确保其已安装并在 PATH 中。
  • 遥测默认禁用,需显式同意(rtk telemetry enable)。

限制、风险与许可证

限制:

  • Token 计数为估算值(bytes/4),非真实 tokenizer,绝对数字不精确。
  • 仅过滤 bash 输出,不减少提示词、系统提示、对话历史或输出 token。
  • 部分命令(如 Claude Code 内置 Read/Grep 工具)不经过 Bash Hook,需手动使用 rtk 命令。

风险:

  • 存在名称冲突:crates.io 上另有名为 rtk 的项目(Rust Type Kit),安装时需注意。
  • 自定义过滤器(.rtk/filters.toml)需显式信任后才生效,编辑后需重新信任。

许可证: Apache-2.0

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、CHANGELOG、文档目录(docs/)等。
  • 分析时间:2026-09-02(基于最新 release 日期)