RTK 节省 60% 的 Token。我让它节省了 90%。
Source: Dev.to
RTK 是 Claude Code 生态系统中最好的工具之一——拥有 28 k GitHub 星标,在 git、test 和 ls 输出上可节省 60‑90 % 的 token,并且提供 34 个带有基于 TOML 的过滤器的命令模块。如果你使用 Claude Code 且尚未安装 RTK,赶快去安装吧。
RTK 的盲点
- 不压缩错误堆栈跟踪。
- 不处理
npm安装警告。 - Docker 构建日志原样通过。
- ANSI 转义码(旋转指示器、进度条、颜色码)直接流入你的上下文窗口。
我 fork 了 RTK 并构建了 ContextZip 来填补这些空白。下面是直接对比。
RTK 的功能 与 ContextZip 的新增功能对比
| 类别 | RTK | ContextZip |
|---|---|---|
git diff/log/status | ✅ | ✅ (inherited) |
ls/find/tree | ✅ | ✅ (inherited) |
| Test output (Jest, pytest) | ✅ | ✅ (inherited) |
| Cargo/Rustc output | ✅ | ✅ (inherited) |
| Error stacktraces | ❌ | ✅ — 5 种语言 |
| ANSI/spinner cleanup | ❌ | ✅ — 预处理器 |
| npm/pip install noise | ❌ | ✅ — 保持安全 |
| Docker build logs | ❌ | ✅ — 平均节省 88 % |
| Build error grouping | ❌ | ✅ — 去重 |
| Web page extraction | ❌ | ✅ — 仅文章 |
ContextZip 继承了 RTK 的全部 34 个命令模块和 60 多个 TOML 过滤器,保持不变。RTK 所压缩的所有内容,ContextZip 也以相同方式压缩。新增的六个过滤器作用于 RTK 未修改的输出。
6个新过滤器
错误堆栈压缩
支持 Node.js、Python、Rust、Go 和 Java。去除框架/库的调用帧,仅保留你的代码帧和错误信息。例如:30 行的 Express 堆栈跟踪会压缩为 3 行。
节省率: Node.js 93%,Rust 80%,所有语言平均 58.7%。
ANSI 预处理器
在所有其他过滤器之前运行。去除转义码、光标移动序列、旋转指示字符(⠋⠙⠹⠸)、进度条和装饰性行,同时保留错误标记、时间戳和警告前缀。
节省率: 平均 82.5%。
包安装压缩
删除 npm warn deprecated 垃圾信息、pip 下载进度以及 Yarn 解析噪声。保留安装摘要、安全审计结果和任何漏洞警告。
节省率: npm 上 95%,且不丢失任何安全信息。
Docker 构建压缩
- 成功: 将所有层哈希和拉取进度合并为一行摘要,显示阶段数量和持续时间。
- 失败: 保留失败的步骤、错误输出及其上下文。
节省率: 平均 88.2%,在大型多阶段构建中可达 97%。
构建错误分组
相同的错误(例如 TS2322: Type 'string' is not assignable to type 'number')会被分组;错误信息仅出现一次,并附带紧凑的 file:line 引用列表。
节省率: 平均 55.6%。
网页提取
contextzip web 获取页面并去除导航、页脚、侧栏、Cookie 横幅、广告和脚本标签。返回保留代码块和表格的主要内容——非常适合在不带周边界面的情况下将文档拉入上下文。
102‑测试基准:真实数字
| 类别 | 案例数 | 平均节省 | 最佳 | 最差 |
|---|---|---|---|---|
| Docker 构建 | 10 | 88.2 % | 97 % | 77 % |
| ANSI/旋转指示器 | 15 | 82.5 % | 98 % | 41 % |
| 错误堆栈跟踪 | 20 | 58.7 % | 97 % | 2 % |
| 构建错误 | 15 | 55.6 % | 90 % | -10 % |
| 软件包安装 | 12 | 72.3 % | 95 % | 15 % |
| 网页提取 | 10 | 68.4 % | 89 % | 34 % |
加权总计: 102 案例,61.1 % 平均节省。
最差的情况是真实存在的:Rust 在短追踪时会出现 panic(节省 2 %),单个构建错误甚至会导致 -10 % 的净变化(格式化开销超过去除的噪声)。这些极端情况会触发阈值直通——如果压缩率低于 10 %,则原始输出会保持不变地直接输出。
结合 RTK 的继承过滤器,在典型的调试会话中,总体节省可达 70‑90 %。
安全保证
ContextZip 对噪声采取激进策略,但对信号保持保守。永不违反以下三条规则:
- 错误信息永不被删除。 实际的错误文本(
TypeError、ENOENT、panic!、segfault)始终会通过。 - 安全警告永不被删除。
npm audit漏洞、CVE 引用以及身份验证失败都会被保留。 - 测试失败细节永不被删除。 预期值与实际值、断言信息以及失败的测试名称都会通过。
如果过滤器无法自信地将某些内容归类为噪声,则会原样通过。
从 RTK 迁移
# 卸载 RTK(可选 — 它们不会冲突)
# 安装 ContextZip
curl -fsSL https://raw.githubusercontent.com/jee599/contextzip/main/install.sh | bash
安装脚本会自动设置 Claude Code 的 hook。重新启动 Claude Code 即可完成。如果你之前配置了 RTK 的 hook,ContextZip 会替换它——使用相同的 hook 机制、相同的二进制位置模式。
你的现有工作流保持不变。所有在 Claude Code 中运行的命令都会自动压缩。唯一可见的差别是:节省行现在显示为 contextzip 而不是 rtk,且在错误频发的会话中数值会更高。