Core concepts

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:

  1. Select the appropriate tool based on your request.
  2. Present the tool with its parameters for your review.
  3. Run the approved tool and show you the results.
  4. 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.

ToolPurposeExample use
read_fileRead the contents of one or more filesView configuration files, examine source code
search_filesSearch for patterns across multiple files using regexFind all TODO comments, locate function definitions
list_filesList files and directories in a specified pathExplore project structure, find specific file types
list_code_definition_namesExtract class, function, and method names from source filesGet 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.

ToolPurposeExample use
write_to_fileCreate a new file or completely rewrite an existing fileGenerate new components, create configuration files
apply_diffMake targeted changes to specific sections of a fileUpdate function logic, fix bugs, refactor code
insert_contentAdd new lines at a specific location in a fileAdd 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.

ToolPurposeExample use
execute_commandRun CLI commands in your workspaceInstall 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.

ToolPurposeExample use
use_mcp_toolAccess tools provided by connected MCP serversQuery databases, interact with APIs, access external services

Mode tools

Switch between different Bob Shell modes for specialized tasks.

ToolPurposeExample use
switch_modeChange 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.

ToolPurposeExample use
ask_followup_questionRequest clarification or additional details from youAsk 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

GroupTools includedDefault in AgentDefault in PlanDefault in Ask
readFile reading, search, and listing tools
editFile write and diff tools
executeShell command execution tools
mcpMCP server tools
skillSkill-related tools
todoTo-do list management tools
subagentSubagent spawning tools
modeMode-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"
How is this topic?