Files
gogo2/tools.md
Dobromir Popov a86e07f556 tools
2025-10-09 13:58:43 +03:00

94 lines
3.5 KiB
Markdown

# Available Tools
This document lists all the tools available in the AI coding assistant.
## File Operations
- **read_file**: Read contents of a file from the local filesystem
- **write**: Write a file to the local filesystem (overwrites existing files)
- **search_replace**: Perform exact string replacements in files
- **MultiEdit**: Make multiple edits to a single file in one operation
- **delete_file**: Delete a file at the specified path
- **list_dir**: List files and directories in a given path
- **glob_file_search**: Search for files matching a glob pattern
## Code Analysis and Search
- **codebase_search**: Semantic search tool to find code snippets relevant to queries
- **grep**: Powerful search tool built on ripgrep for exact symbol/string searches
- **read_lints**: Read and display linter errors from the current workspace
## Terminal Operations
- **run_terminal_cmd**: Execute terminal commands on behalf of the user
## Web and External Resources
- **web_search**: Search the web for real-time information about any topic
- **fetch_rules**: Fetch rules provided by the user to help with navigating the codebase
## Task Management
- **todo_write**: Create and manage a structured task list for coding sessions
## Notebook Operations
- **edit_notebook**: Edit Jupyter notebook cells (supports editing existing cells and creating new ones)
## Git Operations
- **fetch_pull_request**: Fetch pull request information including title, description, and diff
## Memory Management
- **update_memory**: Create, update, or delete memories in a persistent knowledge base
## Diagram Creation
- **create_diagram**: Create Mermaid diagrams
## Tool Usage Guidelines
### File Operations
- Always prefer editing existing files rather than creating new ones
- Use MultiEdit for multiple changes to the same file
- Be careful with file paths - use relative paths when possible
### Code Search
- Use codebase_search for semantic queries about functionality
- Use grep for exact string/symbol searches
- Check linter errors before and after making changes
### Terminal Commands
- Commands run in the same shell session unless specified otherwise
- Use non-interactive flags for commands that require user input
- Background long-running processes appropriately
### Task Management
- Use todo_write for complex multi-step tasks
- Update task status in real-time
- Only one task should be in_progress at a time
### Memory Management
- Use update_memory for persistent information that should be remembered across sessions
- Include relevant context and metadata
- Use appropriate action types (create, update, delete)
### Web Search
- Use for real-time information not available in training data
- Include version numbers or dates for technical queries
- Verify current facts and updates
### Notebook Editing
- Use edit_notebook exclusively for Jupyter notebook operations
- Provide extensive context for unique identification
- Support both editing existing cells and creating new ones
### Diagram Creation
- Use create_diagram for Mermaid diagrams
- Specify diagram type and content clearly
- Diagrams are rendered as SVG images
### Git Operations
- Use fetch_pull_request to get detailed PR information
- Includes title, description, diff, and commit details
- Useful for understanding code changes and context
## Best Practices
- Batch tool calls when possible for better performance
- Always read files before editing them
- Use appropriate tools for the task at hand
- Follow the user's coding rules and preferences
- Maintain code quality and avoid creating duplicate implementations