RTK - Rust Token Killer
RTK 是一个用 Rust 编写的 CLI 代理,在 AI 编程助手读取命令输出前进行过滤与压缩,可将常见开发命令(ls、git、测试、构建等)的输出体积降低 60-90%,单二进制、零依赖、开销低于 10ms。
爱鲜报评分
0 人评分
84k
星数
是
中文
Rust
主语言
是
活跃
192
贡献者
人工分析
EDITORIAL推荐理由
随着 Claude Code、Cursor、Codex 等 Agent 编程工具普及,命令输出占用的上下文与费用成为真实痛点。RTK 用一层轻量代理统一压缩 100+ 命令输出,接入只需一条 rtk init 命令,对现有工作流几乎无侵入。项目星数增长快、生态适配广,适合重度使用 AI 编程的团队控制成本与上下文长度。
适用场景
- Claude Code / Cursor 等 AI 编程助手日常开发
- 大型仓库中 git status、git diff、git log 输出压缩
- 测试与构建日志(cargo test、pytest、npm test)精简
- 多语言项目统一命令输出格式,降低上下文占用
- 团队控制 LLM API 调用成本
优点
- 单 Rust 二进制、零依赖,安装与分发简单
- 覆盖 100+ 常用命令,开箱即用
- 接入成本低,一条 init 命令适配主流 Agent 工具
- 压缩效果显著,官方称可减少 60-90% 输出体积
- 运行开销小(<10ms),几乎不影响命令体验
缺点
- 压缩的是 bash 输出,不等于账单同比例下降,需理性预期
- Token 数为 bytes/4 估算,绝对值不精确
- 存在 rtk 与 rtk-oss 两个同名二进制版本,不能共存,易混淆
- 部分功能采用 BUSL-1.1 许可,商业再分发需注意边界
RTK 是什么
RTK(Rust Token Killer)是一个用 Rust 编写的命令行代理,作用是在 AI 编程助手读取 shell 命令输出之前,对输出进行过滤与压缩,从而减少进入 LLM 上下文的 token 数量。
它只有一个二进制文件、零运行时依赖,官方称对常见命令可减少 60-90% 的输出体积,额外开销低于 10ms。
核心能力
RTK 会拦截并改写常见命令的输出形态,例如:
ls/tree:改为树形结构并附带文件计数,而不是每行一个条目cat/ 读取文件:优先保留签名与结构,而非完整正文grep/rg:截断超长行,按文件分组匹配结果git status/git diff/git log:紧凑统计格式、精简上下文与头部cargo test/npm test/pytest/go test:只保留失败项,通过项折叠为计数docker ps:仅保留关键字段
此外还支持 ast-grep、ruff check、sqlfluff lint、Angular 构建等场景。
快速上手
安装后针对所用 AI 工具执行一次初始化即可:
rtk init -g # Claude Code / Copilot(默认)
rtk init -g --gemini # Gemini CLI
rtk init -g --codex # Codex
rtk init -g --agent cursor # Cursor
安装后建议先确认版本与功能是否正常:
rtk --version
rtk gain # 应显示节省统计面板
注意:crates.io 上存在另一个同名
rtk项目,安装后请务必用rtk gain验证。
版本与许可
RTK 提供三个下载项,其中两个 rtk 版本安装的是同名二进制,因此不能同时安装:
| 版本 | 许可 | 内容 |
|---|---|---|
rtk |
Apache-2.0 + BUSL-1.1 | Hook 核心、全部命令过滤器、压缩引擎 |
rtk-oss |
仅 Apache-2.0 | Hook 核心与命令过滤器,不含引擎 |
rtk-proxy |
BUSL-1.1 | 压缩 API 流量的代理守护进程 |
生产环境使用免费;BUSL 限制的主要是将 RTK 或其衍生品作为商业产品或服务提供给第三方。
关于节省效果
需要理性看待官方宣传:RTK 压缩的是 bash 输出,而 bash 输出只是输入 token 的一部分,输入 token 又只是整体账单的一部分。因此压缩比例会逐层稀释。
另外 RTK 未内置分词器,报告的 token 数按 bytes / 4 估算,百分比可信,绝对数值为近似值。
适用人群
- 日常使用 Claude Code、Cursor、Codex 等 Agent 编程工具的开发者
- 希望降低上下文占用与 API 成本的团队
- 需要统一多语言项目命令输出格式的工程团队
评论
- 暂无评论,来写第一条吧。