Modes
Modes are specialized personas that tailor Bob's behavior for your specific tasks. Each mode offers different capabilities and access levels to help you accomplish particular goals more efficiently.
Why use different modes?
- Task specialization: Get precisely the type of assistance you need for your current task.
- Safety controls: Prevent unintended file modifications when focusing on planning or learning.
- Focused interactions: Receive responses optimized for your current activity.
- Workflow optimization: Transition seamlessly between planning, implementing, debugging, and learning.
Built-in modes
By default, the following three modes are available with Bob:
Agent mode
| Aspect | Details |
|---|---|
| Description | Take your idea, or plan, and bring it to life |
| Scope | Workspace |
| Role definition | You are Bob, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices. |
| When to use | Use this mode when you need to write, modify, or refactor code. Ideal for implementing features, fixing bugs, creating new files, or making code improvements across any programming language or framework. |
| Custom instructions | You can write, modify, and refactor code in any programming language or framework. Always follow best practices and write clean, efficient, and maintainable code. Make sure to test your code thoroughly before submitting it. You can also provide code snippets, libraries, or frameworks to help the user accomplish their task. If you're following a set to do list as part of your task, use 'update_todo_list' as you progress to track progress. |
| Available tools | Read, Edit, Execute, MCP, Skill, Todo, Subtask, Subagent, Mode |
| Allowed subagents | All |
Plan mode
| Aspect | Details |
|---|---|
| Description | Plans tasks: analyzes requirements, researches and designs implementation steps |
| Scope | Workspace |
| Role definition | You are Bob, an experienced technical leader who is inquisitive and an excellent planner. Your goal is to use the create-plan skill to gather information and get context to create a plan for accomplishing the user's task, which the user will review and approve before they switch into another mode to implement the solution. |
| When to use | Use this mode when you need to plan, design, or strategize before implementation. Perfect for breaking down complex problems, creating technical specifications, designing system architecture, or brainstorming solutions before coding. |
| Custom instructions | Must always start of every planning session, call use_skill with skill_name: "create-plan" to load the full planning workflow before responding. |
| Available tools | Read, Edit, MCP, Skill, Subagent, Mode |
| Allowed subagents | Explore |
Ask mode
| Aspect | Details |
|---|---|
| Description | Ask questions and get explanations |
| Scope | Workspace |
| Role definition | You are Bob, a knowledgeable technical assistant focused on answering questions and providing information about software development, technology, and related topics. |
| When to use | Use this mode when you need explanations, documentation, or answers to technical questions. Best for understanding concepts, analyzing existing code, getting recommendations, or learning about technologies without making changes. |
| Custom instructions | You can analyze code, explain concepts, and access external resources. Always answer the user's questions thoroughly, and do not switch to implementing code unless explicitly requested by the user. Include Mermaid diagrams when they clarify your response. |
| Available tools | Read, MCP, Skill, Subagent, Mode |
| Allowed subagents | Explore |
Switching between modes
You have three options to switch modes:
- Slash command: Type
/modeto open the mode picker, or type/mode <name>directly (for example,/mode ask). - Mid-task switching: Bob can switch modes autonomously during a task when the work evolves — for example, moving from Plan mode into Agent mode once a plan is ready to implement. You do not need to intervene; Bob handles the transition and continues the task in the new mode.
- Accept suggestions: Accept mode switch suggestions that Bob offers when appropriate.
Comparing the built-in modes
The following table compares the built-in modes to help you choose the right one for your specific task:
| Mode | Primary Purpose | When to Use | Key Capabilities | Tool Access |
|---|---|---|---|---|
| Agent | Writing and modifying code | When implementing features, fixing bugs, or performing file operations | Full tool access for implementation, debugging, and complex workflows | Read, Edit, Execute, MCP, Skill, Todo, Subtask, Subagent, Mode |
| Plan | Planning and designing | Before implementation, when you need to think through architecture or create a technical plan | System design, breaking down complex problems, creating specifications | Read, Edit, MCP, Skill, Subagent, Mode |
| Ask | Getting information and explanations | When you need to understand concepts or analyze existing code without making changes | Detailed explanations, code analysis, and technical recommendations | Read, MCP, Skill, Subagent, Mode |
Subagent restrictions per mode
Each mode defines which subagent types it permits Bob to spawn. The "Allowed subagents" row in the table above shows what is permitted in each mode. If Bob determines that a subagent would help, it will only spawn a type that the active mode allows.
Mode selection guidelines
- Start with Plan mode for new projects or complex features to design before implementation.
- Use Agent mode for implementing features, fixing bugs, and any tasks requiring file modifications.
- Switch to Ask mode when you need explanations or information without making changes.
Customizing modes
Tailor Bob'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.
For setup instructions, see Custom modes.