## 项目概述

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。

## 安装与快速开始

**安装方式：**

```bash
# 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 下载对应平台包
```

**快速开始：**

```bash
# 1. 为 AI 工具初始化 (以 Claude Code 为例)
rtk init -g

# 2. 重启 AI 工具，然后测试
git status  # 自动重写为 rtk git status

# 3. 查看节省统计
rtk gain
```

## 典型使用方法

```bash
# 文件操作
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)

```toml
[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 仓库: https://github.com/rtk-ai/rtk
- 官方网站: https://www.rtk-ai.app
- Discord 社区: https://discord.gg/RySmvNF5kF
- 最新版本: v0.47.0 (2026-09-02)

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、CHANGELOG、文档目录（docs/）等。
- 分析时间：2026-09-02（基于最新 release 日期）