Back to Rtk

Supported Agents

docs/guide/getting-started/supported-agents.md

0.38.05.3 KB
Original Source

Supported Agents

RTK supports all major AI coding agents across 3 integration tiers. Mistral Vibe support is planned.

How it works

Each agent integration intercepts CLI commands before execution and rewrites them to their RTK equivalent. The agent runs rtk cargo test instead of cargo test, sees filtered output, and uses up to 90% fewer tokens — without any change to your workflow.

All rewrite logic lives in the RTK binary (rtk rewrite). Agent hooks are thin delegates that parse the agent-specific JSON format and call rtk rewrite for the actual decision.

Agent runs "cargo test"
  -> Hook intercepts (PreToolUse / plugin event)
  -> Calls rtk rewrite "cargo test"
  -> Returns "rtk cargo test"
  -> Agent executes filtered command
  -> LLM sees 90% fewer tokens

Supported agents

AgentIntegration tierCan rewrite transparently?
Claude CodeShell hook (PreToolUse)Yes
VS Code Copilot ChatShell hook (PreToolUse)Yes
GitHub Copilot CLIShell hook (deny-with-suggestion)No (agent retries)
CursorShell hook (preToolUse)Yes
Gemini CLIRust binary (BeforeTool)Yes
OpenCodeTypeScript plugin (tool.execute.before)Yes
OpenClawTypeScript plugin (before_tool_call)Yes
Cline / Roo CodeRules file (prompt-level)N/A
WindsurfRules file (prompt-level)N/A
Codex CLIAGENTS.md instructionsN/A
Kilo CodeRules file (prompt-level)N/A
Google AntigravityRules file (prompt-level)N/A
Mistral VibePlanned (#800)Pending upstream

Installation by agent

Claude Code

bash
rtk init --global    # installs hook + patches settings.json

Restart Claude Code. Verify:

bash
rtk init --show    # shows hook status

Cursor

bash
rtk init --global --cursor

Restart Cursor. The hook uses preToolUse with Cursor's updated_input format.

VS Code Copilot Chat

bash
rtk init --global --copilot

Gemini CLI

bash
rtk init --global --gemini

OpenCode

bash
rtk init --global --opencode

Creates ~/.config/opencode/plugins/rtk.ts. Uses the tool.execute.before hook.

OpenClaw

bash
openclaw plugins install ./openclaw

Plugin in the openclaw/ directory. Uses the before_tool_call hook, delegates to rtk rewrite.

Cline / Roo Code

bash
rtk init --cline    # creates .clinerules in current project

Cline reads .clinerules as custom instructions. RTK adds guidance telling Cline to prefer rtk <cmd> over raw commands.

Windsurf

bash
rtk init --windsurf    # creates .windsurfrules in current project

Codex CLI

bash
rtk init --codex    # creates AGENTS.md or patches existing one

Kilo Code

bash
rtk init --agent kilocode    # creates .kilocode/rules/rtk-rules.md in current project

Kilo Code reads .kilocode/rules/ as custom instructions. RTK adds guidance telling Kilo Code to prefer rtk <cmd> over raw commands.

Google Antigravity

bash
rtk init --agent antigravity    # creates .agents/rules/antigravity-rtk-rules.md in current project

Antigravity reads .agents/rules/ as custom instructions. RTK adds guidance telling Antigravity to prefer rtk <cmd> over raw commands.

Mistral Vibe (planned)

Support is blocked on upstream BeforeToolCallback (mistral-vibe#531). Tracked in #800.

Integration tiers explained

TierMechanismHow rewrites work
Full hookShell script or Rust binary, intercepts via agent APITransparent — agent never sees the raw command
PluginTypeScript/JS in agent's plugin systemTransparent — in-place mutation
Rules filePrompt-level instructionsGuidance only — agent is told to prefer rtk <cmd>

Rules file integrations (Cline, Windsurf, Codex, Kilo Code, Antigravity) rely on the model following instructions. Full hook integrations (Claude Code, Cursor, Gemini) are guaranteed — the command is rewritten before the agent sees it.

Windows support

The shell hook (rtk-rewrite.sh) requires a Unix shell. On native Windows:

  • rtk init -g automatically falls back to CLAUDE.md injection mode (prompt-level instructions)
  • Filters work normally (rtk cargo test, rtk git status)
  • Auto-rewrite does not work — the AI assistant is instructed to use RTK but commands are not intercepted

For full hook support on Windows, use WSL. Inside WSL, all agents with shell hook integration (Claude Code, Cursor, Gemini) work identically to Linux.

Graceful degradation

Hooks never block command execution. If RTK is missing, the hook exits cleanly and the raw command runs unchanged:

  • RTK binary not found: warning to stderr, exit 0
  • Invalid JSON input: pass through unchanged
  • RTK version too old: warning to stderr, exit 0
  • Filter logic error: fallback to raw command output

Override: disable RTK for one command

bash
RTK_DISABLED=1 git status    # runs raw git status, no rewrite

Or exclude commands permanently in ~/.config/rtk/config.toml:

toml
[hooks]
exclude_commands = ["git rebase", "git cherry-pick"]