rtk 是什么?

RTK(Rust Token Killer)是本地 CLI 代理,用命令专属规则压缩开发命令输出,再把较短结果交给编码 Agent。它是单个 Rust 二进制,覆盖 100+ 命令,并能通过各 Agent 的 hook 或插件自动把 shell 调用改写为 `rtk` 调用。

⭐ 83,035 Stars 🍴 5,272 Forks Rust — 作者: rtk-ai
来源:github.com/rtk-ai/rtk/blob/master/README.md 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

RTK 直接处理编码 Agent 常见的冗长 shell 输出,并在 v0.49.0 加入 SQLite recall、sqlfluff 过滤和更安全的管道改写。官方也澄清“最多减少 90%”指 bash 输出,不等于账单减少 90%。两期 Bing 都出现一条 `how to setup headroom and rtk in your mac globally`,各 1 展示、1 点击,这是持续的项目相关长尾,但不是精确项目词。

来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/rtk-ai…

核心功能

按命令过滤

为 ls/tree、git、测试、lint、容器、IaC、AWS 等命令保留失败与关键字段,折叠成功项和重复噪声。

来源:github.com/rtk-ai/rtk/blob/master/README.md
自动改写 hook

针对 Claude Code、Codex、Gemini、Cursor 等宿主安装 hook 或插件,把 Bash 调用透明改写为 RTK。

来源:github.com/rtk-ai/rtk/blob/master/README.md
统计与发现

`rtk gain` 展示估算节省,`rtk discover` 查找遗漏机会;估算使用 bytes/4,不是精确 tokenizer 账单。

来源:github.com/rtk-ai/rtk/blob/master/README.md
失败驱动 recall

v0.49.0 增加内容寻址的 SQLite recall,在截断或失败时保存可恢复尾部,并跟踪过滤器效率。

来源:github.com/rtk-ai/rtk/releases/tag/v0.49.0

技术架构

Agent 的 shell hook 先识别命令并改写为 RTK,RTK 再执行真实程序、捕获 stdout/stderr,并按命令类型应用过滤、分组、截断和去重。输出交回 Agent,原命令退出与信号需要透传。v0.49.0 的 recall 使用本地 SQLite 保存被省略内容,必要时可按内容哈希取回。内置 Read/Grep/Glob 不经过 Bash hook,必须显式使用 RTK 命令才会过滤。

来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/rtk-ai…

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) 目标开发命令本身 部分过滤器需要 ripgrep部分过滤器需要 r… 可选 Homebrew/winget/Cargo可选 Homebrew/… 按命令过滤 自动改写 hook 统计与发现 失败驱动 recall rtk 项目本体 核心功能 关键依赖

技术栈

语言Rust框架单一 CLI 二进制 + Agent hook/plugin + 本地 SQLite recall
目标开发命令本身部分过滤器需要 ripgrep可选 Homebrew/winget/Cargo
macOS/Linux/Windows/WSL;本地配置、hook、统计和 recall 数据
来源:github.com/rtk-ai/rtk/blob/master/README.md

快速上手

从官方 v0.49.0 Release 下载平台资产并核对校验信息,运行 `rtk --version` 和 `rtk gain` 确认没有装到 crates.io 的同名 Rust Type Kit。先用 `rtk init --show` 审阅拟写入的 hook,再针对宿主执行相应 `rtk init`。用一个可预期失败的测试命令比对原始输出和 RTK 输出,并保留 `rtk proxy` 或直接原命令作为排障回退。
来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/rtk-ai…

使用场景

适合命令输出量大、上下文经常被测试日志、git diff、容器日志或云 CLI 占满的编码 Agent。它只能缩短经过 hook 的 shell 输出,不能缩短系统提示、用户提示、模型输出或宿主内置文件工具。

来源:github.com/rtk-ai/rtk/blob/master/README.md

优势与局限

优势

  • 单 Rust 二进制且覆盖多平台
  • 按命令语义压缩而非统一截断
  • 支持多种 Agent hook/plugin
  • 有统计、发现和 recall 回取机制

局限

  • 减少的是 shell 输出,不是等比例降低总 token 或费用
  • 截断和摘要可能隐藏排障细节
  • hook 会改写命令执行路径,需验证退出码、管道与信号
  • 默认收集匿名聚合遥测,可按需关闭
来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/rtk-ai…

最新版本

当前稳定版 v0.49.0 发布于 2026-09-11。它加入 sqlfluff JSON 过滤、内容寻址 SQLite recall、管道安全改写,并修复 diff、grep、信号透传和多个过滤器的静默丢失问题;v0.50.0 的 dev RC 不能当稳定版。

来源:github.com/rtk-ai/rtk/releases/tag/v0.49.0;https://github.com/rtk-ai/…

实测与证据

status: official_docs_checked_not_run  |  checked_at: 2026-09-23  |  environment: 核对官方 README、DISCLAIMER、v0.49.0 Release、安装与 hook 说明  |  limitations: 未安装二进制,未修改任何 Agent hook/配置,未执行开发命令,未创建统计或 recall 数据库,也未验证官方节省比例  |  observed_output: 当前稳定版 v0.49.0 发布于 2026-09-11;官方说明节省比例是 bash 输出估算,内置工具不经过 hook;v0.49.0 新增 SQLite recall 与 sqlfluff 过滤

来源:github.com/rtk-ai/rtk/releases/tag/v0.49.0;https://github.com/rtk-ai/…

同类项目对比

相比 Headroom 的库、HTTP proxy、MCP 和多算法内容压缩,RTK 更窄:它在本地 shell 层用命令专属过滤器压缩输出,并用 hook 自动改写命令。只想减少 git/test/docker 等终端噪声时 RTK 边界更清楚;还要压缩 RAG、文件、会话历史或非 CLI 工具结果时再评估 Headroom。

来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/dschum…

总结评价

RTK 对 shell 输出占用上下文的问题给出了边界清楚的本地方案。采用时要把收益理解为输出压缩,先审阅 hook、用失败命令验证信息保真,并保留绕过与 recall;不要用 `gain` 的估算值直接推算账单。

来源:github.com/rtk-ai/rtk/blob/master/README.md;https://github.com/rtk-ai…

常见问题

RTK v0.49.0 宣称减少 90% token,账单也会少 90% 吗?

不会。官方说明该数字是 bash 输出减少量;总费用还包含系统提示、对话历史、其他输入和模型输出,而且 token 数按 bytes/4 估算。

RTK 会处理 Claude Code 的 Read、Grep 和 Glob 吗?

不会自动处理。这些内置工具不经过 Bash hook;需要改用 shell 命令或显式调用 `rtk read`、`rtk grep` 和 `rtk find`。

怎样避免安装到 crates.io 上另一个同名 rtk?

优先用官方 Release、Homebrew 或 winget。安装后运行 `rtk gain`;若命令不存在,应卸载错误包并按官方仓库给出的 Cargo Git 地址重装。

RTK 截断后找不到关键日志怎么办?

先用 recall 取回被省略内容,或用 `rtk proxy`/原始命令绕过过滤。团队应为故障排查和取证流程保留明确的原始输出路径。

资料与核验范围
本文依据项目公开资料整理。版本、安装命令和功能边界可能随上游更新,请以所列来源和项目当前版本为准。 资料核对时间: 2026-09-23 13:55.

参考材料:README、GitHub API、依赖文件