Roo Code

A VS Code agent focused on customizable modes and role-based agent behavior, demonstrating how structured personas improve coding agent output quality.

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.

AttributeValue
Language / StackTypeScript / VS Code Extension API
GitHubgithub.com/RooVetGit/Roo-Code
LicenseMIT
Closest MatchVS Code agent with customizable modes
MaturityProduction-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

Roo Code's mode registry format influenced the .xcoder/supervisor.yaml schema. We adopted its declarative approach to agent behavior configuration.