RTK 在 Windows 上的安装、使用,以及集成到 Codex 和 Claude Code

这是一篇可直接照着操作的 Windows 教程:从安装 rtk,到日常使用,再到分别集成进 Codex 和 Claude Code。

本文示例基于 Windows AMD64 环境和 rtk 0.35.0。文中的本机路径、用户名和本地目录都已经做了脱敏处理,统一用 %USERPROFILE%%LOCALAPPDATA%<用户名> 这类占位符表示。


先说结论

rtk 是一个给 AI 编程助手用的命令行代理层。它不会替代 gitgo testnpmpytest 这些工具,而是把原本很长、很吵、很浪费上下文的终端输出压缩成更适合 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 statusgit diffgreptest 结果时,输出会短很多。
  • 失败信息更聚焦,成功信息更安静。
  • rtk gain 可以统计你到底省了多少 tokens。1

目录

  1. 安装前必须知道的一件事
  2. 在 Windows 上安装 rtk
  3. 安装成功后,RTK 到底怎么用
  4. 集成到 Codex
  5. 集成到 Claude Code
  6. Codex 和 Claude Code 的差异
  7. rtk gain 怎么看、怎么清空
  8. Windows 上最常见的排错点
  9. 卸载与回滚
  10. 一套最实用的推荐方案

安装前必须知道的一件事

官方文档特别提醒:有两个完全不同的项目都叫 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

对应下载位置在 GitHub Releases。13

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,也可以直接走源码安装。

官方建议的方式是:直接从 GitHub 仓库安装12

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.mdRTK.md1

如果你的仓库本来就已经有自己的 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 内建的 ReadGrepGlob 这类工具,并不会自动经过这个 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 status
  • git diff
  • read / cat
  • grep / rg
  • test
  • lint
  • docker
  • kubectl

一个当前版本里很容易踩的参数坑

正确写法是:

rtk gain --history

不是:

rtk gain history

后者在当前版本会直接报参数错误,因为 history 在这里是一个 flag,不是子命令。


Windows 上怎么清空 rtk gain 的累计统计

很多人看见 Total commands 一直上涨,会下意识问一句:怎么清零?

先说结论:

  • 当前版本没有内置的 clearreset 子命令
  • 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,但终端还没重开

这时你需要:

  1. 确认 rtk.exe 真实存放路径
  2. 确认这个目录在用户 PATH 里
  3. 关闭并重新打开 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

然后重启 Claude Code。12


卸载与回滚

Codex

rtk init -g --codex --uninstall

如果你是本地项目集成:

rtk init --codex --uninstall

Claude Code

rtk init -g --uninstall

官方文档说明,这会移除 hook、RTK.mdCLAUDE.md 中的引用,以及相关的 settings.json 配置。12

二进制本体

如果你是手动复制 rtk.exe

  • 删除对应目录里的 rtk.exe
  • 重新打开终端
  • 再用 where.exe rtk 确认它已经消失

如果你是 Cargo 安装:

cargo uninstall rtk

一套最实用的推荐方案

如果你是 Windows 用户,建议这样做:

方案 A:你主要用 Codex

  1. 从官方 Releases 下载 Windows zip
  2. rtk.exe 放到已经在 PATH 的目录
  3. 验证 rtk --versionrtk gain
  4. 执行 rtk init -g --codex
  5. 在 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

  1. 安装 rtk
  2. 执行 rtk init -g --auto-patch
  3. rtk init --show 确认 hook 已启用
  4. 重启 Claude Code
  5. 平时让 Claude 正常跑 Bash 命令,需要时再显式指定 rtk

最后的理解

rtk 真正解决的问题,不是“让命令变酷”,而是:

让 AI 编程助手在有限上下文里,优先看到真正重要的终端信息。

在 Windows 上,它完全可以用,而且不复杂:

  • 安装本体并不难
  • Codex 集成偏“指令式”
  • Claude Code 集成偏“hook 式”
  • 一旦你开始用 rtk gain 回看统计,就会很快知道它有没有帮你省上下文

如果你经常让 AI 帮你做代码阅读、测试、构建、查错,那么 rtk 非常值得进入你的默认工具箱。


参考资料


  1. RTK 官方 README(安装、命令、各类 AI 工具集成方式): https://github.com/rtk-ai/rtk                 

  2. RTK 官方 INSTALL.md(同名包冲突、Claude Code 初始化与验证): https://github.com/rtk-ai/rtk/blob/master/INSTALL.md         

  3. RTK 官方 Releases(Windows 预编译二进制下载): https://github.com/rtk-ai/rtk/releases   

最后修改:2026 年 04 月 14 日
如果觉得我的文章对你有用,请随意赞赏