Tools
Learn how Bob Shell uses specialized tools to read files, edit code, run commands, and interact with your development environment from the command line.
Tool workflow
When you describe what you want to accomplish in natural language, Bob Shell will:
- Select the appropriate tool based on your request.
- Present the tool with its parameters for your review.
- Run the approved tool and show you the results.
- Continue this process until your task is complete.
Tool categories
Bob Shell's tools are organized into categories based on their primary function. Understanding these categories helps you know what Bob Shell can do and how it accomplishes tasks.
Read tools
Access file content and understand code structure without making changes.
| Tool | Purpose | Example use |
|---|---|---|
read_file | Read the contents of one or more files | View configuration files, examine source code |
search_files | Search for patterns across multiple files using regex | Find all TODO comments, locate function definitions |
list_files | List files and directories in a specified path | Explore project structure, find specific file types |
list_code_definition_names | Extract class, function, and method names from source files | Get an overview of code organization |
When Bob Shell uses read tools: When you ask Bob Shell to review code, find specific patterns, or understand project structure.
Write tools
Create new files or modify existing code with precision.
| Tool | Purpose | Example use |
|---|---|---|
write_to_file | Create a new file or completely rewrite an existing file | Generate new components, create configuration files |
apply_diff | Make targeted changes to specific sections of a file | Update function logic, fix bugs, refactor code |
insert_content | Add new lines at a specific location in a file | Add imports, insert new functions |
When Bob Shell uses write tools: When you ask Bob Shell to create files, implement features, fix bugs, or refactor code.
Command tools
Run commands and perform system operations in your terminal.
| Tool | Purpose | Example use |
|---|---|---|
execute_command | Run CLI commands in your workspace | Install dependencies, run tests, build projects |
When Bob Shell uses command tools: When you ask Bob Shell to run commands, install packages, run scripts, or complete system operations.
MCP tools
Extend Bob Shell's capabilities through Model Context Protocol servers.
| Tool | Purpose | Example use |
|---|---|---|
use_mcp_tool | Access tools provided by connected MCP servers | Query databases, interact with APIs, access external services |
Mode tools
Switch between different Bob Shell modes for specialized tasks.
| Tool | Purpose | Example use |
|---|---|---|
switch_mode | Change to a different mode (Agent, Plan, Ask, and so on) | Switch to Plan mode for architecture design, Agent mode for implementation |
When Bob Shell uses mode tools: When the current task would benefit from a different mode's specialized capabilities.
Question tools
Gather additional information needed to complete tasks.
| Tool | Purpose | Example use |
|---|---|---|
ask_followup_question | Request clarification or additional details from you | Ask about preferred implementation approach, request missing information |
Tool groups
Tool groups are named collections of related tools that you can enable or disable together. Use tool groups to restrict what Bob Shell can do in a given session — for example, to prevent file writes in a read-only audit, or to disable command execution in a controlled environment.
Available tool groups
| Group | Tools included | Default in Agent | Default in Plan | Default in Ask |
|---|---|---|---|---|
read | File reading, search, and listing tools | ✓ | ✓ | ✓ |
edit | File write and diff tools | ✓ | ✓ | ✓ |
execute | Shell command execution tools | ✓ | — | — |
mcp | MCP server tools | ✓ | ✓ | ✓ |
skill | Skill-related tools | ✓ | ✓ | ✓ |
todo | To-do list management tools | ✓ | ✓ | — |
subagent | Subagent spawning tools | ✓ | — | — |
mode | Mode-switching tools | ✓ | ✓ | ✓ |
Disabling tool groups
Pass --disable-tool-groups to bob run or bob chat with a comma-separated list of group names:
# Disable command execution and MCP tools
bob run --disable-tool-groups execute,mcp "Review @src/"
# Run in a read-only mode
bob run --disable-tool-groups edit,execute,mcp "Summarize the codebase"You can also disable all MCP servers in one step with the dedicated flag:
bob run --disable-mcp "Explain @app.js"