Overview
Roo Code is a VS Code extension that emphasizes customizable agent modes and role-based behavior. Unlike one-size-fits-all agents, Roo Code lets you define specific personas — architect, reviewer, tester, documenter — each with specialized system prompts, tool access, and approval policies. This modular approach produces higher-quality output by matching the agent's behavior to the task at hand.
| Attribute | Value |
|---|---|
| Language / Stack | TypeScript / VS Code Extension API |
| GitHub | github.com/RooVetGit/Roo-Code |
| License | MIT |
| Closest Match | VS Code agent with customizable modes |
| Maturity | Production-ready |
Key Features
- Customizable modes — Define agent personas with custom system prompts, tool sets, and approval requirements.
- Role-based workflows — Switch between code, architect, ask, debug, and custom modes per task.
- Auto-approval policies — Granular controls for which operations each mode can perform without human review.
- Context window optimization — Smart inclusion of relevant files based on mode and task type.
- Multi-model support — Configure different models for different modes (e.g., fast model for simple edits, powerful model for architecture).
- MCP integration — Supports Model Context Protocol for tool extensibility.
Architecture
Roo Code builds on the VS Code Extension API with a mode registry at its core. Each mode is a declarative configuration object specifying: a system prompt template, an allowed tool set, an auto-approval policy, and a context strategy. The agent loop selects the active mode based on user input or explicit mode switching, then executes within that mode's constraints. The architecture is plugin-friendly: new modes can be contributed via JSON configuration without code changes.
Strengths
- Persona-driven quality — Specialized modes produce more focused and accurate output than generalist agents.
- Safety through policy — Auto-approval limits prevent costly mistakes in autonomous operation.
- User control — Developers can tune exactly how much autonomy each mode has.
- Fast iteration — New modes can be tested without redeploying the extension.
Gaps vs Open SWE
- VS Code only — Like Kodu, bound to the VS Code ecosystem.
- No headless mode — Designed for interactive use; cannot run in CI or autopilot pipelines.
- Limited sandbox — Operates in the user's workspace.
- No native workflow engine — Modes are stateless; no built-in phase machine for SDLC enforcement.
Relevance to xCoder
Roo Code's mode system directly inspired xCoder's skill and policy architecture. Our hooks layer (no-edit-on-integration, branch-prefix-must-match, etc.) is essentially a system-level mode that cannot be disabled. We are evaluating Roo Code's persona definitions as a reference for our own agent behavior customization in M1.7. The concept of matching tool access and approval policies to task type is central to our FlowEngine design.
Design adoption
.xcoder/supervisor.yaml schema. We adopted its declarative approach to agent behavior configuration.