Supported Agents
roborev supports multiple AI coding agents and auto-detects which ones are installed.
Supported Agents
Section titled “Supported Agents”| Agent | CLI Command | Install |
|---|---|---|
| Codex | codex | npm install -g @openai/codex |
| Claude Code | claude | npm install -g @anthropic-ai/claude-code |
| Gemini | agy or gemini | curl -fsSL https://antigravity.google/cli/install.sh | bash (preferred) or npm install -g @google/gemini-cli |
| Copilot | copilot | npm install -g @github/copilot |
| Cursor | agent | See cursor.com/cli |
| OpenCode | opencode | npm install -g opencode-ai@latest (anomalyco/opencode) |
| Droid | droid | See factory.ai |
| Kilo | kilo | npm install -g @kilocode/cli |
| Kiro | kiro-cli | See kiro.dev |
| Pi | pi | npm install -g @mariozechner/pi-coding-agent |
Auto-Detection
Section titled “Auto-Detection”roborev auto-detects installed agents and falls back in this order:
- Codex
- Claude Code
- Gemini
- Copilot
- OpenCode
- Cursor
- Kiro
- Kilo
- Droid
- Pi
The first available agent is used unless you specify one explicitly.
Specifying an Agent
Section titled “Specifying an Agent”Per-Command
Section titled “Per-Command”roborev review --agent claude-code <sha>roborev run --agent codex "Explain this code"roborev refine --agent geminiPer-Repository
Section titled “Per-Repository”agent = "claude-code"Global Default
Section titled “Global Default”default_agent = "codex"Model Selection
Section titled “Model Selection”You can override the default model for any agent using the --model / -m flag:
roborev review --model gpt-4.1 <sha>roborev refine --model claude-sonnet-4-20250514Model Format by Agent
Section titled “Model Format by Agent”| Agent | Model Format | Example |
|---|---|---|
| Codex | OpenAI model name | gpt-4.1, o3-mini |
| Claude Code | Anthropic model name | claude-sonnet-4-20250514, claude-opus-4-20250514 |
| Gemini | Google model name | gemini-2.5-pro, gemini-2.5-flash |
| Copilot | OpenAI model name | gpt-4.1 |
| Cursor | Model name | claude-sonnet-4-20250514, gpt-4.1 |
| OpenCode | provider/model | anthropic/claude-sonnet-4-20250514, openai/gpt-4.1 |
| Droid | Factory model name | (see Factory.ai docs) |
| Kilo | provider/model | anthropic/claude-sonnet-4-20250514, openai/gpt-4.1 |
| Kiro | Model name | (see Kiro docs) |
| Pi | Model name | claude-sonnet-4-20250514, gpt-4.1 |
Configuration
Section titled “Configuration”Set a default model globally or per-repository:
default_model = "claude-sonnet-4-20250514"model = "gpt-4.1" # Override for this repoModel resolution priority: CLI flag > per-repo config > global config > agent default.
Routing Claude Code to a Proxy
Section titled “Routing Claude Code to a Proxy”The claude-code agent accepts a model spec of the form <model>@<base_url>. When <base_url> starts with http:// or https://, roborev points Claude Code at that endpoint and pins all tier aliases (Opus, Sonnet, Haiku, subagent) to the given model. This lets you use local runtimes (Ollama, LM Studio) or gateways (LiteLLM, OpenRouter) that expose an Anthropic-compatible API.
# .roborev.toml: local Ollama for reviews, real Anthropic for fixesagent = "claude-code"review_model = "glm-5.1:cloud@http://127.0.0.1:11434"fix_model = "sonnet"Or per invocation:
roborev review --model 'glm-5.1:cloud@http://127.0.0.1:11434'A bare proxy spec (@http://... with no model) is rejected with an error. The full URL (including any path or query string) is forwarded as-is to ANTHROPIC_BASE_URL, so include the path your gateway expects. For example, LiteLLM typically wants a trailing /v1, while Ollama wants no path.
Proxy Authentication
Section titled “Proxy Authentication”Set ROBOREV_CLAUDE_PROXY_TOKEN in your environment to forward a bearer token to the proxy as ANTHROPIC_AUTH_TOKEN. If unset, roborev sends a placeholder token, which is sufficient for gateways that do not validate the header (such as Ollama).
roborev does not forward anthropic_api_key (or ANTHROPIC_API_KEY) to proxy endpoints. Doing so would leak a real Anthropic credential to arbitrary third parties.
URL Restrictions
Section titled “URL Restrictions”- Proxy URLs must not embed
user:pass@credentials. UseROBOREV_CLAUDE_PROXY_TOKENinstead. http://is only accepted for loopback hosts (127.0.0.1,::1,localhost), so plaintext tokens can’t be sent over the wire. Usehttps://for remote proxies.
Environment Behavior
Section titled “Environment Behavior”Gemini: Antigravity vs Legacy CLI
Section titled “Gemini: Antigravity vs Legacy CLI”The Gemini agent works with either the Antigravity agy CLI or the legacy gemini CLI. Google has deprecated the legacy CLI, so roborev prefers agy when both are installed and falls back to gemini otherwise.
# Preferred: Antigravity CLIcurl -fsSL https://antigravity.google/cli/install.sh | bash
# Legacy CLI (still supported)npm install -g @google/gemini-cliAntigravity runs in --print mode with the prompt piped over stdin. Review jobs get --sandbox; agentic jobs get --dangerously-skip-permissions.
Antigravity does not currently accept a --model flag, so:
- If both
agyandgeminiare installed, any--modeloverride automatically reroutes togemini. - If only
agyis installed, an explicit--modelreturns an error so the override is not silently ignored.
If you rely on model selection and want to keep using gemini exclusively, install only the legacy CLI or shadow agy on your PATH with a wrapper that exec’s gemini.
Pi Structured Output
Section titled “Pi Structured Output”Pi can run normal review jobs and can also serve as the auto design-review classifier. roborev uses Pi’s JSON schema output extension for classifier jobs. The default extension source is npm:@nqbao/pi-json-schema@0.1.1.
Install the default extension in Pi:
pi install npm:@nqbao/pi-json-schemaroborev still passes the configured extension source explicitly when it invokes classifier jobs. Installing it in Pi makes setup visible in pi list and avoids runtime package-fetch surprises in offline or locked-down environments.
Override the extension source in global config if you vendor or mirror it:
[agent.pi]jsonschemaextension = "/opt/roborev/pi-json-schema/index.ts"Agentic Support
Section titled “Agentic Support”Different agents have different levels of support for agentic mode (file edits and commands):
| Agent | Agentic Support |
|---|---|
| Codex | Full (uses --dangerously-bypass-approvals-and-sandbox) |
| Claude Code | Full (uses --dangerously-skip-permissions) |
| Gemini (Antigravity) | Full (uses --dangerously-skip-permissions) |
| Gemini (legacy) | Full (uses --yolo and --allowed-tools) |
| Copilot | Limited (requires manual approval for actions) |
| Cursor | Full (uses --yolo flag) |
| OpenCode | Full (auto-approves in non-interactive mode) |
| Droid | Full (runs autonomously) |
| Kilo | Full (runs autonomously) |
| Kiro | Full (uses --trust-all-tools) |
| Pi | Full (tools execute without confirmation) |
See Custom Tasks & Agentic Mode for details on review vs agentic modes.
ACP (Agent Client Protocol)
Section titled “ACP (Agent Client Protocol)”ACP lets you integrate any agent that speaks the Agent Client Protocol, even if roborev doesn’t have a built-in adapter for it. Configure an ACP agent in the [acp] section of ~/.roborev/config.toml:
[acp]name = "codex-acp"command = "codex-acp"Once configured, the ACP agent can be selected with --agent <name>.
See the Agent Client Protocol (ACP) guide for setup examples, the full configuration reference, mode negotiation, and troubleshooting.
See Also
Section titled “See Also”- Custom Tasks & Agentic Mode: Review vs agentic mode
- Configuration: API keys and auth setup