Type object
File match .roomodes *.roomodes custom_modes.yaml custom_modes.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/roo-coder-custom-modes/latest.json
Source https://www.schemastore.org/roomodes.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Schema for Roo Coder custom mode configuration files. Roo Coder is an AI-powered coding assistant that can be extended with custom modes to specialize its behavior for specific tasks. See https://docs.roocode.com/features/custom-modes for documentation.

Properties

customModes customMode[] required

Array of custom mode definitions

minItems=1

Definitions

permission string | object

Tool access permission for a custom mode

customMode object

Definition of a custom mode in Roo Coder

slug string required

Unique internal identifier for the mode. Must contain only lowercase letters, numbers, and hyphens.

Examples: "code-reviewer", "test-writer", "api-designer"
minLength=1maxLength=50pattern=^[a-z0-9-]+$
name string required

Display name for the mode in the Roo Coder UI. Can include spaces, capitalization, and emojis.

Examples: "Code Reviewer", "Test Writer 🧪", "API Design Expert"
minLength=1maxLength=100
roleDefinition string required

Core identity and expertise of the mode. The first sentence becomes the default mode summary.

Examples: "I am a senior code reviewer focused on improving code quality, maintainability, and performance.", "I am a test automation expert specializing in comprehensive test coverage and best practices."
minLength=10
whenToUse string

Guidance for when to use this mode. Used by the Orchestrator mode and for mode switching suggestions.

Examples: "Use this mode when you need a thorough code review with focus on best practices", "Use this mode when creating or updating test files"
customInstructions string

Additional behavioral guidelines for the mode. Supports markdown formatting for structured instructions.

Examples: "## Review Process 1. Analyze code structure 2. Check for performance issues 3. Verify security best practices"
groups permission[]

Allowed toolsets and file access permissions for this mode

Examples: ["read","edit","browser"], ["read",{"type":"edit","allowedPaths":["^/docs/.*\\.md$"]}]