Skip to main content
skill CX Codex

rtk — Claude Code skill: trim shell output before it hits the agent

Installs and wires RTK (Rust Token Killer) so shell command output reaches your agent in compact form. Useful when logs and diffs eat the context window.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add akillness/jeo-skills --skill rtk -a claude-code
Open on GitHub

What rtk does

RTK is a CLI proxy that rewrites ordinary shell commands into token-optimized equivalents before their output reaches an AI agent. The skill walks through it in order: check which binary is installed, install or repair it, then pick the right rtk init mode for your agent.

Three scripts do the work — scripts/check-status.sh, scripts/install.sh, scripts/init-agent.sh. Installation goes one of three ways: Homebrew, the repository install.sh, or Cargo. Whatever path you take, verify with rtk gain afterwards. That command is the real test. If rtk --version answers but rtk gain fails, you almost certainly have the wrong package under that name, Rust Type Kit, and it needs to go.

Automatic rewriting only kicks in where the agent runs shell commands through a supported hook or plugin. Codex, Windsurf and Cline are prompt-only integrations, so built-in file tools are not intercepted there — you call rtk read, rtk grep or rtk test cargo test directly instead. On Windows the author recommends RTK 0.23.1+.

What it helps with

  • shrink git status and diff output before the agent reads it
  • fix an install where the wrong package sits under the rtk name
  • wire the RTK hook into Claude or Codex
  • get compact test and lint output
  • find out why automatic rewriting never fires

Example prompts for the agent

  • Check which rtk I have installed and show me the status
  • Install RTK with Homebrew and set up the global hook for Claude
  • rtk --version works but rtk gain fails — figure it out and reinstall the right package

How to install rtk

1Skills CLI (Vercel)

npx skills add akillness/jeo-skills --skill rtk -a claude-code

2Manually: put the files in place

~/.claude/skills/rtk/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/rtk/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about rtk

How do I install the rtk skill in Claude?

Run npx skills add akillness/jeo-skills --skill rtk -a claude-code. The skill file lands at ~/.claude/skills/rtk/SKILL.md.

What does the rtk skill do?

It verifies the correct RTK binary, installs or repairs it, and configures rtk init for your agent. It also explains when to skip the hook and call rtk commands directly.

Why doesn't rewriting happen automatically in Codex or Cursor?

The hook only applies where the agent executes shell commands through a supported hook or plugin. Prompt-only integrations leave built-in read and search tools untouched, so you use direct rtk commands.

Source text

SKILL.md · MIT
---
name: rtk
description: >
  Install, initialize, verify, and troubleshoot RTK (Rust Token Killer) for AI
  coding agents. Use when you need to reduce shell-command token output, confirm
  that the correct `rtk` binary is installed, choose between Homebrew, install.sh,
  or Cargo installation, wire `rtk init` for Claude Code, Codex, Gemini CLI,
  Cursor, Copilot, Windsurf, Cline, or OpenCode, or use compact wrappers such as
  `rtk git status`, `rtk read`, `rtk grep`, `rtk test`, `rtk lint`, and
  `rtk gain`. Triggers on: rtk, rust token killer, token saver cli, rtk init,
  rtk gain, codex rtk, gemini rtk, opencode rtk, claude hook token reduction.
allowed-tools: Bash Read Write Edit Glob Grep WebFetch
license: MIT
metadata:
  tags: rtk, rust-token-killer, token-optimization, claude-code, codex, gemini, opencode, cursor, copilot, shell-hooks
  version: "1.0"
  source: https://github.com/akillness/rtk
---

# rtk - Rust Token Killer for AI Coding Agents

> **Keyword**: `rtk` · `rust token killer` · `rtk init` · `rtk gain`
>
> The target repository is the `akillness/rtk` fork of `rtk-ai/rtk`. The fork tracks upstream code, while the bundled `install.sh` still downloads release artifacts from `rtk-ai/rtk`.

RTK is a high-performance CLI proxy that rewrites common shell commands into token-optimized equivalents before their output reaches an AI agent. Use this skill to verify the right RTK binary, install or repair it, choose the correct `rtk init` mode for the user's agent, and fall back to direct `rtk` commands when no automatic hook exists.

## When to use this skill

- Verify whether RTK is already installed and whether it is the correct project
- Repair the common `cargo install rtk` name-collision mistake
- Install RTK with Homebrew, the repository `install.sh`, or Cargo
- Initialize RTK for Claude Code, Codex, Gemini CLI, Cursor, Copilot, Windsurf, Cline, or OpenCode
- Explain when `rtk init -g` is better than local project setup
- Use direct `rtk` wrappers such as `rtk git status`, `rtk read`, `rtk grep`, `rtk test`, or `rtk lint`
- Diagnose why automatic rewriting is not happening
- Explain why built-in file tools do not pass through shell hooks and when to use direct `rtk` commands instead

## Instructions

### Step 1: Verify the current installation before reinstalling anything

Run the local status helper first:

```bash
bash scripts/check-status.sh --show
```

Interpret the result in this order:

1. If `rtk gain` works, the correct RTK is already installed. Do not reinstall unless the user wants an upgrade.
2. If `rtk --version` works but `rtk gain` fails, the user likely has the wrong `rtk` package, usually Rust Type Kit.
3. If `rtk` is missing entirely, move to installation.

The install and verification decision tree lives in [references/install-and-verify.md](references/install-and-verify.md).

### Step 2: Install or repair RTK with the narrowest method that fits

Use the wrapper:

```bash
bash scripts/install.sh
```

Important installer choices:

