Skip to main content

How Tools Work

Roo Code uses tools to interact with your code and environment. These specialized helpers perform specific actions like reading files, making edits, running commands, or searching your codebase. Tools provide automation for common development tasks without requiring manual execution.


Tool Workflow

Describe what you want to accomplish in natural language, and Roo Code will:

  1. Select the appropriate tool based on your request
  2. Present the tool with its parameters for your review
  3. Execute the approved tool and show you the results
  4. Continue this process until your task is complete

Tool Categories

CategoryPurposeTool Names
ReadAccess file content and code structureread_file, search_files, list_files, codebase_search, read_command_output
EditCreate or modify files and codewrite_to_file, apply_diff, apply_patch, edit, edit_file, search_replace
ExecuteRun commands and perform system operationsexecute_command
ImageGenerate AI-powered imagesgenerate_image
WorkflowManage task flow and contextask_followup_question, attempt_completion, switch_mode, new_task, skill

Example: Using Tools

Here's how a typical tool interaction works:

Tool approval interface showing Save and Reject buttons along with Auto-approve checkbox

The tool approval interface shows Save/Reject buttons and Auto-approve options.

User: Create a file named greeting.js that logs a greeting message

Roo Code: (Proposes the write_to_file tool as shown in the image above)

<write_to_file>
<path>greeting.js</path>
<content>
function greet(name) {
console.log(`Hello, ${name}!`);
}

greet('World');
</content>
<line_count>5</line_count>
</write_to_file>

User: (Clicks "Save" in the interface)

Roo Code: (Confirms file creation)


Tool Safety and Approval

Every tool use requires your explicit approval. When Roo proposes a tool, you'll see:

  • A "Save" button to approve and execute the tool
  • A "Reject" button to decline the proposed tool
  • An optional "Auto-approve" setting for trusted operations

This safety mechanism ensures you maintain control over which files are modified, what commands are executed, and how your codebase is changed. Always review tool proposals carefully before saving them.


Core Tools Reference

Tool NameDescriptionCategory
read_fileReads the content of a file with line numbersRead
search_filesSearches for text or regex patterns across filesRead
list_filesLists files and directories in a specified locationRead
codebase_searchPerforms semantic search across your indexed codebaseRead
read_command_outputRetrieves truncated output from previous commandsRead
write_to_fileCreates new files or overwrites existing onesEdit
apply_diffMakes precise changes to specific parts of a fileEdit
apply_patchApplies multi-file unified diff patchesEdit
editSearch-and-replace (first occurrence by default)Edit
edit_fileSearch-and-replace (all occurrences with count validation)Edit
search_replaceSearch-and-replace (all occurrences, simple)Edit
execute_commandRuns commands in the VS Code terminalExecute
generate_imageGenerates AI-powered images from text promptsImage
ask_followup_questionAsks you a clarifying questionWorkflow
attempt_completionIndicates the task is completeWorkflow
switch_modeChanges to a different operational modeWorkflow
new_taskCreates a new subtask with a specific starting modeWorkflow
skillLoads and executes predefined skill instructionsWorkflow

Learn More About Tools

For more detailed information about each tool, including complete parameter references and advanced usage patterns, see the Tool Use Overview documentation.