rtk · Rust Token Killer · v0.43.0 · never-worse 输出保护 · OpenShift · Pulumi —— 发布仅五个月、收获 66K+ stars 的 CLI 过滤代理, 在最新版本为所有过滤路径加上了「绝不比原始输出更差」的安全底线。
项目定位:CLI 输出与 LLM 上下文之间的代理层
rtk-ai/rtk(Rust Token Killer)是一个高性能 CLI 代理工具, 用 Rust 编写,编译为单二进制文件,零运行时依赖。 它运行在 LLM 编程工具(Claude Code、Cursor、Gemini CLI、Copilot 等) 与宿主 Shell 之间,拦截每一次命令执行,对 stdout/stderr 做智能过滤后再送给 LLM 上下文。
根据项目方公开的统计,在 30 分钟 Claude Code 会话中, RTK 可将总 token 消耗从约 118,000 降为约 23,900 —— 降幅约 80%。 对 git status、ls、cat 等高频命令,过滤率可达 70–92%; 对 cargo test、pytest 这类测试输出,节省率高达 90%。 项目自 2026 年 1 月发布以来,已获得 66,775 个 Star、4,125 个 Fork, 社区活跃度极高。
用户顾虑:过滤比不过滤更「贵」怎么办
「过滤一定会损失信息」—— 这是任何使用输出拦截方案的用户 都会有的本能担忧。但在 AI 编程场景下,损失信息还不是最糟的情况, 更糟的是:拦截器自作聪明地「整理」输出,结果把原本清晰的原始输出 弄得更啰嗦、占用了更多 token。
RTK 的过滤系统由三大组件构成:按命令类型编写的过滤函数
(cmds/ 目录,按语言和工具生态组织)、TOML 配置文件
(filters/ 目录,90+ 个预定义规则)、以及输出跟踪系统
(core/tracking.rs,预估 token 数并记录节省情况)。
但在 v0.43.0 之前,对「过滤后居然比原始输出还大」的兜底,
仅零星散落在部分命令模块中,没有一个统一的安全网。
当你在生产环境中跑一轮 CI 流水线,或在使用 rtk read
读取大文件时偶发格式膨胀却未察觉,额外的 token 开销就会悄悄累积。
v0.43.0 新增能力与新玩法
这一版最值得关注的变更集中在两条线上:统一安全网与生态扩展。
统一安全网:never-worse 输出保护
core/guard.rs 导出的 never_worse() 函数被系统性地应用到
多个关键路径:core 的过滤函数出口、pipe 模块的过滤结果、
read 模块的输出检查、docker/kubectl 等容器命令的过滤输出、
git 模块的 status 失败路径。
只要 estimate_tokens(filtered) > estimate_tokens(raw),
RTK 就会无条件退回原始输出。这个保护机制不仅覆盖了新场景,
还修复了旧版中的隐性漏洞 —— 比如 git status 在失败路径上
原本会丢失退出码,这一版也一并补上了。
生态扩展:OpenShift 与 Pulumi
v0.43.0 新增了两大类命令的过滤支持:
• OpenShift (oc):共享 container.rs 中已有的 k8s 过滤基础设施,
支持 oc get pods、oc get services、oc logs 等核心操作,
输出格式与 kubectl 层保持一致。
• Pulumi:新增 pulumi preview、pulumi up、pulumi destroy、
pulumi refresh、pulumi stack 五个子命令的过滤处理,
剥离掉进度条、URL、持续时间等噪音,只保留关键变更摘要和资源状态。
日常使用无需任何额外配置 —— RTK 的 hook 系统会自动识别命令前缀
并将其重写为 rtk pulumi preview 或 rtk oc get pods。
如果习惯手动调用,也可以直接执行:
rtk oc get pods
rtk pulumi up
rtk git push
所有命令的输出都会先经过统一过滤 + never_worse 检查。
简析:永不退步的合约是如何实现的
never_worse() 的设计思路非常直接:不依赖复杂的质量评估模型,
只比较 token 数量的估算值。估算函数 estimate_tokens
使用 input.len() / 4 的近似算法(一个 token 约 4 个字节),
这在 CLI 输出的场景下已经足够可靠 —— 过滤的核心目标是减少 token,
因此 token 数就是最重要的质量指标。
fn never_worse(raw, filtered) -> output {
if estimate_tokens(filtered) > estimate_tokens(raw) {
raw // 退回原始输出
} else {
filtered // 返回过滤结果
}
}
这个函数被定义在 core/guard.rs 中,作为公共基础设施被
container.rs、read、pipe、core/filter.rs
以及 git 模块引用。每个模块在过滤完输出后,
最后一步都是调用 never_worse() 做一次保底检查。
换句话说,v0.43.0 把原来「分散信任各个过滤函数」的架构,
升级成了「每个过滤路径必须通过 guard 才能输出」的合约式设计。
配合这一版对 git 退出码传播、grep 引擎回退、
dotnet 测试失败去重、vitest 报告器保留等二十多项 bug 修复,
RTK 正在从「能省 token」向「在任何边界条件下都能安全地省 token」演进。
对于已经将 AI 编程工具纳入日常开发流程的团队来说,
这个方向比单纯的新命令支持更有长期价值。
夜雨聆风