# 使用Headroom+RTK+Ponytail三套件节省Token

把 Headroom、RTK 和 Ponytail 这三套件在本地 Codex 中协同使用，核心是让它们**各司其职，形成一个从输入到输出的完整精简管道**。

## 🧩 三套件的角色分工
它们分别作用于 Codex 工作流的不同环节：
- **Headroom (输入清理)**：作为本地代理，在**所有数据（包括对话历史、工具输出、日志等）发送给大模型之前**进行压缩，号称可节省 60-95% 的 Token。GitHub地址：https://github.com/headroomlabs-ai/headroom
- **RTK (终端命令输出裁剪)**：它是一个命令行工具，专门**拦截并压缩 Codex 执行 Shell 命令后产生的输出**，过滤掉大量对 AI 无用的噪音，最高可减少约 90% 的 Bash 输出。GitHub地址：https://github.com/rtk-ai/rtk
- **Ponytail (代码输出精简)**：这是一个代码最小化插件，它通过注入“懒惰的资深开发者”思维，**引导 Codex 在生成代码前先做判断**（如能否复用、能否用标准库、能否一行搞定），从而从源头上减少不必要的代码和 Token 消耗，最高可减少 94% 的代码行数。GitHub地址：https://github.com/dietrichgebert/ponytail

当三者同时工作时，它们会在 Codex 的工作流中形成一个**多层次的防御体系**，协同效果如下：
1. **RTK 处理终端输出**：当 Codex 执行 `git status` 或 `npm test` 等命令时，RTK 会第一时间拦截原始输出，进行去重、合并和截断，将“终端噪音”大幅削减。
2. **Headroom 压缩最终输入**：经过 RTK 初步过滤的终端输出，连同对话历史、代码文件等所有上下文信息，会一起发送给 Headroom 的本地代理。Headroom 会进行二次深度压缩，确保最终发送给大模型的 Prompt 是最精简的。
3. **Ponytail 控制代码生成**：当模型准备生成代码时，Ponytail 的“懒惰资深开发者”思维会介入，引导模型选择最简洁的解决方案，避免过度工程，从源头上减少了输出 Token 的产生。

这种组合的效果是显著的。通过 RTK 和 Headroom 在**输入端**的大幅压缩，以及 Ponytail 在**输出端**的源头控制，可以**显著降低你的 Token 消耗和 API 成本**。一些用户实践表明，这种组合策略有望将整体 Token 消耗降低 **60% 至 85%** 甚至更多。

## 🛠️ 协同配置步骤
要让三者协同工作，你需要按以下顺序进行配置：
### 1. 安装并配置 Headroom（输入层压缩）
首先安装 Headroom 并初始化 Codex 的持久化集成。它会自动修改 Codex 的配置文件，将模型请求重定向到本地代理。
```
# 1. 安装 Headroom（建议使用 uv 加速）
uv tool install --python 3.13 "headroom-ai[all]"

# 2. 按照成windows服务
headroom install apply --preset persistent-service

# 3. 测试代理的端口已启动
Test-NetConnection -ComputerName localhost -Port 8787

# 4. 为 Codex 初始化 Headroom 集成
headroom init -g

# 5. 检查配置是否都成功
headroom doctor
```

执行 `headroom init -g` 后，Codex 的配置文件（`~/.codex/config.toml`）会被修改，将 API 请求指向 Headroom 的本地代理地址（默认 `http://localhost:8787/v1`）。

### 2. 安装并配置 RTK（终端输出层裁剪）
接着安装 RTK 并将其集成到 Codex 中，让所有终端命令的输出都经过它过滤。
```
# 1. 安装 RTK
winget install rtk-ai.rtk

# 2. 为 Codex 全局初始化 RTK
rtk init -g --codex

# 3. 验证配置
rtk init --show

# 如果想卸载
rtk init -g --uninstall # remove hook, RTK.md, and settings.json entry
```

执行后，RTK 会自动接管 Codex 发起的终端命令，在输出返回给模型前进行压缩。

### 3. 安装 Ponytail（输出决策层精简）
最后，通过 Codex 的插件市场安装 Ponytail，为其注入代码最小化的决策规则。
```
# 1. 添加 Ponytail 插件市场
codex plugin marketplace add DietrichGebert/ponytail

# 2. 安装 Ponytail 插件
codex plugin add ponytail@ponytail
```

安装后，Ponytail 的规则会自动生效，你也可以在对话中使用 `/ponytail` 等命令来触发其精简模式。

## 验证效果

**Headroom效果验证**

打开Codex CLI或者是Desktop，执行一些任务后，访问URL：`http://localhost:8787/stats`
如果 `total_tokens_saved` 或相关计数开始增长，就说明桌面版的流量已经成功经过 Headroom 代理了。

**RTK 的验证很直接**

```
rtk --version   # 应输出 "rtk x.y.z"
rtk gain        # 应显示 Token 节省面板
```

**Ponytail（输出代码精简）验证**

Ponytail 通过插件注入，验证方式是在 Codex 会话中观察其状态。
1. **查看激活状态**：在 Codex 的新任务中，系统提示或状态中应出现 `PONYTAIL MODE ACTIVE — level: full`，这表示默认模式已加载。
2. **手动查询与切换**：你也可以在 Codex 输入框中直接输入 `@ponytail` 来查看当前模式，或使用 `@ponytail full` 等命令切换模式。
3. **观察代码风格**：最直接的验证是看生成代码的风格是否变得更简洁：例如优先使用标准库而非引入新依赖、避免不必要的抽象、倾向于删除代码而非增加代码等。

## ⚠️ 注意事项
- **配置顺序**：建议按照 **Headroom → RTK → Ponytail** 的顺序进行配置，因为 Headroom 会修改 Codex 的核心配置文件，先配置它可以避免后续冲突。
- **启动代理**：每次使用 Codex 前，请确保 **Headroom 的本地代理服务已经启动**。如果 Codex 请求失败，请检查代理是否运行在 `http://localhost:8787。
- **效果差异**：Ponytail 的效果在**前端小功能、代码评审和局部修改**场景下最为明显，而在从零构建整个项目时，其“先判断再行动”的决策过程本身可能会带来一些额外的 Token 开销。


---

> 作者: XiongNeng  
> URL: https://xiongneng.me/posts/ai/headroom-rtk-ponytail/  

