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
Copy file name to clipboardExpand all lines: docs/basic-usage/using-modes.md
+17-3Lines changed: 17 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
Modes in Roo Code are specialized personas that tailor the assistant's behavior to your current task. Each mode offers different capabilities, expertise, and access levels to help you accomplish specific goals.
4
4
5
5
:::info Sticky Models
6
-
Each mode remembers your last-used model. When switching modes, Roo automatically selects that model—no manual selection needed. Assign different models to different modes (Gemini 2.5 Flash thinking for architect mode, Claude Sonnet 3.7 for code mode) and Roo will switch models automatically when you change modes.
6
+
Each mode remembers your last-used model. When switching modes, Roo automatically selects that model—no manual selection needed. Assign different models to different modes (e.g., Gemini 2.5 Preview for `🏗️ Architect`mode, Claude Sonnet 3.7 for `💻 Code` mode) and Roo will switch models automatically when you change modes.
7
7
:::
8
8
9
9
## Why Use Different Modes?
@@ -21,7 +21,7 @@ Four ways to switch modes:
21
21
22
22
<imgsrc="/img/modes/modes.png"alt="Using the dropdown menu to switch modes"width="400" />
23
23
24
-
2.**Slash command:** Type `/architect`, `/ask`, `/debug`, or `/code` in the chat input
24
+
2.**Slash command:** Type `/architect`, `/ask`, `/debug`, `/code`, or `/orchestrator` in the chat input
25
25
26
26
<imgsrc="/img/modes/modes-1.png"alt="Using slash commands to switch modes"width="400" />
27
27
@@ -43,6 +43,7 @@ Four ways to switch modes:
43
43
44
44
| Aspect | Details |
45
45
|--------|---------|
46
+
|**Name**|`💻 Code`|
46
47
|**Description**| A skilled software engineer with expertise in programming languages, design patterns, and best practices |
47
48
|**Tool Access**| Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp`|
48
49
|**Ideal For**| Writing code, implementing features, debugging, and general development |
@@ -52,6 +53,7 @@ Four ways to switch modes:
52
53
53
54
| Aspect | Details |
54
55
|--------|---------|
56
+
|**Name**|`❓ Ask`|
55
57
|**Description**| A knowledgeable technical assistant focused on answering questions without changing your codebase |
56
58
|**Tool Access**| Limited access: `read`, `browser`, `mcp` only (cannot edit files or run commands) |
57
59
|**Ideal For**| Code explanation, concept exploration, and technical learning |
@@ -61,6 +63,7 @@ Four ways to switch modes:
61
63
62
64
| Aspect | Details |
63
65
|--------|---------|
66
+
|**Name**|`🏗️ Architect`|
64
67
|**Description**| An experienced technical leader and planner who helps design systems and create implementation plans |
65
68
|**Tool Access**| Access to `read`, `browser`, `mcp`, and restricted `edit` (markdown files only) |
66
69
|**Ideal For**| System design, high-level planning, and architecture discussions |
@@ -70,10 +73,21 @@ Four ways to switch modes:
70
73
71
74
| Aspect | Details |
72
75
|--------|---------|
76
+
|**Name**|`🪲 Debug`|
73
77
|**Description**| An expert problem solver specializing in systematic troubleshooting and diagnostics |
74
78
|**Tool Access**| Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp`|
75
79
|**Ideal For**| Tracking down bugs, diagnosing errors, and resolving complex issues |
76
-
|**Special Features**| Uses a methodical approach of analyzing, narrowing possibilities, and fixing issues |
80
+
|**Special Features**| Uses a methodical approach of analyzing, narrowing possibilities, and fixing issues. Includes custom instructions to reflect, distill possibilities, add logs, and confirm before fixing. |
|**Description**| A strategic workflow orchestrator (aka Boomerang Mode) that breaks down complex tasks and delegates them to specialized modes |
88
+
|**Tool Access**| Access to `read`, `browser`, `command`, `mcp`, and restricted `edit` (mode configuration files only: `.roomodes`, `custom_modes.json`) |
89
+
|**Ideal For**| Managing multi-step projects, coordinating work across different modes, and automating complex workflows |
90
+
|**Special Features**| Uses the [`new_task`](/features/tools/new-task) tool to delegate subtasks to other modes. See [Boomerang Tasks](/features/boomerang-tasks) for details. |
Copy file name to clipboardExpand all lines: docs/features/boomerang-tasks.mdx
+9-55Lines changed: 9 additions & 55 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ sidebar_label: 'Boomerang Tasks'
4
4
5
5
# Boomerang Tasks: Orchestrate Complex Workflows
6
6
7
-
Boomerang Tasks (also known as subtasks or task orchestration) allow you to break down complex projects into smaller, manageable pieces. Think of it like delegating parts of your work to specialized assistants. Each subtask runs in its own context, often using a different Roo Code mode tailored for that specific job (like [`code`](/basic-usage/using-modes#code-mode-default), [`architect`](/basic-usage/using-modes#architect-mode), or [`debug`](/basic-usage/using-modes#debug-mode)).
7
+
Boomerang Tasks (also known as subtasks or task orchestration) allow you to break down complex projects into smaller, manageable pieces using the built-in **`🪃 Orchestrator` Mode (aka Boomerang Mode)**. Think of it like delegating parts of your work to specialized assistants. Each subtask runs in its own context, often using a different Roo Code mode tailored for that specific job (like [`💻 Code`](/basic-usage/using-modes#code-mode-default), [`🏗️ Architect`](/basic-usage/using-modes#architect-mode), or [`🪲 Debug`](/basic-usage/using-modes#debug-mode)). The Orchestrator mode manages this process.
@@ -24,12 +24,10 @@ Boomerang Tasks (also known as subtasks or task orchestration) allow you to brea
24
24
25
25
<br />
26
26
27
-
:::info Boomerang Mode is a Custom Mode
28
-
The `Boomerang Mode` mentioned here is not a built-in mode but a custom mode you can create yourself. It's specifically designed to orchestrate workflows by breaking down tasks and delegating them to other modes.
27
+
:::info Orchestrator Mode is Built-In
28
+
The `🪃 Orchestrator` mode (previously achieved via a custom "Boomerang Mode") is now a built-in mode specifically designed to orchestrate workflows by breaking down tasks and delegating them to other modes. You no longer need to create a custom mode for this functionality.
29
29
30
-
[**Jump to Boomerang Mode Setup & Download**](#setting-up-boomerang-mode)
31
-
32
-
Learn more about [Built-in Modes](/basic-usage/using-modes#built-in-modes) or the general process of creating [Custom Modes](/features/custom-modes).
30
+
Learn more about [Built-in Modes](/basic-usage/using-modes#built-in-modes).
33
31
:::
34
32
35
33
## Why Use Boomerang Tasks?
@@ -41,9 +39,9 @@ Learn more about [Built-in Modes](/basic-usage/using-modes#built-in-modes) or th
41
39
42
40
## How It Works
43
41
44
-
1.Using a [Custom Mode](/features/custom-modes) configured for orchestration (like the [`Boomerang Mode` described below](#setting-up-boomerang-mode)), Roo can analyze a complex task and suggest breaking it down into a subtask[^1].
42
+
1.When in the [`🪃 Orchestrator`](/basic-usage/using-modes#orchestrator-mode) mode (aka Boomerang Mode), Roo analyzes a complex task and suggests breaking it down into a subtask[^1].
45
43
46
-
2. The parent task pauses, and the new subtask begins in a different mode[^2].
44
+
2. The parent task (in Orchestrator mode) pauses, and the new subtask begins in a different, specialized mode[^2].
47
45
3. When the subtask's goal is achieved, Roo signals completion.
48
46
4. The parent task resumes with only the summary[^3] of the subtask. The parent uses this summary to continue the main workflow.
49
47
@@ -58,54 +56,10 @@ Learn more about [Built-in Modes](/basic-usage/using-modes#built-in-modes) or th
58
56
Boomerang Tasks provide a powerful way to manage complex development workflows directly within Roo Code, leveraging specialized modes for maximum efficiency.
59
57
60
58
:::tip Keep Tasks Focused
61
-
62
-
## Setting Up Boomerang Mode
63
-
64
-
### Download Configuration
65
-
66
-
You can download the Boomerang Mode configuration file below. Rename the downloaded file to `.roomodes` and place it in the root directory of your project.
You can also create your own Boomerang Mode. Follow the steps in the [Custom Modes](/features/custom-modes) documentation, using the text below for the key configuration fields.
73
-
74
-
**Recommended Tool Access:** Ensure **all tool access checkboxes are unchecked** in the "Available Tools" section when creating the mode. Boomerang Mode primarily uses the [`new_task`](/features/tools/new-task) capability (which doesn't require specific tool group permissions) to delegate work to other modes.
75
-
76
-
**Role Definition:**
77
-
```text title="Copy this for the 'Role Definition' field"
78
-
You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.
79
-
```
80
-
81
-
**Mode-specific Custom Instructions:**
82
-
```text title="Copy this for the 'Mode-specific Custom Instructions' field"
83
-
Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:
84
-
85
-
1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.
86
-
87
-
2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:
88
-
* All necessary context from the parent task or previous subtasks required to complete the work.
89
-
* A clearly defined scope, specifying exactly what the subtask should accomplish.
90
-
* An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.
91
-
* An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.
92
-
* A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.
93
-
94
-
3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.
95
-
96
-
4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.
97
-
98
-
5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.
99
-
100
-
6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.
101
-
102
-
7. Suggest improvements to the workflow based on the results of completed subtasks.
103
-
104
-
Use subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.
105
-
```
59
+
Use subtasks (delegated via Orchestrator mode) to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.
106
60
:::
107
61
108
62
109
-
[^1]: This context is passed via the `message` parameter of the [`new_task`](/features/tools/new-task) tool.
110
-
[^2]: The mode for the subtask is specified via the `mode` parameter of the [`new_task`](/features/tools/new-task) tool during initiation.
63
+
[^1]: This context is passed via the `message` parameter of the [`new_task`](/features/tools/new-task) tool when the Orchestrator mode delegates the task.
64
+
[^2]: The mode for the subtask is specified via the `mode` parameter of the [`new_task`](/features/tools/new-task) tool during initiation by the Orchestrator mode.
111
65
[^3]: This summary is passed via the `result` parameter of the [`attempt_completion`](/features/tools/attempt-completion) tool when the subtask finishes.
Copy file name to clipboardExpand all lines: docs/features/custom-modes.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -153,7 +153,7 @@ Mode configurations are applied in this order:
153
153
2. Global mode configurations (from `custom_modes.json`)
154
154
3. Default mode configurations
155
155
156
-
This means that project-specific configurations will override global configurations, which in turn override default configurations. You can override any default mode (like "code", "debug", etc.) by including a mode with the same slug in either your global or project-specific configuration.
156
+
This means that project-specific configurations will override global configurations, which in turn override default configurations. You can override any default mode (like `code`, `debug`, `architect`, `ask`, `orchestrator` (aka Boomerang Mode)) by including a mode with the same slug in either your global or project-specific configuration.
157
157
158
158
***Note on Instruction Files:** Within the loading of mode-specific instructions from the filesystem, the directory `.roo/rules-{mode-slug}/` takes precedence over the single file `.roorules-{mode-slug}` found in the workspace root.
159
159
@@ -239,7 +239,7 @@ Each example shows different aspects of mode configuration:
239
239
240
240
## Overriding Default Modes
241
241
242
-
You can override Roo Code's built-in modes (like "code", "debug", "ask") with customized versions that better suit your workflow. This is done by creating a custom mode with the same slug as a default mode.
242
+
You can override Roo Code's built-in modes (like `💻 Code`, `🪲 Debug`, `❓ Ask`, `🏗️ Architect`, `🪃 Orchestrator` (aka Boomerang Mode)) with customized versions that better suit your workflow. This is done by creating a custom mode with the same slug as a default mode (e.g., `code`, `debug`, `orchestrator`).
243
243
244
244
### Overriding Modes Globally
245
245
@@ -253,8 +253,8 @@ To customize a default mode across all your projects:
253
253
```json
254
254
{
255
255
"customModes": [{
256
-
"slug": "code",
257
-
"name": "Code",
256
+
"slug": "code",// Matches the default 'code' mode slug
257
+
"name": "💻 Code (Global Override)", // Custom display name
258
258
"roleDefinition": "You are a software engineer with global-specific constraints",
259
259
"groups": [
260
260
"read",
@@ -265,7 +265,7 @@ To customize a default mode across all your projects:
265
265
}
266
266
```
267
267
268
-
This example replaces the default "Code" mode with a custom version that can only edit JavaScript and TypeScript files.
268
+
This example replaces the default `💻 Code` mode with a custom version that can only edit JavaScript and TypeScript files.
269
269
270
270
### Project-Specific Mode Override
271
271
@@ -279,8 +279,8 @@ To override a default mode for just one project:
279
279
```json
280
280
{
281
281
"customModes": [{
282
-
"slug": "code",
283
-
"name": "Code (Project-Specific)",
282
+
"slug": "code",// Matches the default 'code' mode slug
283
+
"name": "💻 Code (Project-Specific)",// Custom display name
284
284
"roleDefinition": "You are a software engineer with project-specific constraints",
285
285
"groups": [
286
286
"read",
@@ -297,8 +297,8 @@ Project-specific overrides take precedence over global overrides, which in turn
297
297
298
298
Common reasons to override built-in modes include:
299
299
300
-
***Restricting file access:** Limit a mode to specific file types for safety (e.g., restricting "Code" mode to only edit non-production files)
301
-
***Specializing behavior:** Customize a mode's expertise for your tech stack (e.g., making "Debug" mode focus on your framework)
300
+
***Restricting file access:** Limit a mode to specific file types for safety (e.g., restricting `💻 Code` mode to only edit non-production files)
301
+
***Specializing behavior:** Customize a mode's expertise for your tech stack (e.g., making `🪲 Debug` mode focus on your framework)
302
302
***Adding custom instructions:** Integrate project standards or team guidelines directly into modes
303
303
***Changing available tools:** Remove certain tools from modes to prevent unwanted operations
0 commit comments