- Default `auto` prefers Homebrew on macOS when available, then the fork's `install.sh`, then Cargo
- Use `--method brew` when Homebrew is available and the user wants a standard system-managed install
- Use `--method script` for the repository install script path
- Use `--method cargo` when the user explicitly wants a git-source build or is working from the fork
- Use `--force-uninstall-wrong` when the user already installed the wrong `rtk`

Examples:

```bash
bash scripts/install.sh --method brew
bash scripts/install.sh --method script
bash scripts/install.sh --method cargo --repo akillness/rtk
bash scripts/install.sh --force-uninstall-wrong
```

Keep these installation rules explicit:

- Always verify with `rtk gain` after installation
- Treat `cargo install rtk` as unsafe unless the user already confirmed the correct package
- If the install script path is used, remember the script still pulls release artifacts from `rtk-ai/rtk`

### Step 3: Choose the correct `rtk init` mode for the agent

Use the init wrapper instead of hand-building flags:

```bash
bash scripts/init-agent.sh --agent claude --global
```

Default mapping:

- Claude Code: `--agent claude --global` for hook-first setup
- Codex: `--agent codex --global` or local `--agent codex --local`
- Gemini CLI: `--agent gemini --global`
- Cursor: `--agent cursor --global`
- Copilot: `--agent copilot --global`
- OpenCode: `--agent opencode --global`
- Windsurf: `--agent windsurf --local`
- Cline / Roo Code: `--agent cline --local`

Good follow-up checks:

```bash
bash scripts/init-agent.sh --agent claude --global --auto-patch
bash scripts/init-agent.sh --agent codex --global
bash scripts/init-agent.sh --agent opencode --global
bash scripts/init-agent.sh --agent claude --show
```

Read [references/platform-init.md](references/platform-init.md) when the user needs the per-agent hook type, scope, or uninstall behavior.

### Step 4: Use direct RTK commands when hooks are absent or insufficient

Automatic rewrite only applies where the agent actually executes shell commands through a supported hook or plugin. Prompt-only integrations such as Codex, Windsurf, and Cline still benefit from explicit `rtk` commands, but they do not transparently mutate built-in file tools.

Use direct commands when:

- The agent uses a built-in `Read`, `Grep`, or `Glob` tool instead of shell
- The workflow is in Codex and the user wants compact output immediately
- The user wants deterministic verification independent of hook state

Common commands:

```bash
rtk git status
rtk read src/main.rs
rtk grep "pattern" .
rtk test cargo test
rtk lint
rtk gain
```

The command families and config knobs are summarized in [references/commands-and-config.md](references/commands-and-config.md).

### Step 5: Diagnose failures explicitly

Use `bash scripts/check-status.sh --show` as the first diagnostic pass, then branch:

- Wrong binary installed: fix the name collision and reinstall
- Hook missing or stale: rerun the correct `rtk init` mode
- Agent still verbose: confirm whether the task used shell commands or built-in tools
- PATH issue: ensure `~/.local/bin` or `~/.cargo/bin` is on `PATH`
- Windows wrapper failure: recommend RTK `0.23.1+`

The troubleshooting matrix is in [references/troubleshooting.md](references/troubleshooting.md).

## Examples

### Example 1: Verify whether the correct RTK is already installed

```bash
bash scripts/check-status.sh --show
```

### Example 2: Install from the fork-aware script path

```bash
bash scripts/install.sh --method script --repo akillness/rtk
```

### Example 3: Repair the wrong `cargo install rtk` package

```bash
bash scripts/install.sh --force-uninstall-wrong --method cargo
```

### Example 4: Claude Code global hook setup

```bash
bash scripts/init-agent.sh --agent claude --global --auto-patch
```

### Example 5: Codex global prompt setup

```bash
bash scripts/init-agent.sh --agent codex --global
```

### Example 6: OpenCode plugin install

```bash
bash scripts/init-agent.sh --agent opencode --global
```

### Example 7: Use RTK directly for compact output

```bash
rtk read Cargo.toml
rtk grep "rtk init" README.md
rtk test cargo test
```

### Example 8: Temporarily bypass rewrite for one command

```bash
RTK_DISABLED=1 git status
```

## Best practices

1. Check `rtk gain` before reinstalling; it is the quickest way to distinguish the correct RTK from the wrong package.
2. Use the lightest install path that meets the user's needs: Homebrew for convenience, install script for release binaries, Cargo for source-driven workflows.
3. Treat `rtk init -g` as the normal path for hook-capable agents and local rules files as the normal path for Windsurf and Cline.
4. Use `rtk init --show` after setup or upgrades so stale hook state is visible immediately.
5. Remember that built-in read/search tools do not pass through shell hooks; switch to shell commands or direct `rtk` wrappers when token savings matter.
6. Keep `RTK_DISABLED=1` in mind for one-off passthrough commands instead of uninstalling hooks.
7. Re-run the installer plus `rtk init` after RTK upgrades because hook artifacts can change between releases.
8. When users say "RTK is broken", separate installation correctness, hook registration, and actual command path before proposing a fix.

## References

- [references/install-and-verify.md](references/install-and-verify.md)
- [references/platform-init.md](references/platform-init.md)
- [references/commands-and-config.md](references/commands-and-config.md)
- [references/troubleshooting.md](references/troubleshooting.md)
- [scripts/install.sh](scripts/install.sh)
- [scripts/init-agent.sh](scripts/init-agent.sh)
- [scripts/check-status.sh](scripts/check-status.sh)
- [RTK Repository Fork](https://github.com/akillness/rtk)
- [Upstream RTK Project](https://github.com/rtk-ai/rtk)

© akillness · MIT · akillness/jeo-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set22

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor