创见博客
rtk 安装与使用流程
七崽爱吃小饼干2026/07/07阅读 3专栏 工程效率

rtk 安装与使用流程

**说明:**以下以 **Claude Code**、**OpenCode**、**OpenClaw** 为例说明 rtk 的安装和集成流程。如果指的是其他工具,需要再确认具体集成方式。

一、安装 rtk

推荐通过 Homebrew 安装:

bash
brew install rtk

也可以使用官方安装脚本:

bash
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

安装后必须验证是否为正确的 Rust Token Killer:

bash
rtk --version
rtk gain
**注意:**存在另一个同名项目 `rtk`。如果 `rtk gain` 不能正常输出 token savings 统计,可能安装了错误项目,需要卸载后重新安装 `rtk-ai/rtk`。

二、Claude Code 集成

Claude Code 使用 PreToolUse shell hook。rtk 会在 Claude Code 执行 Bash 命令前拦截命令,并调用 rtk rewrite 做透明改写。

安装命令

bash
rtk init -g

推荐使用自动 patch 模式,减少手动编辑配置:

bash
rtk init -g --auto-patch

安装后写入的文件

路径作用
~/.claude/hooks/rtk-rewrite.shClaude Code 的 PreToolUse hook 脚本
~/.claude/RTK.mdrtk 的精简使用说明
~/.claude/CLAUDE.md引用 RTK.md,让 Agent 感知 rtk
~/.claude/settings.json注册 PreToolUse hook

验证

bash
rtk init --show

使用效果

bash
git status   # 实际执行前改写为:rtk git status
cargo test   # 实际执行前改写为:rtk cargo test

Claude Code 的 hook 依赖 jq 解析 JSON。如果 jq 缺失、rtk 不存在、版本过旧或命令无匹配规则,hook 会静默跳过,让原始命令正常执行。

卸载

bash
rtk init -g --uninstall

三、OpenCode 集成

OpenCode 使用的是 TypeScript plugin,不是 shell hook。插件监听 tool.execute.before 事件,在命令执行前调用 rtk rewrite,并原地修改 args.command。

OpenCode 的 rtk 插件只支持全局安装,不支持项目级安装。

图片展示的是在终端中执行rtk init --g --opencode命令的输出结果。显示OpenCode插件已安装成功,路径为/Users/bytedance/.config/opencode/plugins/rtk.ts,并提示重启OpenCode后测试git status。还包含Telemetry信息,说明RTK每天收集匿名使用指标以改进过滤器,用户可随时禁用Telemetry。该图片与文档中OpenCode集成部分的安装命令内容相关,直观呈现了安装命令执行后的效果。

安装命令

bash
rtk init -g --opencode

插件位置

text
~/.config/opencode/plugins/rtk.ts
![图片展示了bytedance文件夹下的内容。左侧为文件夹列表,其中“bytedance”文件夹被红色框突出显示。右侧是该文件夹内的文件和文件夹,如“code”“code - dev”““code - dev - 2021”等文件夹,以及“.gitignore”“package.json”等文件。该图片与文档中“插件位置”内容相关,直观呈现了插件在文件系统中的存放位置,帮助理解插件插件在项目中的具体位置。](https://internal-api-drive-stream.feishu.cn/space/api/box/stream/download/authcode/?code=ZWY0NzVkMmE2MjYwMDEyNTU0MWIzODk4MjBkZjI0ZWRfNTEwOTNmZGI3ZGU3ZjIzN2M0NWI2YjdlYzIwZWMzOGZfSUQ6NzY1NDU0ODk5MDMzNTM1NjA4M18xNzgzNDE4Mzg2OjE3ODM0MjE5ODZfVjM) ![图片展示了OpenCode插件的插件位置。在左侧文件夹列表中,有一个名为“opencode”的文件夹,其图标为蓝色背景带白色图标。右侧是该文件夹内的内容,显示了“opencode”“rcscode”](https://internal-api-drive-stream.feishu.cn/space/api/box/stream/download/authcode/?code=N2E1MWMwZGJjMWY0OWM0NDU1MGI5N2E1YWZiYTJlZGRfZjUxMzNmYmM2M2U5M2UyM2JlNTE1ZTA4Y2ZiMjkzMmJfSUQ6NzY1NDU0OTA1MzgyNDk2MTc1MF8xNzgzNDE4Mzg2OjE3ODM0MjE5ODZfVjM)

工作流程

使用效果

bash
git diff     # 执行前改写为:rtk git diff
git status   # 执行前改写为:rtk git status
图片展示了在终端执行git status命令的示例。上方提示“执行git status命令,回复我命令结果”,下方终端显示命令及结果,当前分支为“ljm/dev-6-23”,工作区状态为“clean - nothing to commit”。图片 addCriterion

验证 rewrite 规则

bash
rtk rewrite "git status"

预期输出:

bash
rtk git status

安装完成后建议重启 OpenCode,让插件加载生效。


四、OpenClaw 集成

OpenClaw 使用 plugin before_tool_call hook。插件会拦截 exec tool 调用,并把命令交给 rtk rewrite 判断是否需要改写。

前置检查

bash
rtk --version
rtk gain

方式一:通过 OpenClaw CLI 安装

在 rtk 仓库根目录执行:

bash
openclaw plugins install ./openclaw

方式二:手动复制插件

bash
mkdir -p ~/.openclaw/extensions/rtk-rewrite
cp openclaw/index.ts openclaw/openclaw.plugin.json ~/.openclaw/extensions/rtk-rewrite/
openclaw gateway restart

配置示例

json
{
  "plugins": {
    "entries": {
      "rtk-rewrite": {
        "enabled": true,
        "config": {
          "enabled": true,
          "verbose": false
        }
      }
    }
  }
}

工作流程

text
OpenClaw exec tool
  -> before_tool_call
  -> rtk rewrite "git status"
  -> git status 改成 rtk git status
  -> 返回压缩后的输出

五、日常使用方式

集成成功后,大多数时候不需要手动加 rtk 前缀。Agent 输入普通命令,hook / plugin 会自动改写。

用户 / Agent 输入实际执行
git statusrtk git status
git diffrtk git diff
rg "foo" .rtk grep "foo" .
pnpm run lintrtk lint
pytestrtk pytest
docker logs apprtk docker logs app

也可以手动调用:

bash
rtk git status
rtk read src/main.rs
rtk grep "pattern" .
rtk gain --history

六、常用检查命令

bash
rtk rewrite "git status"
rtk rewrite "pnpm run lint"
rtk rewrite "pytest"
rtk gain
rtk gain --graph
rtk gain --history

七、临时禁用单条命令代理

如果某条命令不希望被 rtk 改写,可以加 RTK_DISABLED=1 前缀:

bash
RTK_DISABLED=1 git status

这样 hook 会跳过 rewrite,执行原始命令。

评论
0/100