You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: Update update notes for versions 3.16.4, 3.16.5, 3.16.6, and 3.17
* docs: Update documentation for experimental features and add new images for context management and power steering
* docs: Update links in release notes for improved navigation and clarity
* docs: Update update notes for versions 3.16.4, 3.16.5, 3.16.6, and 3.17
* docs: Update documentation for experimental features and add new images for context management and power steering
* docs: Update links in release notes for improved navigation and clarity
* docs: Update image path in release notes for v3.17 and v3.17.0
Copy file name to clipboardExpand all lines: docs/basic-usage/using-modes.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,11 +19,11 @@ Four ways to switch modes:
19
19
20
20
1.**Dropdown menu:** Click the selector to the left of the chat input
21
21
22
-
<imgsrc="/img/modes/modes.png"alt="Using the dropdown menu to switch modes"width="400" />
22
+
<imgsrc="/img/using-modes/using-modes.png"alt="Using the dropdown menu to switch modes"width="400" />
23
23
24
24
2.**Slash command:** Type `/architect`, `/ask`, `/debug`, `/code`, or `/orchestrator` in the chat input
25
25
26
-
<imgsrc="/img/modes/modes-1.png"alt="Using slash commands to switch modes"width="400" />
26
+
<imgsrc="/img/using-modes/using-modes-1.png"alt="Using slash commands to switch modes"width="400" />
27
27
28
28
3.**Toggle command/Keyboard shortcut:** Use the keyboard shortcut below, applicable to your operating system. Each press cycles through the available modes in sequence, wrapping back to the first mode after reaching the end.
29
29
@@ -35,7 +35,7 @@ Four ways to switch modes:
35
35
36
36
4.**Accept suggestions:** Click on mode switch suggestions that Roo offers when appropriate
37
37
38
-
<imgsrc="/img/modes/modes-2.png"alt="Accepting a mode switch suggestion from Roo"width="400" />
38
+
<imgsrc="/img/using-modes/using-modes-2.png"alt="Accepting a mode switch suggestion from Roo"width="400" />
39
39
40
40
## Built-in Modes
41
41
@@ -54,10 +54,10 @@ Four ways to switch modes:
54
54
| Aspect | Details |
55
55
|--------|---------|
56
56
|**Name**|`❓ Ask`|
57
-
|**Description**| A knowledgeable technical assistant focused on answering questions without changing your codebase|
57
+
|**Description**| A knowledgeable technical assistant focused on providing thorough and complete answers. It's less inclined to switch to implementing code unless explicitly requested and may use diagrams for clarification.|
58
58
|**Tool Access**| Limited access: `read`, `browser`, `mcp` only (cannot edit files or run commands) |
59
59
|**Ideal For**| Code explanation, concept exploration, and technical learning |
60
-
|**Special Features**| Optimized for informative responseswithout modifying your project |
60
+
|**Special Features**| Optimized for detailed, informative responses, often using diagrams for clarity, without modifying your project.|
61
61
62
62
### Architect Mode
63
63
@@ -84,11 +84,11 @@ Four ways to switch modes:
84
84
| Aspect | Details |
85
85
|--------|---------|
86
86
|**Name**|`🪃 Orchestrator`|
87
-
|**Description**| A strategic workflow orchestrator (aka Boomerang Mode) that breaks down complex tasks and delegates them to specialized modes |
87
+
|**Description**| A strategic workflow orchestrator (aka Boomerang Mode) that breaks down complex tasks and delegates them to specialized modes. Learn more about [Boomerang Tasks](/features/boomerang-tasks).|
88
88
|**Tool Access**| Access to `read`, `browser`, `command`, `mcp`, and restricted `edit` (mode configuration files only: `.roomodes`, `custom_modes.json`) |
89
89
|**Ideal For**| Managing multi-step projects, coordinating work across different modes, and automating complex workflows |
90
90
|**Special Features**| Uses the [`new_task`](/advanced-usage/available-tools/new-task) tool to delegate subtasks to other modes. |
91
91
92
-
## Custom Modes
92
+
## Customizing Modes
93
93
94
-
Create your own specialized assistants by defining tool access, file permissions, and behavior instructions. Custom modes help enforce team standards or create purpose-specific assistants. See [Custom Modes documentation](/features/custom-modes) for setup instructions.
94
+
Tailor Roo Code's behavior by customizing existing modes or creating new specialized assistants. Define tool access, file permissions, and behavior instructions to enforce team standards or create purpose-specific assistants. See [Custom Modes documentation](/features/custom-modes) for setup instructions.
Copy file name to clipboardExpand all lines: docs/features/custom-modes.mdx
+33-54Lines changed: 33 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,21 +31,22 @@ Each mode—including custom ones—features **Sticky Models**. This means Roo C
31
31
***Experimentation:** Safely experiment with different prompts and configurations without affecting other modes
32
32
***Team Collaboration:** Share custom modes with your team to standardize workflows
33
33
34
-
<imgsrc="/img/custom-modes/custom-modes-1.png"alt="Overview of custom modes interface"width="400" />
34
+
<imgsrc="/img/custom-modes/custom-modes-3.png"alt="Overview of custom modes interface"width="500" />
35
35
36
36
*Roo Code's interface for creating and managing custom modes.*
37
37
38
38
## What's Included in a Custom Mode?
39
39
40
40
Custom modes are defined by several key properties. Understanding these concepts will help you tailor Roo's behavior effectively before diving into the JSON configuration.
|`slug`| A **unique internal identifier** for the mode. It's used by Roo Code to reference the mode, especially for associating [mode-specific instruction files](#mode-specific-instructions-via-filesdirectories). |
45
-
|`name`| The **display name** for the mode as it appears in the Roo Code user interface. This should be human-readable and descriptive. |
46
-
|`roleDefinition`| The **core identity and expertise** of the mode. This text is placed at the beginning of the system prompt to define Roo's personality and primary function for this mode.<br />- **Critical First Sentence:** The first sentence (up to the first period `.`) is vital. It serves as a concise summary for Roo to understand the mode's purpose, even when it's not the active one. The entire definition is used when the mode is active. |
47
-
|`groups`| Defines the **allowed toolsets and file access permissions** for the mode. You can specify which general categories of tools (like reading files, editing files, browsing, or executing commands) the mode can use. For editing, you can also specify restrictions on which file types are permissible. |
48
-
|`customInstructions`|**Specific behavioral guidelines** or rules for the mode. These instructions are added near the end of the system prompt to further refine Roo's behavior beyond the `roleDefinition`. This can be provided directly in the configuration or via separate instruction files. |
42
+
| UI Field / JSON Property | Conceptual Description |
| Slug (`slug`) | A **unique internal identifier** for the mode. It's used by Roo Code to reference the mode, especially for associating [mode-specific instruction files](#mode-specific-instructions-via-filesdirectories). |
45
+
| Name (`name`) | The **display name** for the mode as it appears in the Roo Code user interface. This should be human-readable and descriptive. |
46
+
| Role Definition (`roleDefinition`) | Defines the **core identity and expertise** of the mode. This text is placed at the beginning of the system prompt.<br />- Its primary function is to define Roo's personality and behavior when this mode is active.<br />- The **first sentence** (up to the first period `.`) serves as a default concise summary for Roo to understand the mode's general purpose. <br />- **However, if the `whenToUse` property is defined, `whenToUse` takes precedence** for summarizing the mode's function, especially in contexts like task orchestration or mode switching. In such cases, the first sentence of `roleDefinition` is less critical for this specific summarization task, though the entire `roleDefinition` is still used when the mode is active to guide its overall behavior. |
47
+
| Available Tools (`groups`) | Defines the **allowed toolsets and file access permissions** for the mode.<br />- In the UI, this corresponds to selecting which general categories of tools (like reading files, editing files, browsing, or executing commands) the mode can use.<br />- File type restrictions for the "edit" group are typically managed via manual JSON configuration or by asking Roo to set them up, as detailed in the [JSON Property Details for `groups`](#groups). |
48
+
| When to Use (optional) (`whenToUse`) | (Optional) Provides **guidance for Roo to understand the mode's purpose**, especially for automated decisions.<br />- This text is used by Roo, particularly the [`🪃 Orchestrator`](/basic-usage/using-modes#orchestrator-mode-aka-boomerang-mode) mode, for [orchestrating tasks](/features/boomerang-tasks) (e.g., via the [`new_task`](/advanced-usage/available-tools/new-task) tool).<br />- It also helps Roo decide which mode is appropriate when [switching modes](/basic-usage/using-modes#switching-between-modes) (e.g., via the [`switch_mode`](/advanced-usage/available-tools/switch-mode) tool).<br />- If populated, this description is used by Roo to understand the mode's function; otherwise, the first sentence of the `roleDefinition` is used by default. |
49
+
| Custom Instructions (optional) (`customInstructions`) |**Specific behavioral guidelines** or rules for the mode.<br />- These instructions are added near the end of the system prompt to further refine Roo's behavior beyond the `roleDefinition`.<br />- This can be provided directly in the configuration or via separate instruction files. |
49
50
50
51
## Methods for Creating and Configuring Custom Modes
51
52
@@ -65,10 +66,11 @@ Roo Code will guide you through the process, prompting for necessary information
65
66
2.**Create New Mode:** Click the <Codiconname="add" /> button to the right of the Modes heading.
66
67
3.**Fill in Fields:**
67
68
68
-
<imgsrc="/img/custom-modes/custom-modes-2.png"alt="Custom mode creation interface in the Prompts tab"width="600" />
69
-
*The custom mode creation interface showing fields for name, slug, save location, role definition, available tools, and custom instructions.*
69
+
<imgsrc="/img/custom-modes/custom-modes-4.png"alt="Custom mode creation interface in the Prompts tab"width="600" />
70
70
71
-
The interface provides fields for `Name`, `Slug`, `Save Location`, `Role Definition`, `Available Tools`, and `Custom Instructions`. After filling these, click the "Create Mode" button.
71
+
*The custom mode creation interface showing fields for name, slug, save location, role definition, available tools, custom instructions.*
72
+
73
+
The interface provides fields for `Name`, `Slug`, `Save Location`, `Role Definition`, `When to Use (optional)`, `Available Tools`, and `Custom Instructions`. After filling these, click the "Create Mode" button.
72
74
73
75
*Refer to the [What's Included in a Custom Mode?](#whats-included-in-a-custom-mode) table for conceptual explanations of each property. File type restrictions for the "edit" tool group can be added by asking Roo or through manual JSON configuration.*
74
76
@@ -88,11 +90,15 @@ Both files use the same JSON format. Each configuration file contains a `customM
88
90
"slug": "mode-slug-example",
89
91
"name": "Example Mode Display Name",
90
92
"roleDefinition": "This mode's role and capabilities are defined here.",
93
+
"whenToUse": "Describe when this mode is most appropriate here.",
94
+
"customInstructions": "Additional guidelines for this example mode.",
"customInstructions": "Additional guidelines for this example mode."
97
+
"edit", // Can also be ["edit", { "fileRegex": "\\.md$", "description": "Markdown only" }]
98
+
"browser",
99
+
"command",
100
+
"mcp"
101
+
]
96
102
}
97
103
]
98
104
}
@@ -115,7 +121,7 @@ Both files use the same JSON format. Each configuration file contains a `customM
115
121
##### `roleDefinition`
116
122
***Purpose:** Detailed description of the mode's role, expertise, and personality.
117
123
***Placement:** This text is placed at the beginning of the system prompt when the mode is active.
118
-
***Critical First Sentence:**As noted in the table above, the first sentence is crucial for summarizing the mode's function.
124
+
***Important First Sentence:**The first sentence (up to the first period `.`) serves as a default concise summary for Roo to understand the mode's general purpose. **However, if the `whenToUse` property is defined, `whenToUse` takes precedence**for summarizing the mode's function, especially in contexts like task orchestration or mode selection. In such cases, the first sentence of `roleDefinition` is less critical for this specific summarization task, though the entire `roleDefinition` is still used when the mode is active to guide its overall behavior.
119
125
**JSON Example:*`"roleDefinition": "You are a technical writer specializing in clear documentation."`
120
126
121
127
##### `groups`
@@ -135,6 +141,12 @@ Both files use the same JSON format. Each configuration file contains a `customM
135
141
]
136
142
```
137
143
144
+
##### `whenToUse`
145
+
***Purpose:** (Optional) Provides guidance for Roo to understand what this mode does. This is primarily used by the [`🪃 Orchestrator`](/basic-usage/using-modes#orchestrator-mode-aka-boomerang-mode) mode for [orchestrating tasks](/features/boomerang-tasks) (e.g., via the [`new_task`](/advanced-usage/available-tools/new-task) tool) and for determining the appropriate mode when [switching modes](/basic-usage/using-modes#switching-between-modes) (e.g., via the [`switch_mode`](/advanced-usage/available-tools/switch-mode) tool).
146
+
***Format:** A string describing ideal scenarios or task types for this mode.
147
+
***Usage:** If populated, Roo uses this description to understand the mode's function. Otherwise, the first sentence of the `roleDefinition` is used by default.
148
+
***JSON Example:**`"whenToUse": "This mode is best for refactoring Python code to improve performance and readability."`
149
+
138
150
##### `customInstructions`
139
151
***Purpose:** A string containing additional behavioral guidelines for the mode.
140
152
***Placement:** This text is added near the end of the system prompt.
@@ -225,11 +237,12 @@ To customize a default mode across all your projects:
225
237
"slug": "code", // Matches the default 'code' mode slug
226
238
"name": "💻 Code (Global Override)", // Custom display name
227
239
"roleDefinition": "You are a software engineer with global-specific constraints",
240
+
"whenToUse": "This globally overridden code mode is for JS/TS tasks.",
241
+
"customInstructions": "Focus on project-specific JS/TS development",
Ready to explore more? Check out the [Custom Modes Gallery](/community/#custom-modes-gallery) section on the main community page to discover and share custom modes created by the community!
0 commit comments