From a60a86f53a12e3846ad7bb98da1032fa38edbc31 Mon Sep 17 00:00:00 2001 From: SannidhyaSah Date: Fri, 13 Feb 2026 20:53:23 +0530 Subject: [PATCH 1/3] docs: add Skills tutorial video and update embedded video on skills page (#538) Co-authored-by: Sannidhya --- .../available-tools/apply-patch.md | 110 +++++++++ .../available-tools/browser-action.md | 184 --------------- .../available-tools/edit-file.md | 88 ++++++++ docs/advanced-usage/available-tools/edit.md | 91 ++++++++ .../available-tools/generate-image.md | 125 +++++++++++ .../list-code-definition-names.md | 145 ------------ .../available-tools/read-command-output.md | 123 +++++++++++ .../available-tools/read-file.md | 9 +- .../available-tools/search-replace.md | 86 +++++++ docs/advanced-usage/available-tools/skill.md | 103 +++++++++ .../available-tools/tool-use-overview.md | 22 +- docs/basic-usage/context-mentions.md | 24 +- docs/basic-usage/how-tools-work.md | 21 +- docs/features/api-configuration-profiles.mdx | 2 +- docs/features/auto-approving-actions.mdx | 31 +-- docs/features/browser-use.mdx | 209 ------------------ docs/features/codebase-indexing.mdx | 6 +- .../experimental/concurrent-file-edits.md | 16 +- .../experimental/experimental-features.md | 1 - docs/features/index.md | 1 - .../intelligent-context-condensing.mdx | 2 +- docs/features/keyboard-shortcuts.md | 1 + docs/features/mcp/using-mcp-in-roo.mdx | 9 +- docs/features/rooignore.md | 1 - docs/features/settings-management.md | 160 ++++++++++++++ docs/features/shell-integration.mdx | 34 +++ docs/features/skills.mdx | 2 +- docs/features/task-todo-list.mdx | 34 +++ docs/providers/cerebras.md | 54 ----- docs/providers/chutes.md | 42 ---- docs/providers/deepinfra.md | 46 ---- docs/providers/doubao.md | 47 ---- docs/providers/featherless.md | 47 ---- docs/providers/glama.md | 51 ----- docs/providers/groq.md | 43 ---- docs/providers/huggingface.md | 101 --------- docs/providers/index.json | 66 +----- docs/providers/io-intelligence.md | 42 ---- docs/providers/moonshot.md | 49 ++++ docs/providers/unbound.md | 52 ----- docs/tutorial-videos.json | 4 + docs/update-notes/v3.16.0.md | 6 +- docs/update-notes/v3.16.md | 4 +- docs/update-notes/v3.18.0.mdx | 4 +- docs/update-notes/v3.18.mdx | 4 +- docs/update-notes/v3.19.0.mdx | 2 +- docs/update-notes/v3.24.0.mdx | 2 +- docs/update-notes/v3.25.11.mdx | 2 +- docs/update-notes/v3.25.4.mdx | 2 +- docs/update-notes/v3.25.5.mdx | 2 +- docs/update-notes/v3.26.7.mdx | 2 +- docs/update-notes/v3.27.0.mdx | 2 +- docs/update-notes/v3.28.2.mdx | 2 +- docs/update-notes/v3.28.7.mdx | 2 +- docs/update-notes/v3.29.mdx | 2 +- docs/update-notes/v3.34.0.mdx | 2 +- docs/update-notes/v3.34.mdx | 2 +- docusaurus.config.ts | 31 ++- sidebars.ts | 3 - 59 files changed, 1139 insertions(+), 1221 deletions(-) create mode 100644 docs/advanced-usage/available-tools/apply-patch.md delete mode 100644 docs/advanced-usage/available-tools/browser-action.md create mode 100644 docs/advanced-usage/available-tools/edit-file.md create mode 100644 docs/advanced-usage/available-tools/edit.md create mode 100644 docs/advanced-usage/available-tools/generate-image.md delete mode 100644 docs/advanced-usage/available-tools/list-code-definition-names.md create mode 100644 docs/advanced-usage/available-tools/read-command-output.md create mode 100644 docs/advanced-usage/available-tools/search-replace.md create mode 100644 docs/advanced-usage/available-tools/skill.md delete mode 100644 docs/features/browser-use.mdx delete mode 100644 docs/providers/cerebras.md delete mode 100644 docs/providers/chutes.md delete mode 100644 docs/providers/deepinfra.md delete mode 100644 docs/providers/doubao.md delete mode 100644 docs/providers/featherless.md delete mode 100644 docs/providers/glama.md delete mode 100644 docs/providers/groq.md delete mode 100644 docs/providers/huggingface.md delete mode 100644 docs/providers/io-intelligence.md create mode 100644 docs/providers/moonshot.md delete mode 100644 docs/providers/unbound.md diff --git a/docs/advanced-usage/available-tools/apply-patch.md b/docs/advanced-usage/available-tools/apply-patch.md new file mode 100644 index 00000000..ec70ff81 --- /dev/null +++ b/docs/advanced-usage/available-tools/apply-patch.md @@ -0,0 +1,110 @@ +--- +description: Apply unified diff patches to multiple files in a single operation using the apply_patch tool in Roo Code. +keywords: + - apply_patch + - patch + - unified diff + - multi-file edits + - file operations + - Roo Code tools + - diff patches +--- + +# apply_patch + +The `apply_patch` tool applies unified diff patches to multiple files in a single operation. It supports custom patch headers for adding, deleting, and updating files, making it ideal for complex multi-file refactoring operations. + +--- + +## Parameters + +The tool accepts these parameters: + +- `patch` (required): A unified diff patch string with custom headers. Supports `*** Add File:`, `*** Delete File:`, and `*** Update File:` headers. + +--- + +## What It Does + +This tool processes unified diff patches containing operations for multiple files. It parses the patch content, identifies file operations (add, delete, update), and applies the changes atomically. Unlike [`apply_diff`](/advanced-usage/available-tools/apply-diff) which handles single-file search-and-replace operations, `apply_patch` works with traditional unified diff format. + +--- + +## When is it used? + +- When applying patches generated by version control systems or diff tools +- When performing complex multi-file refactoring with precise line-level changes +- When migrating code changes from one branch or repository to another +- When bulk-adding, updating, or removing multiple files in one operation +- When working with patches from external sources or automated tools + +--- + +## Key Features + +- Supports multiple files in a single patch operation +- Handles file addition, deletion, and modification +- Uses unified diff format for precise line-level control +- Custom headers (`*** Add File:`, `*** Delete File:`, `*** Update File:`) for clarity +- Atomic operations with validation before applying changes +- Compatible with standard diff/patch tooling output + +--- + +## Limitations + +- Requires proper unified diff format syntax +- Line numbers and context must match existing file content +- Cannot apply patches with conflicts or mismatched context +- Less flexible than search-and-replace tools for fuzzy matching +- Requires exact line-level accuracy in patches + +--- + +## How It Works + +When the `apply_patch` tool is invoked, it follows this process: + +1. **Patch Parsing**: Parses the patch string to identify custom headers (`*** Add File:`, `*** Delete File:`, `*** Update File:`) and unified diff blocks. +2. **Operation Identification**: Groups changes by file path and operation type (add, delete, update). +3. **Validation**: Validates that target files exist (for updates/deletes) or can be created (for adds). +4. **RooIgnore Check**: Ensures target files are not restricted by `.rooignore` rules. +5. **User Review**: Presents the patch operations for user review and approval. +6. **Application**: Applies approved changes to each file sequentially. +7. **Feedback**: Reports success or failure for each file operation. + +--- + +## Patch Format + +The patch format uses custom headers followed by unified diff blocks: + +```diff +*** Add File: src/utils/newHelper.ts +--- /dev/null ++++ b/src/utils/newHelper.ts +@@ -0,0 +1,5 @@ ++export function helperFunction(value: string): string { ++ return value.toUpperCase(); ++} + +*** Update File: src/main.ts +--- a/src/main.ts ++++ b/src/main.ts +@@ -10,7 +10,7 @@ + import { config } from './config'; +-const timeout = 5000; ++const timeout = 10000; + + function main() { + +*** Delete File: src/deprecated/oldUtil.ts +``` + +--- + +## Relation to Other Tools + +- [`apply_diff`](/advanced-usage/available-tools/apply-diff): Use for single-file search-and-replace with fuzzy matching +- `apply_patch`: Use for multi-file operations with unified diff format +- [`write_to_file`](/advanced-usage/available-tools/write-to-file): Use for creating entire new files diff --git a/docs/advanced-usage/available-tools/browser-action.md b/docs/advanced-usage/available-tools/browser-action.md deleted file mode 100644 index fe25bab6..00000000 --- a/docs/advanced-usage/available-tools/browser-action.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -description: Automate web interactions in Roo Code using the browser_action tool for navigation, clicking, typing, and visual feedback. -keywords: - - browser_action - - web automation - - Puppeteer - - browser control - - Roo Code tools - - web testing - - screenshots ---- - -# browser_action - -The `browser_action` tool enables web automation and interaction via a Puppeteer-controlled browser. It allows Roo to launch browsers, navigate to websites, click elements, type text, and scroll pages with visual feedback through screenshots. - ---- - -## Parameters - -The tool accepts these parameters: - -- `action` (required): The action to perform: - * `launch`: Start a new browser session at a URL - * `click`: Click at specific x,y coordinates - * `type`: Type text via the keyboard - * `scroll_down`: Scroll down one page height - * `scroll_up`: Scroll up one page height - * `close`: End the browser session -- `url` (optional): The URL to navigate to when using the `launch` action -- `coordinate` (optional): The x,y coordinates for the `click` action (e.g., "450,300") -- `text` (optional): The text to type when using the `type` action - ---- - -## What It Does - -This tool creates an automated browser session that Roo can control to navigate websites, interact with elements, and perform tasks that require browser automation. Each action provides a screenshot of the current state, enabling visual verification of the process. - ---- - -## When is it used? - -- When Roo needs to interact with web applications or websites -- When testing user interfaces or web functionality -- When capturing screenshots of web pages -- When demonstrating web workflows visually - ---- - -## Key Features - -- Provides visual feedback with screenshots after each action and captures console logs -- Supports complete workflows from launching to page interaction to closing -- Enables precise interactions via coordinates, keyboard input, and scrolling -- Maintains consistent browser sessions with intelligent page loading detection -- Operates in two modes: local (isolated Puppeteer instance) or remote (connects to existing Chrome) -- Handles errors gracefully with automatic session cleanup and detailed messages -- Optimizes visual output with support for various formats and quality settings -- Tracks interaction state with position indicators and action history - ---- - -## Browser Modes - -The tool operates in two distinct modes: - -### Local Browser Mode (Default) -- Downloads and manages a local Chromium instance through Puppeteer -- Creates a fresh browser environment with each launch -- No access to existing user profiles, cookies, or extensions -- Consistent, predictable behavior in a sandboxed environment -- Completely closes the browser when the session ends - -### Remote Browser Mode -- Connects to an existing Chrome/Chromium instance running with remote debugging enabled -- Can access existing browser state, cookies, and potentially extensions -- Faster startup as it reuses an existing browser process -- Supports connecting to browsers in Docker containers or on remote machines -- Only disconnects (doesn't close) from the browser when session ends -- Requires Chrome to be running with remote debugging port open (typically port 9222) - ---- - -## Limitations - -- While the browser is active, only `browser_action` tool can be used -- Browser coordinates are viewport-relative, not page-relative -- Click actions must target visible elements within the viewport -- Browser sessions must be explicitly closed before using other tools -- Browser window has configurable dimensions (default 900x600) -- Cannot directly interact with browser DevTools -- Browser sessions are temporary and not persistent across Roo restarts -- Works only with Chrome/Chromium browsers, not Firefox or Safari -- Local mode has no access to existing cookies; remote mode requires Chrome with debugging enabled - ---- - -## How It Works - -When the `browser_action` tool is invoked, it follows this process: - -1. **Action Validation and Browser Management**: - - Validates the required parameters for the requested action - - For `launch`: Initializes a browser session (either local Puppeteer instance or remote Chrome) - - For interaction actions: Uses the existing browser session - - For `close`: Terminates or disconnects from the browser appropriately - -2. **Page Interaction and Stability**: - - Ensures pages are fully loaded using DOM stability detection via `waitTillHTMLStable` algorithm - - Executes requested actions (navigation, clicking, typing, scrolling) with proper timing - - Monitors network activity after clicks and waits for navigation when necessary - -3. **Visual Feedback**: - - Captures optimized screenshots using WebP format (with PNG fallback) - - Records browser console logs for debugging purposes - - Tracks mouse position and maintains paginated history of actions - -4. **Session Management**: - - Maintains browser state across multiple actions - - Handles errors and automatically cleans up resources - - Enforces proper workflow sequence (launch → interactions → close) - ---- - -## Workflow Sequence - -Browser interactions must follow this specific sequence: - -1. **Session Initialization**: All browser workflows must start with a `launch` action -2. **Interaction Phase**: Multiple `click`, `type`, and scroll actions can be performed -3. **Session Termination**: All browser workflows must end with a `close` action -4. **Tool Switching**: After closing the browser, other tools can be used - ---- - -## Examples When Used - -- When creating a web form submission process, Roo launches a browser, navigates to the form, fills out fields with the `type` action, and clicks submit. -- When testing a responsive website, Roo navigates to the site and uses scroll actions to examine different sections. -- When capturing screenshots of a web application, Roo navigates through different pages and takes screenshots at each step. -- When demonstrating an e-commerce checkout flow, Roo simulates the entire process from product selection to payment confirmation. - ---- - -## Usage Examples - -Launching a browser and navigating to a website: -``` - -launch -https://example.com - -``` - -Clicking at specific coordinates (e.g., a button): -``` - -click -450,300 - -``` - -Typing text into a focused input field: -``` - -type -Hello, World! - -``` - -Scrolling down to see more content: -``` - -scroll_down - -``` - -Closing the browser session: -``` - -close - -``` diff --git a/docs/advanced-usage/available-tools/edit-file.md b/docs/advanced-usage/available-tools/edit-file.md new file mode 100644 index 00000000..c5415c11 --- /dev/null +++ b/docs/advanced-usage/available-tools/edit-file.md @@ -0,0 +1,88 @@ +--- +description: Replace all occurrences of text in files using the edit_file search-and-replace tool in Roo Code. +keywords: + - edit_file + - search and replace + - file editing + - text replacement + - Roo Code tools + - code modifications +--- + +# edit_file + +The `edit_file` tool performs search-and-replace operations on files, replacing **all occurrences** of specified text. It provides a straightforward way to make consistent changes across a file when you need to update every instance of a pattern. + +--- + +## Parameters + +The tool accepts these parameters: + +- `file_path` (required): The path of the file to modify relative to the current working directory. +- `old_string` (required): The exact text to search for and replace. +- `new_string` (required): The text to replace all occurrences with. +- `expected_replacements` (optional): Expected number of replacements. If specified, the operation fails if the actual count doesn't match. + +--- + +## What It Does + +This tool searches for an exact string in a file and replaces **all occurrences** with new text. The replacement is performed globally across the entire file, making it ideal for consistent updates like renaming variables, updating API endpoints, or fixing repeated patterns. + +--- + +## When is it used? + +- When renaming variables, functions, or identifiers throughout a file +- When updating repeated string literals or configuration values +- When fixing consistent typos or outdated terminology +- When replacing all instances of a deprecated API or import path +- When you need to ensure exact match replacement without fuzzy logic + +--- + +## Key Features + +- Replaces **all occurrences** by default (global replacement) +- Exact string matching (no regex or fuzzy matching) +- Optional validation via `expected_replacements` parameter +- Shows preview of changes before applying +- Fails safely if expected replacement count doesn't match actual +- Preserves file formatting and structure + +--- + +## Limitations + +- Requires exact string matches (case-sensitive, whitespace-sensitive) +- Always replaces all occurrences (cannot target specific instances) +- Cannot use regular expressions or patterns +- Not suitable for context-dependent replacements +- Less precise than [`apply_diff`](/advanced-usage/available-tools/apply-diff) for complex edits + +--- + +## How It Works + +When the `edit_file` tool is invoked, it follows this process: + +1. **Parameter Validation**: Validates required `file_path`, `old_string`, and `new_string` parameters. +2. **File Loading**: Reads the target file content. +3. **Search Operation**: Searches for all occurrences of `old_string` in the file. +4. **Count Validation**: If `expected_replacements` is specified, validates the actual occurrence count matches. +5. **Replacement**: Replaces all found occurrences with `new_string`. +6. **User Review**: Shows a preview of changes for user approval. +7. **Application**: Applies changes to the file if approved. +8. **Feedback**: Reports the number of replacements made. + +--- + +## Relation to Other Tools + +- `edit_file`: Replaces **all occurrences** (this tool) +- [`edit`](/advanced-usage/available-tools/edit): Replaces **first occurrence** only (unless `replace_all: true`) +- [`search_replace`](/advanced-usage/available-tools/search-replace): Also replaces **all occurrences** +- [`apply_diff`](/advanced-usage/available-tools/apply-diff): Use for precise, context-aware edits with fuzzy matching + +These are different implementations of search-and-replace with varying default behaviors. diff --git a/docs/advanced-usage/available-tools/edit.md b/docs/advanced-usage/available-tools/edit.md new file mode 100644 index 00000000..f19ab488 --- /dev/null +++ b/docs/advanced-usage/available-tools/edit.md @@ -0,0 +1,91 @@ +--- +description: Replace the first or all occurrences of text using the edit search-and-replace tool in Roo Code. +keywords: + - edit + - search and replace + - file editing + - text replacement + - Roo Code tools + - code modifications +--- + +# edit + +The `edit` tool performs search-and-replace operations on files, replacing either the **first occurrence** (default) or **all occurrences** when explicitly specified. It provides flexible control over replacement scope. + +--- + +## Parameters + +The tool accepts these parameters: + +- `file_path` (required): The path of the file to modify relative to the current working directory. +- `old_string` (required): The exact text to search for and replace. +- `new_string` (required): The text to replace occurrences with. +- `replace_all` (optional): Boolean flag. When `true`, replaces all occurrences. When `false` or omitted, replaces only the first occurrence. + +--- + +## What It Does + +This tool searches for an exact string in a file and replaces either the first occurrence or all occurrences based on the `replace_all` parameter. By default, it replaces only the **first match**, making it suitable for targeted single-instance changes. + +--- + +## When is it used? + +- When updating a single specific occurrence of text (default behavior) +- When the first instance requires different handling than subsequent ones +- When you need explicit control over whether to replace once or globally +- When making targeted changes to specific instances without affecting others +- When replacing all instances by setting `replace_all: true` + +--- + +## Key Features + +- Replaces **first occurrence only** by default (conservative behavior) +- Optional `replace_all` parameter for global replacement +- Exact string matching (no regex or fuzzy matching) +- Shows preview of changes before applying +- Preserves file formatting and structure +- User approval required before applying changes + +--- + +## Limitations + +- Requires exact string matches (case-sensitive, whitespace-sensitive) +- Cannot use regular expressions or patterns +- Not suitable for context-dependent replacements requiring code analysis +- Less precise than [`apply_diff`](/advanced-usage/available-tools/apply-diff) for complex edits +- Cannot specify which specific occurrence to replace (first vs. second vs. third) + +--- + +## How It Works + +When the `edit` tool is invoked, it follows this process: + +1. **Parameter Validation**: Validates required `file_path`, `old_string`, and `new_string` parameters. +2. **File Loading**: Reads the target file content. +3. **Search Operation**: Searches for occurrences of `old_string` in the file. +4. **Replacement Logic**: + - If `replace_all` is `false` or omitted: replaces only the first occurrence + - If `replace_all` is `true`: replaces all occurrences +5. **User Review**: Shows a preview of changes for user approval. +6. **Application**: Applies changes to the file if approved. +7. **Feedback**: Reports the result of the operation. + +--- + +## Relation to Other Tools + +- `edit`: Replaces **first occurrence** by default (this tool) +- [`edit_file`](/advanced-usage/available-tools/edit-file): Always replaces **all occurrences** +- [`search_replace`](/advanced-usage/available-tools/search-replace): Always replaces **all occurrences** +- [`apply_diff`](/advanced-usage/available-tools/apply-diff): Use for precise, context-aware edits with fuzzy matching + +:::info Deprecated Alias +`SearchAndReplaceTool` is a deprecated internal alias for `EditTool`. They are the same tool. +::: diff --git a/docs/advanced-usage/available-tools/generate-image.md b/docs/advanced-usage/available-tools/generate-image.md new file mode 100644 index 00000000..b230ba70 --- /dev/null +++ b/docs/advanced-usage/available-tools/generate-image.md @@ -0,0 +1,125 @@ +--- +description: Generate or edit images using AI models through the generate_image tool in Roo Code. +keywords: + - generate_image + - AI images + - image generation + - image editing + - OpenRouter + - Roo Code tools + - experimental +--- + +# generate_image + +The `generate_image` tool creates new images from text prompts or modifies existing images using AI models through the OpenRouter API. This experimental feature enables visual content generation and transformation within your development workflow. + +--- + +## Parameters + +The tool accepts these parameters: + +- `prompt` (required): The text description of what to generate or how to edit the image. +- `path` (required): The file path where the generated/edited image should be saved (relative to the workspace). The tool automatically adds the appropriate extension if not provided. +- `image` (optional): The file path to an input image to edit or transform (relative to the workspace). Supported formats: PNG, JPG, JPEG, GIF, WEBP. + +--- + +## What It Does + +This tool generates images from text descriptions or applies transformations to existing images using AI models. When no input image is provided, it creates new images from scratch. When an input image is provided, it applies the prompt as editing instructions to transform the image. + +--- + +## When is it used? + +- When creating visual assets for documentation, mockups, or prototypes +- When generating placeholder images or illustrations +- When transforming existing images (style transfer, enhancement, modifications) +- When creating diagrams or visual explanations from descriptions +- When prototyping UI elements visually + +--- + +## Key Features + +- **Text-to-image generation**: Create images from descriptive prompts +- **Image-to-image transformation**: Edit or transform existing images +- Supports multiple input formats (PNG, JPG, JPEG, GIF, WEBP) +- Automatic file extension handling +- Powered by OpenRouter API for access to various AI models +- Experimental feature with ongoing improvements + +--- + +## Limitations + +- Requires OpenRouter API configuration +- Image quality depends on the AI model and prompt quality +- Generation time varies based on complexity and model +- Experimental feature: behavior may change in future releases +- API usage may incur costs based on OpenRouter pricing +- Some image transformations may not produce expected results + +--- + +## How It Works + +When the `generate_image` tool is invoked, it follows this process: + +1. **Parameter Validation**: Validates required `prompt` and `path` parameters. +2. **Mode Selection**: + - If `image` parameter is provided: operates in **edit mode** (transform existing image) + - Otherwise: operates in **generation mode** (create new image from prompt) +3. **API Request**: Sends request to OpenRouter API with prompt and optional input image. +4. **Image Processing**: Receives generated/edited image from the API. +5. **File Saving**: Saves the image to the specified `path` with appropriate extension. +6. **Feedback**: Reports success and the location of the generated image. + +--- + +## Usage Examples + +Generating a new image: +``` + + A beautiful sunset over mountains with vibrant orange and purple colors + images/sunset.png + +``` + +Editing an existing image: +``` + + Transform this image into a watercolor painting style + images/watercolor-output.png + images/original-photo.jpg + +``` + +Upscaling and enhancing: +``` + + Upscale this image to higher resolution, enhance details, improve clarity and sharpness while maintaining the original content and composition + images/enhanced-photo.png + images/low-res-photo.jpg + +``` + +--- + +## Relation to Features + +The `generate_image` tool is the programmatic interface to the [Image Generation](/features/image-generation) feature. For comprehensive documentation on configuration, model selection, API setup, and advanced usage, see the [Image Generation feature documentation](/features/image-generation). + +--- + +## Configuration + +Image generation requires OpenRouter API configuration. See the [Image Generation](/features/image-generation) feature page for detailed setup instructions including: + +- OpenRouter API key configuration +- Model selection and capabilities +- Best practices for prompts +- Troubleshooting and limitations diff --git a/docs/advanced-usage/available-tools/list-code-definition-names.md b/docs/advanced-usage/available-tools/list-code-definition-names.md deleted file mode 100644 index c4e3de89..00000000 --- a/docs/advanced-usage/available-tools/list-code-definition-names.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -description: Get a structural overview of your codebase by listing classes, functions, and interfaces with the list_code_definition_names tool. -keywords: - - list_code_definition_names - - code structure - - code definitions - - Roo Code tools - - codebase overview - - Tree-sitter ---- - -# list_code_definition_names - -The `list_code_definition_names` tool provides a structural overview of your codebase by listing code definitions from source files at the top level of a specified directory. It helps Roo understand code architecture by displaying line numbers and definition snippets. - ---- - -## Parameters - -The tool accepts these parameters: - -- `path` (required): The path of the directory to list top level source code definitions for, relative to the current working directory - ---- - -## What It Does - -This tool scans source code files at the top level of a specified directory and extracts code definitions like classes, functions, and interfaces. It displays the line numbers and actual code for each definition, providing a quick way to map the important components of your codebase. - ---- - -## When is it used? - -- When Roo needs to understand your codebase architecture quickly -- When Roo needs to locate important code constructs across multiple files -- When planning refactoring or extensions to existing code -- Before diving into implementation details with other tools -- When identifying relationships between different parts of your codebase - ---- - -## Key Features - -- Extracts classes, functions, methods, interfaces, and other definitions from source files -- Displays line numbers and actual source code for each definition -- Supports multiple programming languages including JavaScript, TypeScript, Python, Rust, Go, C++, C, C#, Ruby, Java, PHP, Swift, and Kotlin -- Processes only files at the top level of the specified directory (not subdirectories) -- Limits processing to a maximum of 50 files for performance -- Focuses on top-level definitions to avoid overwhelming detail -- Helps identify code organization patterns across the project -- Creates a mental map of your codebase's architecture -- Works in conjunction with other tools like `read_file` for deeper analysis - ---- - -## Limitations - -- Only identifies top-level definitions, not nested ones -- Only processes files at the top level of the specified directory, not subdirectories -- Limited to processing a maximum of 50 files per request -- Dependent on language-specific parsers, with varying detection quality -- May not recognize all definitions in languages with complex syntax -- Not a substitute for reading code to understand implementation details -- Cannot detect runtime patterns or dynamic code relationships -- Does not provide information about how definitions are used -- May have reduced accuracy with highly dynamic or metaprogrammed code -- Limited to specific languages supported by the implemented Tree-sitter parsers - ---- - -## How It Works - -When the `list_code_definition_names` tool is invoked, it follows this process: - -1. **Parameter Validation**: Validates the required `path` parameter -2. **Path Resolution**: Resolves the relative path to an absolute path -3. **Directory Scanning**: Scans only the top level of the specified directory for source code files (not recursive) -4. **File Filtering**: Limits processing to a maximum of 50 files -5. **Language Detection**: Identifies file types based on extensions (.js, .jsx, .ts, .tsx, .py, .rs, .go, .cpp, .hpp, .c, .h, .cs, .rb, .java, .php, .swift, .kt, .kts) -6. **Code Parsing**: Uses Tree-sitter to parse code and extract definitions through these steps: - - Parsing file content into an Abstract Syntax Tree (AST) - - Creating a query using a language-specific query string - - Sorting the captures by their position in the file -7. **Result Formatting**: Outputs definitions with line numbers and actual source code - ---- - -## Output Format - -The output shows file paths followed by line numbers and the actual source code of each definition. For example: - -``` -src/utils.js: -0--0 | export class HttpClient { -5--5 | formatDate() { -10--10 | function parseConfig(data) { - -src/models/User.js: -0--0 | interface UserProfile { -10--10 | export class User { -20--20 | function createUser(data) { -``` - -Each line displays: -- The start and end line numbers of the definition -- The pipe symbol (|) as a separator -- The actual source code of the definition - -This output format helps you quickly see both where definitions are located in the file and their implementation details. - ---- - -## Examples When Used - -- When starting a new task, Roo first lists key code definitions to understand the overall structure of your project. -- When planning refactoring work, Roo uses this tool to identify classes and functions that might be affected. -- When exploring unfamiliar codebases, Roo maps the important code constructs before diving into implementation details. -- When adding new features, Roo identifies existing patterns and relevant code definitions to maintain consistency. -- When troubleshooting bugs, Roo maps the codebase structure to locate potential sources of the issue. -- When planning architecture changes, Roo identifies all affected components across files. - ---- - -## Usage Examples - -Listing code definitions in the current directory: -``` - -. - -``` - -Examining a specific module's structure: -``` - -src/components - -``` - -Exploring a utility library: -``` - -lib/utils - -``` diff --git a/docs/advanced-usage/available-tools/read-command-output.md b/docs/advanced-usage/available-tools/read-command-output.md new file mode 100644 index 00000000..019e9ae1 --- /dev/null +++ b/docs/advanced-usage/available-tools/read-command-output.md @@ -0,0 +1,123 @@ +--- +description: Retrieve full command output that was truncated in execute_command using the read_command_output tool in Roo Code. +keywords: + - read_command_output + - command output + - truncated output + - CLI output + - terminal output + - Roo Code tools + - artifact retrieval +--- + +# read_command_output + +The `read_command_output` tool retrieves the full output from commands executed via [`execute_command`](/advanced-usage/available-tools/execute-command) when the output was too large and got truncated. It provides access to stored command output artifacts with advanced filtering and pagination capabilities. + +--- + +## Parameters + +The tool accepts these parameters: + +- `artifact_id` (required): The artifact filename from the truncated output message (e.g., `cmd-1706119234567.txt`). +- `search` (optional): Pattern to filter lines (supports regex or literal strings). Case-insensitive. Similar to `grep`. **Omit entirely if not needed** (do not pass null or empty string). +- `offset` (optional): Byte offset to start reading from for pagination. Default: 0. +- `limit` (optional): Maximum bytes to return. Default: 40KB (40960 bytes). + +--- + +## What It Does + +When [`execute_command`](/advanced-usage/available-tools/execute-command) produces very large output, it gets truncated and saved to an artifact file. This tool retrieves the full output from those artifacts, with support for searching specific patterns (like grep) and paginating through large results. + +--- + +## When is it used? + +- When [`execute_command`](/advanced-usage/available-tools/execute-command) output includes the message: `[OUTPUT TRUNCATED - Full output saved to artifact: cmd-XXXX.txt]` +- When you need to search for specific errors or patterns in large command output +- When analyzing verbose build logs, test results, or compilation output +- When paginating through command output that's too large to view at once +- When filtering command output to find relevant lines without reading everything + +--- + +## Key Features + +- **Read mode**: Access full output with pagination using `offset` and `limit` +- **Search mode**: Filter lines matching a regex or literal pattern (case-insensitive) +- Handles very large command outputs efficiently +- Similar to `grep` for filtering output +- Byte-level pagination for precise control +- Access to complete untruncated command output + +--- + +## Limitations + +- Only works with artifacts created by [`execute_command`](/advanced-usage/available-tools/execute-command) +- Artifacts may be cleaned up after a certain time period +- Search patterns are case-insensitive only +- Returns content as bytes with limits (not entire files at once for very large outputs) +- Requires the exact artifact ID from the truncation message + +--- + +## How It Works + +When the `read_command_output` tool is invoked, it follows this process: + +1. **Artifact Lookup**: Locates the stored command output artifact by ID. +2. **Mode Selection**: + - If `search` parameter is provided: operates in **search mode** (filter lines) + - Otherwise: operates in **read mode** (return raw content with offset/limit) +3. **Search Mode** (if `search` provided): + - Applies regex or literal pattern matching to each line + - Returns only lines that match the pattern + - Case-insensitive matching +4. **Read Mode** (if no `search`): + - Reads from `offset` byte position + - Returns up to `limit` bytes + - Supports pagination through large files +5. **Result Return**: Returns filtered or paginated content. + +--- + +## Usage Examples + +Reading truncated output: +``` +When execute_command shows: +"[OUTPUT TRUNCATED - Full output saved to artifact: cmd-1706119234567.txt]" + +Use: + + cmd-1706119234567.txt + +``` + +Searching for errors: +``` + + cmd-1706119234567.txt + error|failed|Error + +``` + +Paginating through output (reading next chunk): +``` + + cmd-1706119234567.txt + 40960 + 40960 + +``` + +--- + +## Relation to Other Tools + +- [`execute_command`](/advanced-usage/available-tools/execute-command): Creates the artifacts that this tool reads +- [`search_files`](/advanced-usage/available-tools/search-files): Use for searching project files with regex +- `read_command_output`: Use for searching command output artifacts diff --git a/docs/advanced-usage/available-tools/read-file.md b/docs/advanced-usage/available-tools/read-file.md index bc56e777..c4d50b75 100644 --- a/docs/advanced-usage/available-tools/read-file.md +++ b/docs/advanced-usage/available-tools/read-file.md @@ -77,7 +77,6 @@ This tool reads the content of a specified file and returns it with line numbers - **Large file preview**: Returns a 100KB preview for very large files to enable quick inspection - **Graceful error recovery**: Recovers from stream errors and guides you to use line_range for targeted reads - Automatically truncates large text files when no line range is specified, showing the beginning of the file -- Appends `list_code_definition_names` for a code structure overview when content is truncated by line limits - Efficiently streams only requested line ranges for better performance - Makes it easy to discuss specific parts of code with line numbering - **Multi-file support**: Read multiple files simultaneously with batch approval @@ -163,11 +162,10 @@ The tool uses a clear decision hierarchy to determine how to read a file: - Applies only when all of the following are true: - Neither `start_line` nor `end_line` is specified. - The file is identified as a text‑based file (not binary like PDF/DOCX/XLSX/IPYNB). - - The file’s total line count exceeds the `maxReadFileLine` setting (configurable; UI default may be 500; backend uses `-1`—no line limit—when unset). + - The file's total line count exceeds the `maxReadFileLine` setting (configurable; UI default may be 500; backend uses `-1`—no line limit—when unset). - When automatic truncation occurs: - The tool reads only the first `maxReadFileLine` lines. - It appends a notice like: `Showing only X of Y total lines. Use line_range if you need to read more lines.` - - For code files, it appends `list_code_definition_names` for a structure overview. - **Special Case – Definitions‑Only Mode**: When `maxReadFileLine` is `0`, the tool returns only code definitions without file content (plus a notice). 4. **Default Behavior: Read Entire File** @@ -267,11 +265,6 @@ When `maxReadFileLine` is set to `0` in user settings, the tool returns only sou ```xml src/services/auth.service.ts - - class AuthService - method validateUser - method generateToken - Showing only 0 of 150 total lines. Use line_range if you need to read more lines ``` diff --git a/docs/advanced-usage/available-tools/search-replace.md b/docs/advanced-usage/available-tools/search-replace.md new file mode 100644 index 00000000..6403b3ae --- /dev/null +++ b/docs/advanced-usage/available-tools/search-replace.md @@ -0,0 +1,86 @@ +--- +description: Replace all occurrences of text in files using the search_replace tool in Roo Code. +keywords: + - search_replace + - search and replace + - file editing + - text replacement + - Roo Code tools + - code modifications +--- + +# search_replace + +The `search_replace` tool performs search-and-replace operations on files, replacing **all occurrences** of specified text. It provides a straightforward way to make global text substitutions throughout a file. + +--- + +## Parameters + +The tool accepts these parameters: + +- `file_path` (required): The path of the file to modify relative to the current working directory. +- `old_string` (required): The exact text to search for and replace. +- `new_string` (required): The text to replace all occurrences with. + +--- + +## What It Does + +This tool searches for an exact string in a file and replaces **all occurrences** with new text. The replacement is performed globally across the entire file, making it ideal for consistent updates where every instance needs to change. + +--- + +## When is it used? + +- When replacing all instances of a string throughout a file +- When updating repeated string literals or configuration values +- When renaming variables, functions, or identifiers globally +- When fixing consistent patterns or outdated terminology +- When you need simple, exact string replacement for all matches + +--- + +## Key Features + +- Replaces **all occurrences** globally (no option for single replacement) +- Exact string matching (no regex or fuzzy matching) +- Simple three-parameter interface +- Shows preview of changes before applying +- Preserves file formatting and structure +- User approval required before applying changes + +--- + +## Limitations + +- Requires exact string matches (case-sensitive, whitespace-sensitive) +- Always replaces all occurrences (cannot target specific instances) +- Cannot use regular expressions or patterns +- Not suitable for context-dependent replacements +- Less precise than [`apply_diff`](/advanced-usage/available-tools/apply-diff) for complex edits + +--- + +## How It Works + +When the `search_replace` tool is invoked, it follows this process: + +1. **Parameter Validation**: Validates required `file_path`, `old_string`, and `new_string` parameters. +2. **File Loading**: Reads the target file content. +3. **Search Operation**: Searches for all occurrences of `old_string` in the file. +4. **Replacement**: Replaces all found occurrences with `new_string`. +5. **User Review**: Shows a preview of changes for user approval. +6. **Application**: Applies changes to the file if approved. +7. **Feedback**: Reports the result of the operation. + +--- + +## Relation to Other Tools + +- `search_replace`: Always replaces **all occurrences** (this tool) +- [`edit_file`](/advanced-usage/available-tools/edit-file): Also replaces **all occurrences** (with optional expected count validation) +- [`edit`](/advanced-usage/available-tools/edit): Replaces **first occurrence** by default (unless `replace_all: true`) +- [`apply_diff`](/advanced-usage/available-tools/apply-diff): Use for precise, context-aware edits with fuzzy matching + +These are different implementations of search-and-replace functionality with varying capabilities. diff --git a/docs/advanced-usage/available-tools/skill.md b/docs/advanced-usage/available-tools/skill.md new file mode 100644 index 00000000..b5b4aeb4 --- /dev/null +++ b/docs/advanced-usage/available-tools/skill.md @@ -0,0 +1,103 @@ +--- +description: Load and execute skill instructions using the skill tool for specialized tasks in Roo Code. +keywords: + - skill + - skills + - specialized tasks + - instructions + - Roo Code tools + - automation + - workflows +--- + +# skill + +The `skill` tool loads and injects specialized skill instructions into the conversation context. Skills provide detailed, step-by-step guidance for specific tasks like creating MCP servers, custom modes, or following standardized workflows. + +--- + +## Parameters + +The tool accepts these parameters: + +- `skill` (required): The name of the skill to load (e.g., `create-mcp-server`, `create-mode`). Must match a skill name from the available skills list. +- `args` (optional): Additional context or arguments to pass to the skill for customization. + +--- + +## What It Does + +This tool retrieves skill instructions from the skills directory and loads them into the active conversation. Skills are pre-written instruction sets that guide Roo through complex, multi-step procedures. The tool is mode-aware, loading skills specific to the current mode when available. + +--- + +## When is it used? + +- When executing specialized procedures that have standardized workflows +- When creating MCP servers, custom modes, or other structured artifacts +- When following documented best practices for specific task types +- When you need to invoke expert knowledge for a particular domain +- When the task matches a known skill pattern available in the system + +--- + +## Key Features + +- Mode-aware skill resolution (loads mode-specific skills when available) +- Supports project-level skill overrides (take precedence over global skills) +- Progressive disclosure: linked files are not auto-loaded (explicit reads required) +- Optional arguments for skill customization +- Skills persist in context for the duration of the conversation +- Provides structured, step-by-step guidance for complex tasks + +--- + +## How It Works + +When the `skill` tool is invoked, it follows this process: + +1. **Skill Resolution**: Searches for the named skill in: + - Current mode's skill directory (e.g., `.roo/skills-code/`) + - Project-level skills (override global skills) + - Global skills directory +2. **Skill Loading**: Loads the skill's main instruction file (typically `SKILL.md`). +3. **Context Injection**: Injects skill instructions into conversation context. +4. **Linked Files**: Files referenced in the skill are **not** automatically loaded; Roo must explicitly read them if needed. +5. **Execution**: Roo follows the skill's instructions to complete the task. + +--- + +## Available Skills + +Skills are dynamically loaded based on the current mode and project configuration. Common skills include: + +- `create-mcp-server`: Guide for creating Model Context Protocol servers +- `create-mode`: Guide for creating custom Roo Code modes +- `find-skills`: Helps discover and install agent skills + +To see available skills, check the skills list in the system prompt or ask Roo "what skills are available?" + +--- + +## Relation to Features + +The `skill` tool is the programmatic interface to the [Skills](/features/skills) feature. For comprehensive documentation on how skills work, how to create custom skills, and the skills system architecture, see the [Skills feature documentation](/features/skills). + +--- + +## Example Usage + +Loading a skill to create an MCP server: +``` + + create-mcp-server + weather API integration + +``` + +Loading a skill without additional context: +``` + + create-mode + +``` diff --git a/docs/advanced-usage/available-tools/tool-use-overview.md b/docs/advanced-usage/available-tools/tool-use-overview.md index 14987093..2dc0738c 100644 --- a/docs/advanced-usage/available-tools/tool-use-overview.md +++ b/docs/advanced-usage/available-tools/tool-use-overview.md @@ -26,13 +26,13 @@ Tools are organized into logical groups based on their functionality: | Category | Purpose | Tools | Common Use | |----------|---------|-------|------------| -| **Read Group** | File system reading and exploration | [read_file](/advanced-usage/available-tools/read-file), [list_files](/advanced-usage/available-tools/list-files), [list_code_definition_names](/advanced-usage/available-tools/list-code-definition-names) | Code exploration and analysis | +| **Read Group** | File system reading and exploration | [read_file](/advanced-usage/available-tools/read-file), [list_files](/advanced-usage/available-tools/list-files), [read_command_output](/advanced-usage/available-tools/read-command-output) | Code exploration and analysis | | **Search Group** | Pattern and semantic searching | [search_files](/advanced-usage/available-tools/search-files), [codebase_search](/advanced-usage/available-tools/codebase-search) | Finding code patterns and functionality | -| **Edit Group** | File system modifications | [apply_diff](/advanced-usage/available-tools/apply-diff), [write_to_file](/advanced-usage/available-tools/write-to-file) | Code changes and file manipulation | -| **Browser Group** | Web automation | [browser_action](/advanced-usage/available-tools/browser-action) | Web testing and interaction | +| **Edit Group** | File system modifications | [apply_diff](/advanced-usage/available-tools/apply-diff), [apply_patch](/advanced-usage/available-tools/apply-patch), [edit](/advanced-usage/available-tools/edit), [edit_file](/advanced-usage/available-tools/edit-file), [search_replace](/advanced-usage/available-tools/search-replace), [write_to_file](/advanced-usage/available-tools/write-to-file) | Code changes and file manipulation | +| **Image Group** | AI image generation | [generate_image](/advanced-usage/available-tools/generate-image) | Creating and editing images | | **Command Group** | System command execution | [execute_command](/advanced-usage/available-tools/execute-command), [run_slash_command](/advanced-usage/available-tools/run-slash-command)* | Running scripts, building projects, executing command templates | | **MCP Group** | External tool integration | [use_mcp_tool](/advanced-usage/available-tools/use-mcp-tool), [access_mcp_resource](/advanced-usage/available-tools/access-mcp-resource) | Specialized functionality through external servers | -| **Workflow Group** | Mode and task management | [switch_mode](/advanced-usage/available-tools/switch-mode), [new_task](/advanced-usage/available-tools/new-task), [ask_followup_question](/advanced-usage/available-tools/ask-followup-question), [attempt_completion](/advanced-usage/available-tools/attempt-completion) | Context switching and task organization | +| **Workflow Group** | Mode and task management | [switch_mode](/advanced-usage/available-tools/switch-mode), [new_task](/advanced-usage/available-tools/new-task), [ask_followup_question](/advanced-usage/available-tools/ask-followup-question), [attempt_completion](/advanced-usage/available-tools/attempt-completion), [update_todo_list](/advanced-usage/available-tools/update-todo-list), [skill](/advanced-usage/available-tools/skill) | Context switching and task organization | *_Experimental feature - requires explicit enablement in settings_ @@ -54,7 +54,7 @@ These tools help Roo understand your code and project: - [read_file](/advanced-usage/available-tools/read-file) - Examines the contents of files - [list_files](/advanced-usage/available-tools/list-files) - Maps your project's file structure -- [list_code_definition_names](/advanced-usage/available-tools/list-code-definition-names) - Creates a structural map of your code +- [read_command_output](/advanced-usage/available-tools/read-command-output) - Retrieves full output from truncated commands ### Search Tools These tools help Roo find patterns and functionality across your codebase: @@ -66,12 +66,16 @@ These tools help Roo find patterns and functionality across your codebase: These tools help Roo make changes to your code: - [apply_diff](/advanced-usage/available-tools/apply-diff) - Makes precise, surgical changes to your code +- [apply_patch](/advanced-usage/available-tools/apply-patch) - Applies multi-file unified diff patches +- [edit](/advanced-usage/available-tools/edit) - Search-and-replace editing (first occurrence by default) +- [edit_file](/advanced-usage/available-tools/edit-file) - Search-and-replace editing (all occurrences with count validation) +- [search_replace](/advanced-usage/available-tools/search-replace) - Simple search-and-replace (all occurrences) - [write_to_file](/advanced-usage/available-tools/write-to-file) - Creates new files or completely rewrites existing ones -### Browser Tools -These tools help Roo interact with web applications: +### Image Tools +These tools help Roo generate and edit images: -- [browser_action](/advanced-usage/available-tools/browser-action) - Automates browser interactions +- [generate_image](/advanced-usage/available-tools/generate-image) - Generates AI-powered images from text prompts ### Command Tools These tools help Roo execute commands: @@ -92,6 +96,8 @@ These tools help manage the conversation and task flow: - [attempt_completion](/advanced-usage/available-tools/attempt-completion) - Presents final results - [switch_mode](/advanced-usage/available-tools/switch-mode) - Changes to a different mode for specialized tasks - [new_task](/advanced-usage/available-tools/new-task) - Creates a new subtask +- [update_todo_list](/advanced-usage/available-tools/update-todo-list) - Updates task checklist progress +- [skill](/advanced-usage/available-tools/skill) - Loads and executes predefined skill instructions --- diff --git a/docs/basic-usage/context-mentions.md b/docs/basic-usage/context-mentions.md index 1fa26700..a89818f9 100644 --- a/docs/basic-usage/context-mentions.md +++ b/docs/basic-usage/context-mentions.md @@ -29,13 +29,14 @@ Context mentions are a powerful way to provide Roo Code with specific informatio | Mention Type | Format | Description | Example Usage | |--------------|--------|-------------|--------------| | **File** | `@/path/to/file.ts` | Includes file contents in request context | "Explain the function in @/src/utils.ts" | -| **Image** | `@/path/to/image.png` | Includes image as inline visual content | "What's wrong with this UI? @/screenshots/bug.png" | -| **Folder** | `@/path/to/folder` | Includes contents of all files directly in the folder (non-recursive) | "Analyze the code in @/src/components" | +| **Image** | `@/path/to/image.png` | Includes image as inline visual content (file mention with vision support) | "What's wrong with this UI? @/screenshots/bug.png" | +| **Folder** | `@/path/to/folder/` | Includes contents of all files directly in the folder (non-recursive) | "Analyze the code in @/src/components/" | | **Problems** | `@problems` | Includes VS Code Problems panel diagnostics | "@problems Fix all errors in my code" | | **Terminal** | `@terminal` | Includes recent terminal command and output | "Fix the errors shown in @terminal" | | **Git Commit** | `@a1b2c3d` | References specific commit by hash | "What changed in commit @a1b2c3d?" | | **Git Changes** | `@git-changes` | Shows uncommitted changes | "Suggest a message for @git-changes" | | **URL** | `@https://example.com` | Imports website content | "Summarize @https://docusaurus.io/" | +| **Slash Command** | `/` | Executes a slash command (uses `/` not `@`) | "/test Run all tests" | ### File Mentions @@ -52,10 +53,11 @@ Context mentions are a powerful way to provide Roo Code with specific informatio ### Image Mentions -Image mentions let you include visual content directly in your conversation. When the model supports vision, the image is sent as inline visual content rather than text. +Image mentions are file mentions with special visual processing. When you mention an image file, and the model supports vision, the image is sent as inline visual content rather than text. | Capability | Details | |------------|---------| +| **Type** | Sub-type of file mentions (not a separate mention type) | | **Format** | `@/path/to/image.png` (same path format as file mentions) | | **Provides** | Image sent as inline visual content to the model | | **Supports** | PNG, JPG, JPEG, GIF, BMP, SVG, WEBP, ICO, AVIF | @@ -69,7 +71,7 @@ Image mentions let you include visual content directly in your conversation. Whe *Folder mentions include the content of all files within the specified directory.* | Capability | Details | |------------|---------| -| **Format** | `@/path/to/folder` (no trailing slash) | +| **Format** | `@/path/to/folder/` (trailing slash required to distinguish from file mentions) | | **Provides** | Complete contents of all files within the directory | | **Includes** | Contents of non-binary text files directly within the folder (not recursive) | | **Best for** | Providing context from multiple files in a directory | @@ -126,6 +128,20 @@ For comprehensive details on how Roo Code integrates with VSCode's diagnostics s | **Output** | Converts content to Markdown for readability | | **Limitation** | Complex pages may not convert perfectly | +### Slash Command Mentions + +Slash commands are processed by the mentions system but use a `/` prefix instead of `@`. They execute predefined commands to perform specific actions. + +| Capability | Details | +|------------|---------| +| **Format** | `/` (uses `/` not `@`) | +| **Provides** | Executes the specified command and includes relevant context | +| **Content Type** | Processed as content block type "command" | +| **Examples** | `/test`, `/init`, `/deploy`, and other custom commands | +| **Best for** | Quick access to predefined workflows and actions | + +For comprehensive details on available slash commands and how to create custom ones, see [Slash Commands](/features/slash-commands). + --- ## How to Use Mentions diff --git a/docs/basic-usage/how-tools-work.md b/docs/basic-usage/how-tools-work.md index 4fda4a84..1a597ca6 100644 --- a/docs/basic-usage/how-tools-work.md +++ b/docs/basic-usage/how-tools-work.md @@ -1,11 +1,10 @@ --- -description: Learn how Roo Code uses tools to interact with your system. Understand file operations, command execution, browser control, and the approval workflow. +description: Learn how Roo Code uses tools to interact with your system. Understand file operations, command execution, and the approval workflow. keywords: - Roo Code tools - AI tools - file operations - command execution - - browser automation - tool approval --- @@ -30,11 +29,11 @@ Describe what you want to accomplish in natural language, and Roo Code will: | Category | Purpose | Tool Names | | :------- | :------ | :--------- | -| Read | Access file content and code structure | `read_file`, `search_files`, `list_files`, `list_code_definition_names` | -| Edit | Create or modify files and code | `write_to_file`, `apply_diff` | +| Read | Access file content and code structure | `read_file`, `search_files`, `list_files`, `codebase_search`, `read_command_output` | +| Edit | Create or modify files and code | `write_to_file`, `apply_diff`, `apply_patch`, `edit`, `edit_file`, `search_replace` | | Execute | Run commands and perform system operations | `execute_command` | -| Browser | Interact with web content | `browser_action` | -| Workflow | Manage task flow and context | `ask_followup_question`, `attempt_completion`, `switch_mode`, `new_task` | +| Image | Generate AI-powered images | `generate_image` | +| Workflow | Manage task flow and context | `ask_followup_question`, `attempt_completion`, `switch_mode`, `new_task`, `skill` | --- @@ -89,15 +88,21 @@ This safety mechanism ensures you maintain control over which files are modified | `read_file` | Reads the content of a file with line numbers | Read | | `search_files` | Searches for text or regex patterns across files | Read | | `list_files` | Lists files and directories in a specified location | Read | -| `list_code_definition_names` | Lists code definitions like classes and functions | Read | +| `codebase_search` | Performs semantic search across your indexed codebase | Read | +| `read_command_output` | Retrieves truncated output from previous commands | Read | | `write_to_file` | Creates new files or overwrites existing ones | Edit | | `apply_diff` | Makes precise changes to specific parts of a file | Edit | +| `apply_patch` | Applies multi-file unified diff patches | Edit | +| `edit` | Search-and-replace (first occurrence by default) | Edit | +| `edit_file` | Search-and-replace (all occurrences with count validation) | Edit | +| `search_replace` | Search-and-replace (all occurrences, simple) | Edit | | `execute_command` | Runs commands in the VS Code terminal | Execute | -| `browser_action` | Performs actions in a headless browser | Browser | +| `generate_image` | Generates AI-powered images from text prompts | Image | | `ask_followup_question` | Asks you a clarifying question | Workflow | | `attempt_completion` | Indicates the task is complete | Workflow | | `switch_mode` | Changes to a different operational mode | Workflow | | `new_task` | Creates a new subtask with a specific starting mode | Workflow | +| `skill` | Loads and executes predefined skill instructions | Workflow | --- diff --git a/docs/features/api-configuration-profiles.mdx b/docs/features/api-configuration-profiles.mdx index ed3d2cab..06d8ff1d 100644 --- a/docs/features/api-configuration-profiles.mdx +++ b/docs/features/api-configuration-profiles.mdx @@ -38,7 +38,7 @@ Having multiple configuration profiles lets you quickly switch between different ## How It Works Configuration profiles can have their own: -- API providers (OpenAI, Anthropic, OpenRouter, Glama, etc.) +- API providers (OpenAI, Anthropic, OpenRouter, etc.) - API keys and authentication details - Model selections (o3-mini-high, Claude 3.7 Sonnet, DeepSeek R1, etc.) - [Temperature settings](/features/model-temperature) for controlling response randomness diff --git a/docs/features/auto-approving-actions.mdx b/docs/features/auto-approving-actions.mdx index 602b8c6a..e72f7db9 100644 --- a/docs/features/auto-approving-actions.mdx +++ b/docs/features/auto-approving-actions.mdx @@ -40,11 +40,18 @@ Auto-approve settings speed up your workflow by eliminating repetitive confirmat 3. Use the All/None chips to bulk-select or clear permissions, or select individual tiles; you can keep Enabled On with "None" selected 4. (Optional) Click the gear icon to open Settings for deeper per-permission controls -### Keyboard Shortcut +### Keyboard Shortcut and Command Palette **Default shortcut:** `Cmd+Alt+A` (macOS) / `Ctrl+Alt+A` (Windows/Linux) -Quickly toggle auto-approve on/off without using the mouse. This shortcut toggles the global "Enabled" state while preserving your permission selections. +**Command Palette:** `roo-cline.toggleAutoApprove` + +Quickly toggle auto-approve on/off without using the mouse. Both the keyboard shortcut and the Command Palette command toggle the global "Enabled" state while preserving your permission selections. + +**Via Command Palette:** +1. Open the Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) +2. Type "Toggle Auto-Approve" or search for `roo-cline.toggleAutoApprove` +3. Press Enter to toggle the auto-approve state **To customize the shortcut:** 1. Open VS Code Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) @@ -202,26 +209,6 @@ This works like a human developer pausing to check for errors after changing cod - How important error detection is for your workflow ::: -### Browser Actions - -:::info Browser Actions (Risk: Medium) - -**Setting:** "Always approve browser actions" - -**Description:** "Automatically perform browser actions without requiring approval" - -**Note:** "Only applies when the model supports computer use" - -**Risk level:** Medium - -Allows Roo to control a headless browser without confirmation. This can include: -- Opening websites -- Navigating pages -- Interacting with web elements - -Consider the security implications of allowing automated browser access. -::: - ### MCP Tools :::caution MCP Tools (Risk: Medium-High) diff --git a/docs/features/browser-use.mdx b/docs/features/browser-use.mdx deleted file mode 100644 index 8070c67d..00000000 --- a/docs/features/browser-use.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -description: Learn how Roo Code can control a browser to automate web tasks, gather information, and interact with web applications using AI-powered browser automation. -keywords: - - browser automation - - web scraping - - browser control - - AI browser - - web automation - - Roo Code browser ---- - -# Browser Use - -Roo Code provides sophisticated browser automation capabilities that let you interact with websites directly from VS Code. This feature enables testing web applications, automating browser tasks, and capturing screenshots without leaving your development environment. - - - -
- -
- -
- -:::caution Model Support Required -Browser Use within Roo Code requires models that support images. Some models may not navigate pages well. -::: - ---- - -## How Browser Use Works - -By default, Roo Code uses a built-in browser that: -- Launches automatically when you ask Roo to visit a website -- Captures screenshots of web pages -- Allows Roo to interact with web elements -- Runs invisibly in the background - -All of this happens directly within VS Code, with no setup required. - ---- - -## Using Browser Use - -A typical browser interaction follows this pattern: - -**Important:** Browser Use requires models that support images (vision-capable models). - -1. Ask Roo to visit a website -2. Roo launches the browser and shows you a screenshot -3. Request additional actions (clicking, typing, scrolling) -4. Roo closes the browser when finished - -For example: - -``` -Open the browser and view our site. -``` - -``` -Can you check if my website at https://roocode.com is displaying correctly? -``` - -``` -Browse http://localhost:3000, scroll down to the bottom of the page and check if the footer information is displaying correctly. -``` - -Browser use example - ---- - -## How Browser Actions Work - -The browser_action tool controls a browser instance that returns screenshots and console logs after each action, allowing you to see the results of interactions. - -Key characteristics: -- Each browser session must start with `launch` and end with `close` -- Only one browser action can be used per message -- While the browser is active, no other tools can be used -- You must wait for the response (screenshot and logs) before performing the next action - -### Available Browser Actions - -| Action | Description | When to Use | -|--------|-------------|------------| -| `launch` | Opens a browser at a URL | Starting a new browser session | -| `click` | Clicks at specific coordinates | Interacting with buttons, links, etc. | -| `type` | Types text into active element | Filling forms, search boxes | -| `scroll_down` | Scrolls down by one page | Viewing content below the fold | -| `scroll_up` | Scrolls up by one page | Returning to previous content | -| `close` | Closes the browser | Ending a browser session | -| `hover` | Moves cursor to coordinates | Triggering hover states | -| `press` | Presses a key combination | Keyboard shortcuts, Enter, Esc | -| `resize` | Resizes the viewport | Testing responsive designs | - ---- - -## Browser Use Configuration/Settings - -:::info Default Browser Settings -- **Enable browser tool**: Enabled -- **Viewport size**: Small Desktop (900x600) -- **Screenshot quality**: 75% -- **Use remote browser connection**: Disabled -::: - -### Accessing Settings - -To change Browser / Computer Use settings in Roo: - -1. Open Settings by clicking the gear icon → Browser / Computer Use - - Browser settings menu - -### Enable/Disable Browser Use - -**Purpose**: Master toggle that enables Roo to interact with websites using a Puppeteer-controlled browser. - -To change this setting: -1. Check or uncheck the "Enable browser tool" checkbox within your Browser / Computer Use settings - - Enable browser tool setting - -### Viewport Size - -**Purpose**: Determines the resolution of the browser session Roo Code uses. - -**Tradeoff**: Higher values provide a larger viewport but increase token usage. - -To change this setting: -1. Click the dropdown menu under "Viewport size" within your Browser / Computer Use settings -2. Select one of the available options: - - Large Desktop (1280x800) - - Small Desktop (900x600) - Default - - Tablet (768x1024) - - Mobile (360x640) -2. Select your desired resolution. - - Viewport size setting - -### Screenshot Quality - -**Purpose**: Controls the WebP compression quality of browser screenshots. - -**Tradeoff**: Higher values provide clearer screenshots but increase token usage. - -To change this setting: -1. Adjust the slider under "Screenshot quality" within your Browser / Computer Use settings -2. Set a value between 1-100% (default is 75%) -3. Higher values provide clearer screenshots but increase token usage: - - 40-50%: Good for basic text-based websites - - 60-70%: Balanced for most general browsing - - 80%+: Use when fine visual details are critical - - Screenshot quality setting - -### Remote Browser Connection - -**Purpose**: Connect Roo to an existing Chrome browser instead of using the built-in browser. - -**Benefits**: -- Works in containerized environments and remote development workflows -- Maintains authenticated sessions between browser uses -- Eliminates repetitive login steps -- Allows use of custom browser profiles with specific extensions - -**Requirements**: Chrome must be running with remote debugging enabled. - -To enable this feature: -1. Check the "Use remote browser connection" box in Browser / Computer Use settings -2. Click "Test Connection" to verify - - Remote browser connection setting - -#### Common Use Cases - -- **DevContainers**: Connect from containerized VS Code to host Chrome browser -- **Remote Development**: Use local Chrome with remote VS Code server -- **Custom Chrome Profiles**: Use profiles with specific extensions and settings - -#### Connecting to a Visible Chrome Window - -Connect to a visible Chrome window to observe Roo's interactions in real-time: - -**macOS** -```bash -/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug --no-first-run -``` - -**Windows** -```bash -"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=C:\chrome-debug --no-first-run -``` - -**Linux** -```bash -google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug --no-first-run -``` diff --git a/docs/features/codebase-indexing.mdx b/docs/features/codebase-indexing.mdx index 5f1fc72a..90ba8bc7 100644 --- a/docs/features/codebase-indexing.mdx +++ b/docs/features/codebase-indexing.mdx @@ -111,7 +111,7 @@ volumes: - API Key: Your Google AI Studio key :::info Other Providers Available -While this guide focuses on Google Gemini since it's currently free, Roo Code also supports OpenAI, Ollama, and OpenAI-compatible providers. You can explore these options in the configuration dropdown. +While this guide focuses on Google Gemini since it's currently free, Roo Code also supports OpenAI, Ollama, OpenAI-compatible, Mistral, Vercel AI Gateway, Bedrock, and OpenRouter providers. You can explore these options in the configuration dropdown. ::: ### Step 4: Save @@ -166,7 +166,7 @@ This guide explains each setting available in the configuration popover. - **Embedder Provider** - **Purpose**: To select your source for generating AI embeddings. - - **Behavior**: This dropdown menu determines which configuration fields are shown. Your options are **OpenAI**, **Google Gemini**, **Ollama**, and **OpenAI Compatible**. + - **Behavior**: This dropdown menu determines which configuration fields are shown. Your options are **OpenAI**, **Google Gemini**, **Ollama**, **OpenAI Compatible**, **Mistral**, **Vercel AI Gateway**, **Bedrock**, and **OpenRouter**. - **API Key** (for OpenAI, Gemini, OpenAI Compatible) - **Purpose**: The secret key to authenticate with your chosen provider. @@ -297,7 +297,7 @@ Use natural language descriptions: ### Model Issues **"Model Not Found"** -- For Google Gemini: Ensure the model name is correct (e.g., `text-embedding-004`) +- For Google Gemini: Ensure the model name is correct (e.g., `gemini-embedding-001`) - For other providers: Consult their documentation for available models and proper naming ### Indexing Issues diff --git a/docs/features/experimental/concurrent-file-edits.md b/docs/features/experimental/concurrent-file-edits.md index 10750ded..00ef4f9d 100644 --- a/docs/features/experimental/concurrent-file-edits.md +++ b/docs/features/experimental/concurrent-file-edits.md @@ -13,6 +13,10 @@ keywords: # Concurrent File Edits (AKA Multi-File Edits) +:::note +Multi-file edits have graduated from experimental status and are now enabled by default. You no longer need to enable this feature in settings. +::: + Edit multiple files in a single operation, dramatically speeding up refactoring and multi-file changes. --- @@ -44,17 +48,9 @@ This reduces interruptions and speeds up complex tasks like: --- -## How to Enable - -:::info Experimental Feature -Multi-File Edits is an experimental feature and must be enabled in settings. +## Availability -1. Open Roo Code settings (click the gear icon in Roo Code) -2. Navigate to **Roo Code > Experimental Settings** -3. Enable the **Enable multi-file edits** option - -Enable multi-file edits toggle in experimental settings -::: +Multi-file edits are now available by default in Roo Code. The feature has graduated from experimental status and no longer requires manual activation in settings. --- diff --git a/docs/features/experimental/experimental-features.md b/docs/features/experimental/experimental-features.md index f9072f3e..1cbf376e 100644 --- a/docs/features/experimental/experimental-features.md +++ b/docs/features/experimental/experimental-features.md @@ -31,7 +31,6 @@ To enable or disable experimental features: The following experimental features are currently available: - [Custom Tools](/features/experimental/custom-tools) - Define TypeScript/JavaScript tools that Roo can call like built-in tools -- [Concurrent File Edits](/features/experimental/concurrent-file-edits) - Edit multiple files in a single operation - [Background Editing](/features/experimental/background-editing) - Work uninterrupted while Roo edits files in the background - [Image Generation](/features/image-generation) - Generate images from text prompts and save them to your workspace - [Run Slash Command](/advanced-usage/available-tools/run-slash-command) - Execute predefined slash commands for templated instructions and workflow automation diff --git a/docs/features/index.md b/docs/features/index.md index 5946cfb7..53b3c0f5 100644 --- a/docs/features/index.md +++ b/docs/features/index.md @@ -44,7 +44,6 @@ Discover the powerful features that make Roo Code your ultimate AI-powered codin ### Integration Features - [**MCP (Model Context Protocol)**](/features/mcp/overview) - Connect to external tools and services -- [**Browser Use**](/features/browser-use) - Web automation and interaction capabilities - [**Shell Integration**](/features/shell-integration) - Seamless terminal command execution - [**Marketplace**](/features/marketplace) - Discover and share custom modes diff --git a/docs/features/intelligent-context-condensing.mdx b/docs/features/intelligent-context-condensing.mdx index a06998e4..8e9924b3 100644 --- a/docs/features/intelligent-context-condensing.mdx +++ b/docs/features/intelligent-context-condensing.mdx @@ -120,7 +120,7 @@ When Roo Code encounters context window limit errors, it now automatically recov #### How error recovery works -1. **Error Detection**: Roo Code detects context window errors from multiple providers (OpenAI, Anthropic, Cerebras, and others) +1. **Error Detection**: Roo Code detects context window errors from multiple providers (OpenAI, Anthropic, and others) 2. **Automatic Truncation**: The system automatically reduces the context by 25% 3. **Retry Mechanism**: After truncation, Roo Code retries your request (up to the built-in retry limit) 4. **Continuation**: Roo retries without manual intervention diff --git a/docs/features/keyboard-shortcuts.md b/docs/features/keyboard-shortcuts.md index 07a8def9..49281ac6 100644 --- a/docs/features/keyboard-shortcuts.md +++ b/docs/features/keyboard-shortcuts.md @@ -24,6 +24,7 @@ Roo Code offers keyboard commands to enhance your workflow. This page focuses on |---------|-------------|-----------------| | `roo-cline.acceptInput` | Submit text or accept the primary suggestion | None (configurable) | | `roo-cline.focusInput` | Focus the Roo input box | None (configurable) | +| `roo-cline.openInNewTab` | Open Roo Code in a new editor tab | None (via Command Palette) | | Add to Context | Add selected code to Roo's context | macOS: Cmd+K Cmd+A; Windows/Linux: Ctrl+K Ctrl+A | | Arrow Up/Down | Navigate through prompt history | Built-in | diff --git a/docs/features/mcp/using-mcp-in-roo.mdx b/docs/features/mcp/using-mcp-in-roo.mdx index 1b1c6ed9..a41a55b4 100644 --- a/docs/features/mcp/using-mcp-in-roo.mdx +++ b/docs/features/mcp/using-mcp-in-roo.mdx @@ -107,6 +107,9 @@ Both files use a JSON format with a `mcpServers` object containing named server * `env` (optional): An object containing environment variables to set for the server process. * `alwaysAllow` (optional): An array of tool names from this server to automatically approve. * `disabled` (optional): Set to `true` to disable this server configuration. + * `timeout` (optional): Per-server timeout override in seconds (1-3600). If not specified, uses the default of 60 seconds. + * `watchPaths` (optional): An array of file paths to watch. When any of these files change, the server will automatically restart. + * `disabledTools` (optional): An array of tool names to disable from this server. These tools will not be available for use even if the server provides them. STDIO configuration example: ```json @@ -177,6 +180,8 @@ Streamable HTTP configuration parameters: * `headers` (optional): An object containing custom HTTP headers to send with requests (e.g., for authentication tokens). * `alwaysAllow` (optional): An array of tool names from this server to automatically approve. * `disabled` (optional): Set to `true` to disable this server configuration. +* `timeout` (optional): Per-server timeout override in seconds (1-3600). If not specified, uses the default of 60 seconds. +* `disabledTools` (optional): An array of tool names to disable from this server. These tools will not be available for use even if the server provides them. Streamable HTTP configuration example: ```json @@ -214,6 +219,8 @@ Streamable HTTP configuration example: * `headers` (optional): An object containing custom HTTP headers to send with requests (e.g., for authentication tokens). * `alwaysAllow` (optional): An array of tool names from this server to automatically approve. * `disabled` (optional): Set to `true` to disable this server configuration. + * `timeout` (optional): Per-server timeout override in seconds (1-3600). If not specified, uses the default of 60 seconds. + * `disabledTools` (optional): An array of tool names to disable from this server. These tools will not be available for use even if the server provides them. SSE (Legacy) configuration example: ```json @@ -310,7 +317,7 @@ Each MCP server has its own configuration panel where you can modify settings, m To set the maximum time to wait for a response after a tool call to the MCP server: -1. Click the `Network Timeout` pulldown at the bottom of the individual MCP server's config box and change the time. Default is 1 minute but it can be set between 30 seconds and 5 minutes. +1. Click the `Network Timeout` pulldown at the bottom of the individual MCP server's config box and change the time. Default is 60 seconds (1 minute) but it can be set between 1 second and 3600 seconds (1 hour). Network Timeout pulldown diff --git a/docs/features/rooignore.md b/docs/features/rooignore.md index a9988515..35353046 100644 --- a/docs/features/rooignore.md +++ b/docs/features/rooignore.md @@ -52,7 +52,6 @@ These tools directly check `.rooignore` before any file operation. If a file is * [`read_file`](/advanced-usage/available-tools/read-file): Will not read ignored files. * [`write_to_file`](/advanced-usage/available-tools/write-to-file): Will not write to or create new ignored files. * [`apply_diff`](/advanced-usage/available-tools/apply-diff): Will not apply diffs to ignored files. -* [`list_code_definition_names`](/advanced-usage/available-tools/list-code-definition-names): Will not parse ignored files for code symbols. ### File Discovery and Listing diff --git a/docs/features/settings-management.md b/docs/features/settings-management.md index b0ad2a78..8f2b987f 100644 --- a/docs/features/settings-management.md +++ b/docs/features/settings-management.md @@ -148,6 +148,48 @@ Use this option only if you are certain you want to remove all Roo Code data or --- +## Command Palette Commands + +Roo Code provides several useful commands accessible via the VS Code Command Palette (`Ctrl/Cmd + Shift + P`). These commands offer alternative ways to manage your settings and storage. + +### Set Custom Storage Path + +**Command:** `roo-cline.setCustomStoragePath` + +Opens a dialog to set a custom storage directory for Roo Code data. By default, Roo Code stores task history, settings, and other data in the standard VS Code extension storage location. This command allows you to choose an alternative location. + +**Use cases:** +- **Team Collaboration**: Store Roo Code data in a shared network folder so team members can access the same task history and settings +- **Drive Management**: Keep data on a specific drive (e.g., a larger secondary drive instead of your primary SSD) +- **Cloud Sync**: Store data in a cloud-synced folder (Dropbox, OneDrive, etc.) to sync across multiple machines +- **Backup Strategy**: Place data in a location that's included in your regular backup routine + +**To use:** +1. Open the Command Palette (`Ctrl/Cmd + Shift + P`) +2. Type "Set Custom Storage Path" or search for `roo-cline.setCustomStoragePath` +3. Select the command +4. Choose a directory in the file picker dialog +5. Restart VS Code for the change to take effect + +**Note:** This setting can also be configured in VS Code settings as `roo-cline.customStoragePath`. See the [VS Code Settings Reference](#vs-code-settings-reference) section below for details. + +### Import Settings from File + +**Command:** `roo-cline.importSettings` + +Imports Roo Code settings from a JSON file via the Command Palette. This is an alternative to using the Import button in the settings UI. + +**To use:** +1. Open the Command Palette (`Ctrl/Cmd + Shift + P`) +2. Type "Import Settings" or search for `roo-cline.importSettings` +3. Select the command +4. Choose your settings JSON file in the file picker dialog +5. Settings will be imported and merged with your current configuration + +This command provides the same functionality as the Import button described in the [Import Settings](#import-settings) section above. + +--- + ## UI Setting #### System Prompt Context Toggles @@ -188,3 +230,121 @@ With both disabled, these sections are omitted, reducing token usage when you do - Notes: - Applies across conversations globally. - Text is localized; labels may differ by language. + +--- + +## VS Code Settings Reference + +Roo Code provides VS Code settings that can be configured through your VS Code `settings.json` file. These settings offer fine-grained control over command execution, task management, API behavior, storage, indexing, and debugging. + +To configure these settings, open your VS Code settings (`Ctrl/Cmd + ,`) and search for "roo-cline", or edit your `settings.json` file directly (`Ctrl/Cmd + Shift + P` → "Preferences: Open User Settings (JSON)"). + +### Command & Execution + +#### `roo-cline.allowedCommands` +- **Type**: Array of strings +- **Default**: `["git log", "git diff", "git show"]` +- **Description**: Commands that can be auto-executed without approval. When Roo Code requests to execute a command that matches an entry in this list, it will execute automatically without prompting for approval. This is useful for safe, read-only commands. + +#### `roo-cline.deniedCommands` +- **Type**: Array of strings +- **Default**: `[]` +- **Description**: Commands that are always blocked from execution. Roo Code will refuse to execute any command that matches an entry in this list, providing a safety mechanism to prevent potentially dangerous operations. + +#### `roo-cline.commandExecutionTimeout` +- **Type**: Number (seconds) +- **Default**: `0` +- **Range**: 0-600 +- **Description**: Timeout in seconds for command execution. When set to a value greater than 0, commands running longer than this duration will be terminated. A value of 0 means no timeout (commands can run indefinitely). See also `commandTimeoutAllowlist` for exempting specific commands. + +#### `roo-cline.commandTimeoutAllowlist` +- **Type**: Array of strings +- **Default**: `[]` +- **Description**: Commands exempt from execution timeout. Commands matching entries in this list will not be subject to the `commandExecutionTimeout` limit, allowing them to run without time restrictions. Useful for known long-running operations like build processes or deployment scripts. + +### Task Management + +#### `roo-cline.newTaskRequireTodos` +- **Type**: Boolean +- **Default**: `false` +- **Description**: When enabled, requires a todo list when creating new tasks via boomerang/subtasks. This ensures structured planning for complex work by mandating that new tasks include a checklist of steps to complete. + +#### `roo-cline.preventCompletionWithOpenTodos` +- **Type**: Boolean +- **Default**: `false` +- **Description**: Prevents task completion when there are uncompleted todo items. When enabled, Roo Code will not allow you to mark a task as complete if the todo list still has pending items, ensuring all planned work is finished. + +### API & Network + +#### `roo-cline.apiRequestTimeout` +- **Type**: Number (seconds) +- **Default**: `600` +- **Range**: 0-3600 +- **Description**: Timeout in seconds for API requests. Determines how long Roo Code will wait for a response from AI provider APIs before timing out. A value of 0 means no timeout. + +### Storage & Import + +#### `roo-cline.customStoragePath` +- **Type**: String +- **Default**: `""` (empty) +- **Description**: Custom file path for Roo Code's storage directory. By default, Roo Code stores its data in the standard extension storage location. Use this setting to specify an alternative directory for storing task history, settings, and other data. + +#### `roo-cline.autoImportSettingsPath` +- **Type**: String +- **Default**: `""` (empty) +- **Description**: File path for automatic settings import on startup. When configured, Roo Code will automatically import settings from the specified JSON file every time VS Code starts. See the [Automatic Configuration Import](#automatic-configuration-import) section above for detailed usage instructions. + +### Code Index + +#### `roo-cline.maximumIndexedFilesForFileSearch` +- **Type**: Number +- **Default**: `10000` +- **Range**: 5000-500000 +- **Description**: Maximum number of files indexed for file search. Controls the upper limit of files that Roo Code will index for semantic search functionality. Higher values increase search coverage but may impact performance. + +#### `roo-cline.codeIndex.embeddingBatchSize` +- **Type**: Number +- **Default**: `60` +- **Range**: 1-200 +- **Description**: Batch size for embedding operations during code indexing. Determines how many code chunks are processed together when generating embeddings for semantic search. Lower values reduce memory usage but increase processing time; higher values are faster but use more memory. + +### Editor Integration + +#### `roo-cline.enableCodeActions` +- **Type**: Boolean +- **Default**: `true` +- **Description**: Controls whether Roo Code actions appear in the editor context menu and lightbulb. When enabled, you can right-click in the editor or use the lightbulb menu to quickly send code selections to Roo Code with contextual prompts. + +#### `roo-cline.vsCodeLmModelSelector` +- **Type**: Object +- **Default**: `{}` +- **Description**: Configuration for VS Code Language Model API provider selection. Allows you to specify vendor and family properties to control which language model is used when the VS Code LM API provider is selected. See [VS Code LM API documentation](/providers/vscode-lm) for details. + +### Rules & Instructions + +#### `roo-cline.useAgentRules` +- **Type**: Boolean +- **Default**: `true` +- **Description**: Enable loading of AGENTS.md files for agent-specific instructions. When enabled, Roo Code will look for and load `AGENTS.md` files in your project directories to provide context-specific guidance to the AI. Disable this if you want to prevent automatic loading of these instruction files. + +### Debug + +#### `roo-cline.debug` +- **Type**: Boolean +- **Default**: `false` +- **Description**: Enable debug mode for additional logging. When enabled, Roo Code will output detailed debug information to the console, useful for troubleshooting issues or understanding internal behavior. + +#### `roo-cline.debugProxy.enabled` +- **Type**: Boolean +- **Default**: `false` +- **Description**: Enable debug proxy for intercepting API requests. When enabled, all API requests will be routed through a debug proxy server, allowing you to inspect and debug API communications. + +#### `roo-cline.debugProxy.serverUrl` +- **Type**: String +- **Default**: `"http://127.0.0.1:8888"` +- **Description**: URL of the debug proxy server. Specifies the proxy server address used when `debugProxy.enabled` is true. Common debug proxy tools like mitmproxy or Charles Proxy typically run on this default address. + +#### `roo-cline.debugProxy.tlsInsecure` +- **Type**: Boolean +- **Default**: `false` +- **Description**: Allow insecure TLS connections through the debug proxy. When enabled, certificate validation errors will be ignored, which is necessary when using self-signed certificates with debug proxies. Only enable this in development environments. diff --git a/docs/features/shell-integration.mdx b/docs/features/shell-integration.mdx index 7752e17a..baecfe6c 100644 --- a/docs/features/shell-integration.mdx +++ b/docs/features/shell-integration.mdx @@ -59,6 +59,40 @@ Roo Code provides settings to fine-tune how it interacts with terminals. To acce 1. Click the icon in the top-right corner of the Roo Code sidebar. 2. In the settings pane that opens, select the "Terminal" group from the left-hand menu. +### Command Execution Timeout Settings + +You can configure command execution timeouts through VS Code settings. These settings are accessible in your `settings.json` file (`Ctrl/Cmd + Shift + P` → "Preferences: Open User Settings (JSON)"). + +#### `roo-cline.commandExecutionTimeout` +- **Type**: Number (seconds) +- **Default**: `0` +- **Range**: 0-600 +- **Description**: Timeout in seconds for command execution. When set to a value greater than 0, commands running longer than this duration will be terminated. A value of 0 means no timeout (commands can run indefinitely). + +**Example configuration**: +```json +{ + "roo-cline.commandExecutionTimeout": 300 +} +``` + +This example sets a 5-minute timeout for all commands. + +#### `roo-cline.commandTimeoutAllowlist` +- **Type**: Array of strings +- **Default**: `[]` +- **Description**: Commands exempt from execution timeout. Commands matching entries in this list will not be subject to the `commandExecutionTimeout` limit, allowing them to run without time restrictions. Useful for known long-running operations like build processes or deployment scripts. + +**Example configuration**: +```json +{ + "roo-cline.commandExecutionTimeout": 300, + "roo-cline.commandTimeoutAllowlist": ["npm run build", "docker build", "npm test"] +} +``` + +This example sets a 5-minute timeout but exempts build and test commands from the timeout. + ### Basic Settings #### Terminal Output Limit diff --git a/docs/features/skills.mdx b/docs/features/skills.mdx index fae11c47..60df0f8c 100644 --- a/docs/features/skills.mdx +++ b/docs/features/skills.mdx @@ -15,7 +15,7 @@ Skills package task-specific instructions that Roo loads on-demand when your req