RTK 在 Windows 上的安装、使用,以及集成到 Codex 和 Claude Code
这是一篇可直接照着操作的 Windows 教程:从安装
rtk,到日常使用,再到分别集成进 Codex 和 Claude Code。本文示例基于 Windows AMD64 环境和
rtk 0.35.0。文中的本机路径、用户名和本地目录都已经做了脱敏处理,统一用%USERPROFILE%、%LOCALAPPDATA%、<用户名>这类占位符表示。
先说结论
rtk 是一个给 AI 编程助手用的命令行代理层。它不会替代 git、go test、npm、pytest 这些工具,而是把原本很长、很吵、很浪费上下文的终端输出压缩成更适合 LLM 消化的格式。官方把它称为 “A high-performance CLI proxy designed to filter and summarize system outputs before they reach your LLM context”。1
如果你经常在 Codex、Claude Code、Cursor、Gemini CLI 这类代理式开发工具里工作,rtk 的价值非常直接:
- 看
git status、git diff、grep、test结果时,输出会短很多。 - 失败信息更聚焦,成功信息更安静。
rtk gain可以统计你到底省了多少 tokens。1
目录
- 安装前必须知道的一件事
- 在 Windows 上安装
rtk - 安装成功后,RTK 到底怎么用
- 集成到 Codex
- 集成到 Claude Code
- Codex 和 Claude Code 的差异
rtk gain怎么看、怎么清空- Windows 上最常见的排错点
- 卸载与回滚
- 一套最实用的推荐方案
安装前必须知道的一件事
官方文档特别提醒:有两个完全不同的项目都叫 rtk。如果你装错了,命令名虽然也叫 rtk,但你得到的根本不是这个“Rust Token Killer”。官方给出的最直接识别方式就是:安装后执行 rtk gain,能看到 token savings 统计,才说明你装的是对的版本。2
所以不要只看:
rtk --version
还要看:
rtk gain
如果 rtk --version 能跑,但 rtk gain 不对,那大概率装错包了。2
在 Windows 上安装 rtk
如果你只想先看整体顺序,可以先看这张流程图:
flowchart TD
accTitle: RTK Windows Workflow
accDescr: 从 Windows 安装 RTK,到验证、再到集成进 Codex 或 Claude Code 的流程图。
start["🪟 Windows 安装 RTK"]
verify["✅ 验证安装<br/>rtk --version<br/>rtk gain"]
choose["🤖 选择集成目标"]
codex["Codex<br/>rtk init -g --codex"]
claude["Claude Code<br/>rtk init -g"]
codex_use["手动或按指令使用<br/>rtk git status<br/>rtk read ..."]
claude_use["Bash 命令自动改写为 rtk ...<br/>git status -> rtk git status"]
stats["📊 rtk gain 查看收益"]
start --> verify
verify --> choose
choose --> codex
choose --> claude
codex --> codex_use
claude --> claude_use
codex_use --> stats
claude_use --> stats
classDef install fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef choice fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f
classDef usage fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
class start,verify install
class choose choice
class codex,claude,codex_use,claude_use,stats usage
方式一:直接使用官方预编译二进制
这是更推荐的方式,尤其适合没有 Rust 工具链,或者只是想尽快用起来的人。
官方 README 明确提供了 Windows 预编译包,压缩包是:
rtk-x86_64-pc-windows-msvc.zip
1. 下载压缩包
打开官方仓库的 Releases 页面,下载 Windows 对应 zip 包:3
- 仓库:
https://github.com/rtk-ai/rtk - Releases:
https://github.com/rtk-ai/rtk/releases - 压缩包:
rtk-x86_64-pc-windows-msvc.zip
2. 解压并把 rtk.exe 放到 PATH 中的目录
在 Windows 上,你需要把 rtk.exe 放进一个已经在 PATH 里的目录,或者自己新建一个目录再加进 PATH。
常见做法有两种:
- 放进你已经在用的目录,比如
%USERPROFILE%\AppData\Roaming\npm - 自建目录,比如
%USERPROFILE%\bin,再把它加入用户级PATH
3. 验证安装
在 Windows 上建议至少跑这 3 条:
rtk --version
rtk gain
where.exe rtk
预期结果:
rtk --version能返回版本号rtk gain不再是 “command not found”where.exe rtk能告诉你rtk.exe究竟从哪里被调用
方式二:使用 Cargo
如果你的机器已经装了 Rust,也可以直接走源码安装。
cargo install --git https://github.com/rtk-ai/rtk
不建议默认使用下面这条:
cargo install rtk
原因和前面一样:同名项目冲突,容易装错。2
Cargo 安装完成之后,同样要执行:
rtk --version
rtk gain
where.exe rtk
安装成功后,RTK 到底怎么用
rtk 的核心用法非常简单:
把原来会产生很多终端输出的命令,改成前面加一个
rtk。
例如:
rtk git status
rtk git diff
rtk read README.md -n -m 80
rtk grep "func main" . -t go
rtk test go test ./...
rtk err npm run build
rtk summary pnpm lint
rtk gain --project
常用命令分类
| 场景 | 原始命令 | RTK 写法 | 作用 |
|---|---|---|---|
| 看 Git 状态 | git status |
rtk git status |
压缩状态输出 |
| 看 diff | git diff |
rtk git diff |
更聚焦地展示变更 |
| 读大文件 | cat README.md |
rtk read README.md -n -m 120 |
自动截断、保留重点 |
| 搜代码 | rg "pattern" |
rtk grep "pattern" . |
分组展示匹配结果 |
| 跑测试 | go test ./... |
rtk test go test ./... |
优先显示失败信息 |
| 只看错误 | npm run build |
rtk err npm run build |
过滤无关成功日志 |
| 看统计 | 无 | rtk gain |
查看节省的 tokens |
最值得先记住的 5 条
rtk git status
rtk read <file> -n -m 120
rtk grep "<pattern>" . -t go
rtk test <你的测试命令>
rtk gain --project
如果你想临时拿回“原始输出”
可以用:
rtk proxy git diff
这个命令会直接透传原始命令,但仍保留 RTK 的 tracking 逻辑。1
集成到 Codex:推荐全局集成
如果你在用 OpenAI 的 Codex CLI,官方建议的集成命令是:1
rtk init -g --codex
官方 README 对 Codex 模式的描述非常明确:
- 会创建
~/.codex/RTK.md - 会创建或更新
~/.codex/AGENTS.md AGENTS.md中会加入@RTK.md引用- Codex 会把这些文件当作全局指令读取1
1. 为什么推荐 -g --codex
因为这是全局集成,不会去碰你当前项目里的文档文件。对已经有自己 AGENTS.md 规则的仓库来说,这通常更稳。
执行:
rtk init -g --codex
之后,生成的是:
%USERPROFILE%\.codex\RTK.md%USERPROFILE%\.codex\AGENTS.md
并且 AGENTS.md 里应该是:
@RTK.md
2. 如何验证 Codex 集成是否生效
用下面这条命令:
rtk init -g --codex --show
rtk Configuration (Codex CLI):
[ok] Global RTK.md: C:\Users\shihao\.codex\RTK.md
[ok] Global AGENTS.md: @RTK.md reference
[ok] Local RTK.md: RTK.md
[ok] Local AGENTS.md: @RTK.md reference
Usage:
rtk init --codex # Configure local AGENTS.md + RTK.md
rtk init -g --codex # Configure ~/.codex/AGENTS.md + ~/.codex/RTK.md
rtk init -g --codex --uninstall # Remove global Codex RTK artifacts
正常情况下,你应该能看到当前 Codex 集成状态,而不是重新进入安装流程。
3. Codex 里集成后到底怎么用
这里有一个关键差异:
Codex 模式不是靠 hook 自动改写命令,而是靠全局指令提醒代理优先使用
rtk。
也就是说,在 Codex 里你最稳妥的使用方式仍然是:
rtk git status
rtk read README.md -n -m 80
rtk grep "handler" . -t go
rtk test go test ./...
4. Codex 模式的一个常见误解
如果你看到:
[warn] No hook installed
不要马上觉得集成失败了。
当前版本里,这个提示更偏向“没有安装 Claude 风格的 hook”。而 Codex 的 --codex 模式本来就不是 hook-first 的集成方式,所以要结合 rtk init -g --codex --show 和实际使用效果一起判断。1
5. 如果你只想给当前项目单独开启 Codex 集成
可以使用:
rtk init --codex
这会在当前项目里写本地 AGENTS.md 和 RTK.md。1
如果你的仓库本来就已经有自己的 AGENTS.md 规则,建议先谨慎一点。对大多数人来说,全局 -g --codex 更合适。
6. 集成到 Codex 之后,日常该怎么提问
你可以把下面这些当作比较“顺手”的写法:
方式一:直接把命令写全
请运行 rtk git status
请用 rtk read 看一下 README.md
请用 rtk grep 搜索 "CreateShortURL"
请用 rtk test 跑 go test ./...
方式二:让代理默认偏向 RTK
如果全局 RTK.md 已经生效,很多时候你也可以直接说:
帮我看一下当前 git 状态
帮我读一下 README
帮我搜一下哪个文件里有这个函数
但从可预期性来说,把 rtk 明写出来更稳。特别是当你希望代理一定使用压缩后的 shell 输出时。
方式三:问题排查时配合 gain
rtk gain --project
rtk gain --project --history
RTK Token Savings (Global Scope)
════════════════════════════════════════════════════════════
Total commands: 28
Input tokens: 43.2K
Output tokens: 33.9K
Tokens saved: 12.4K (28.8%)
Total exec time: 2.5s (avg 87ms)
Efficiency meter: ███████░░░░░░░░░░░░░░░░░ 28.8%
[warn] No hook installed — run `rtk init -g` for automatic token savings
By Command
───────────────────────────────────────────────────────────────────────
# Command Count Saved Avg% Time Impact
───────────────────────────────────────────────────────────────────────
1. rtk read 10 9.0K 29.3% 0ms ██████████
2. rtk git diff 1 3.1K 41.7% 187ms ███░░░░░░░
3. rtk git status 3 278 60.9% 254ms ░░░░░░░░░░
4. rtk git log 3 84 25.2% 150ms ░░░░░░░░░░
5. rtk git branch 1 6 75.0% 104ms ░░░░░░░░░░
6. rtk git diff docs/blo... 2 2 100.0% 289ms ░░░░░░░░░░
7. rtk grep 8 0 0.0% 46ms ░░░░░░░░░░
───────────────────────────────────────────────────────────────────────
这两条很适合用来回头看看:最近哪些命令最省 tokens,哪些命令其实没省多少。
集成到 Claude Code:这是 RTK 最强的场景之一
对 Claude Code,官方给出的默认推荐命令是:1
rtk init -g
如果你不想手动确认 patch,可以用:
rtk init -g --auto-patch
官方 README 和 INSTALL 都说明了 Claude Code 集成的大体行为:12
- 安装 hook
- 创建
~/.claude/RTK.md - 在
~/.claude/CLAUDE.md中加入@RTK.md - patch
settings.json
1. Claude Code 集成后为什么体验更“自动”
因为 Claude Code 默认是通过 PreToolUse hook 来拦截 Bash 工具调用的。官方 README 的原话是:
- Claude Code:
PreToolUse hook (bash) - Hook transparently rewrites Bash commands
- 例如
git status -> rtk git status1
这意味着:
你在 Claude Code 里让它执行:
git status
最终真正落到 shell 的,很可能是:
rtk git status
也就是说,Claude Code 这边的 RTK 集成是“自动改写”路线。
2. 一个必须知道的限制
官方 README 同时也强调了一件事:1
Hook 只会作用在 Bash tool calls 上。
像 Claude Code 内建的 Read、Grep、Glob 这类工具,并不会自动经过这个 Bash hook,所以不会被透明改写。1
这一点很重要,因为很多人装完之后会以为“所有操作都会自动变成 RTK”。实际上不是:
- Bash 命令:会自动改写
- 内建读取类工具:不会自动改写
3. Claude Code 的验证方式
安装后可以这样检查:
rtk init --show
你应该能看到类似:
- Hook: ok
- RTK.md: ok
- Global
~/.claude/CLAUDE.md: 已配置 - settings.json: 已配置 hook
然后重启 Claude Code,再试一次普通命令:
git status
如果 hook 已经正常工作,Claude Code 实际拿到的会是被 RTK 压缩过的输出。12
4. Claude Code 里推荐怎么用
虽然自动改写已经很好用,但更稳妥的建议是:
- 日常随手操作,可以让 Claude 直接执行原始 Bash 命令
- 对你特别在意的场景,仍然可以显式写
rtk
例如:
git status
git diff
go test ./...
以及更可控的:
rtk git status
rtk git diff
rtk test go test ./...
两者都能用,只是第二种更明确。
Codex 和 Claude Code 的差异,最好一次搞清楚
| 维度 | Codex | Claude Code |
|---|---|---|
| 推荐安装命令 | rtk init -g --codex |
rtk init -g |
| 主要机制 | AGENTS.md + RTK.md 指令注入 |
PreToolUse hook + RTK.md |
| 是否自动改写 Bash 命令 | 通常不是自动 hook 改写 | 是 |
是否需要你显式写 rtk |
建议写 | 可以不写,但显式写更稳 |
| 配置检查 | rtk init -g --codex --show |
rtk init --show |
| 更适合的使用心智 | “让代理优先用 RTK” | “让 Bash 命令自动走 RTK” |
如果一句话概括:
- Codex 更像“通过全局规则教会代理使用 RTK”
- Claude Code 更像“通过 hook 自动把命令改写成 RTK”
rtk gain 怎么看、怎么清空
安装完之后,最值得养成的习惯就是定期跑:
rtk gain
rtk gain --history
rtk gain --project
rtk gain --project --history
这 4 条命令分别对应:
rtk gain:看全局累计统计rtk gain --history:看全局最近命令历史rtk gain --project:只看当前项目rtk gain --project --history:看当前项目的最近命令历史
在当前 Windows 版本里,rtk gain 至少会给你这些信息:
- 总命令数
- 输入 token 数
- 输出 token 数
- 节省比例
- 各命令的节省效果排行
通常最值得交给 RTK 的,是这些输出特别吵的命令:
git statusgit diffread/catgrep/rgtestlintdockerkubectl
一个当前版本里很容易踩的参数坑
正确写法是:
rtk gain --history
不是:
rtk gain history
后者在当前版本会直接报参数错误,因为 history 在这里是一个 flag,不是子命令。
Windows 上怎么清空 rtk gain 的累计统计
很多人看见 Total commands 一直上涨,会下意识问一句:怎么清零?
先说结论:
- 当前版本没有内置的
clear或reset子命令 rtk gain默认显示的是全局累计统计- 如果你只是想缩小观察范围,优先用
rtk gain --project
如果你确实想把全局统计清空,在当前 Windows 实测环境里,可以重置这个文件:
%LOCALAPPDATA%\rtk\history.db
更稳妥的做法是先备份再清空:
Rename-Item "$env:LOCALAPPDATA\rtk\history.db" "history.db.bak"
如果你确认不需要备份,也可以直接删除:
Remove-Item "$env:LOCALAPPDATA\rtk\history.db"
建议先关闭正在使用 rtk 的终端或代理会话,避免文件被占用。通常下次再运行 rtk 时,这个统计库会自动重建。
Windows 上最常见的排错点
1. rtk 命令找不到
先看:
where.exe rtk
如果没结果,说明:
rtk.exe没有放到 PATH 目录里- 或者你修改了 PATH,但终端还没重开
这时你需要:
- 确认
rtk.exe真实存放路径 - 确认这个目录在用户 PATH 里
- 关闭并重新打开 PowerShell / 终端 / AI 工具
2. rtk --version 能跑,但 rtk gain 不对
优先怀疑你装错了同名项目。
最稳的修复方式:
cargo uninstall rtk
cargo install --git https://github.com/rtk-ai/rtk
rtk gain
如果你走的是二进制方式,就重新从 rtk-ai/rtk 官方 Releases 下载。23
3. rtk gain history 报错
正确写法是:
rtk gain --history
如果你写成 rtk gain history,当前版本会直接报参数错误。
4. Total commands 一直上涨
这是默认行为,因为 rtk gain 看的是全局累计。你有三个选择:
- 只看当前项目:
rtk gain --project - 看最近历史:
rtk gain --history - 直接重置统计库:处理
%LOCALAPPDATA%\rtk\history.db
5. 总看到 No hook installed
如果你还没有集成 Claude Code,这个提示本身并不奇怪。
如果你已经在用 Codex 的 --codex 模式,也不要只凭这一句就判断失败。先用 rtk init -g --codex --show 看真实状态,再结合实际命令使用效果判断。
6. Claude Code 安装后没自动改写
优先检查:
rtk init --show
重点看两个地方:
- Hook 是否存在
settings.json是否已经 patch 成功
如果你当时安装时选择了不 patch,那么可以重新执行:
rtk init -g --auto-patch
卸载与回滚
Codex
rtk init -g --codex --uninstall
如果你是本地项目集成:
rtk init --codex --uninstall
Claude Code
rtk init -g --uninstall
官方文档说明,这会移除 hook、RTK.md、CLAUDE.md 中的引用,以及相关的 settings.json 配置。12
二进制本体
如果你是手动复制 rtk.exe:
- 删除对应目录里的
rtk.exe - 重新打开终端
- 再用
where.exe rtk确认它已经消失
如果你是 Cargo 安装:
cargo uninstall rtk
一套最实用的推荐方案
如果你是 Windows 用户,建议这样做:
方案 A:你主要用 Codex
- 从官方 Releases 下载 Windows zip
- 把
rtk.exe放到已经在 PATH 的目录 - 验证
rtk --version和rtk gain - 执行
rtk init -g --codex - 在 Codex 里尽量显式使用
rtk ...
最小命令集:
rtk git status
rtk read README.md -n -m 120
rtk grep "pattern" . -t go
rtk test go test ./...
rtk gain --project
方案 B:你主要用 Claude Code
- 安装
rtk - 执行
rtk init -g --auto-patch - 用
rtk init --show确认 hook 已启用 - 重启 Claude Code
- 平时让 Claude 正常跑 Bash 命令,需要时再显式指定
rtk
最后的理解
rtk 真正解决的问题,不是“让命令变酷”,而是:
让 AI 编程助手在有限上下文里,优先看到真正重要的终端信息。
在 Windows 上,它完全可以用,而且不复杂:
- 安装本体并不难
- Codex 集成偏“指令式”
- Claude Code 集成偏“hook 式”
- 一旦你开始用
rtk gain回看统计,就会很快知道它有没有帮你省上下文
如果你经常让 AI 帮你做代码阅读、测试、构建、查错,那么 rtk 非常值得进入你的默认工具箱。