之后你在 AI 会话里执行 git status,它会被自动重写成 rtk git status——AI 收到的是压缩后的输出,但你完全无感。
效果对比:
1
2
3
4
5
6
7
8
# 普通 git push (~200 tokens) # rtk git push (~10 tokens)Enumerating objects: 5, done. ok main
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), done.
To github.com:user/repo.git
abc123..def456 main -> main
1
2
3
4
5
6
# 普通 cargo test (200+ 行) # rtk cargo test (~20 行)running 15 tests FAILED: 2/15 tests
test utils::test_parse ... ok test_edge_case: assertion failed
test utils::test_format ... ok test_overflow: panic at utils.rs:18
test utils::test_edge_case ... FAILED
...150 行 backtrace...
30 分钟典型会话的估算节省:
命令
频次
原始 token
rtk 后
节省
git status
10x
3,000
600
-80%
cargo test
5x
25,000
2,500
-90%
git diff
5x
10,000
2,500
-75%
cat/read
20x
40,000
12,000
-70%
合计
~118,000
~23,900
-80%
它是怎么工作的
核心思路
RTK 是一个 CLI 代理,拦截命令输出并压缩后再交给 AI。
1
2
3
4
5
AI Agent ──"git status"──> RTK ──> git ──> 原始输出
│
过滤压缩
│
AI Agent <──────────────── RTK <──┘
对不同类型的命令,RTK 用不同策略压缩:
git 操作(add/commit/push):成功时只输出 ok,省 92%
测试命令(cargo test/pytest):只显示失败的测试,省 90%+
lint/tsc:按规则分组错误,省 80%+
文件列表(ls/tree):压缩为带计数的树状结构,省 80%
代码阅读(read/smart):可选去除注释、折叠函数体,省 30-90%
RTK 不认识的命令会原样执行,不做压缩——永远不会因为 RTK 导致命令失败。
Hook 自动重写
rtk init -g 会在你的 AI 工具配置里加一个 Hook,让每次 Bash 命令执行前自动走 RTK。以 Claude Code 为例,它在 ~/.claude/settings.json 里加了一个 PreToolUse Hook: