Expand description
Tool implementations for OpenDev.
Each module implements the BaseTool trait from opendev-tools-core.
Tools are grouped by function:
- File operations:
file_read,file_write,file_edit,file_list,file_search - Process execution:
bash - Web tools:
web_fetch,web_search,web_screenshot,browser - User interaction:
ask_user - Memory tools:
memory - Session tools:
session - Patch application:
patch - Scheduling:
schedule - PDF extraction: [
pdf] - Browser opening:
open_browser - Agent management:
agents - Diff preview:
diff_preview - Messaging:
message - Notebook editing:
notebook_edit - Task completion:
task_complete - Vision LM:
vlm - Plan presentation:
present_plan - Todo management:
write_todos,update_todo,complete_todo,list_todos,clear_todos
Re-exports§
pub use agents::AgentsTool;pub use agents::ChannelProgressCallback;pub use agents::SpawnSubagentTool;pub use agents::SubagentEvent;pub use ask_user::AskUserTool;pub use bash::BashTool;pub use browser::BrowserTool;pub use clear_todos::ClearTodosTool;pub use complete_todo::CompleteTodoTool;pub use diff_preview::DiffPreviewTool;pub use file_edit::FileEditTool;pub use file_list::FileListTool;pub use file_read::FileReadTool;pub use file_search::AstGrepTool;pub use file_search::GrepTool;pub use file_write::FileWriteTool;pub use insert_symbol::InsertAfterSymbolTool;pub use insert_symbol::InsertBeforeSymbolTool;pub use invoke_skill::InvokeSkillTool;pub use list_todos::ListTodosTool;pub use lsp_query::LspQueryTool;pub use mcp_tool::McpBridgeTool;pub use memory::MemoryTool;pub use message::MessageTool;pub use multi_edit::MultiEditTool;pub use notebook_edit::NotebookEditTool;pub use open_browser::OpenBrowserTool;pub use patch::PatchTool;pub use present_plan::PresentPlanTool;pub use schedule::ScheduleTool;pub use session::PastSessionsTool;pub use task_complete::TaskCompleteTool;pub use todo::TodoTool;pub use update_todo::UpdateTodoTool;pub use vlm::VlmTool;pub use web_fetch::WebFetchTool;pub use web_screenshot::WebScreenshotTool;pub use web_search::WebSearchTool;pub use worktree::WorktreeInfo;pub use worktree::WorktreeManager;pub use write_todos::WriteTodosTool;
Modules§
- agents
- Agents tool — list and spawn subagent types.
- ask_
user - Ask user tool — pose structured questions to the user via a channel.
- bash
- Bash tool — execute shell commands with streaming output, background process management, activity-based dual timeout, security checks, and smart truncation.
- browser
- Browser automation tool — headless browser interaction.
- clear_
todos - clear_todos tool — remove all todo items.
- complete_
todo - complete_todo tool — mark a todo item as completed.
- custom_
tool - Custom tool loaded from
.opendev/tools/directory. - diagnostics_
helper - Post-edit diagnostic collection helper.
- diff_
preview - Diff preview tool — generate and display unified diffs between file versions.
- edit_
replacers - 9-pass fuzzy matching chain for the edit tool.
- file_
edit - Edit file tool — string replacement with 9-pass fuzzy matching, diff preview, per-file locking, and proper line-count statistics.
- file_
list - List files tool — glob-based file listing.
- file_
read - Read file tool — reads file contents with optional line ranges and binary detection.
- file_
search - Search tools —
grep(ripgrep) andast_grep(ast-grep structural search). - file_
write - Write file tool — writes content to a file with atomic writes and directory creation.
- formatter
- Auto-formatting support for edited files.
- insert_
symbol - Insert content before or after a symbol found via AST-based symbol navigation.
- invoke_
skill - invoke_skill tool — loads skill content into conversation context on demand.
- list_
todos - list_todos tool — display the current todo list.
- lsp_
query - LSP query tool — wraps LspWrapper methods for definition, references, hover, and symbols.
- mcp_
tool - MCP tool bridge: wraps an MCP server tool as a
BaseTool. - memory
- Memory tool — search and write memory files for cross-session persistence.
- message
- Message tool — send messages to external channels via webhooks.
- multi_
edit - Multi-edit tool — apply multiple sequential edits to a single file atomically.
- notebook_
edit - Notebook edit tool — edit Jupyter notebook (.ipynb) cells.
- open_
browser - Open browser tool — open a URL in the system’s default browser.
- patch
- Patch tool — apply unified diff and structured (apply_patch) patches to files.
- path_
utils - Shared path resolution utilities for tool implementations.
- present_
plan - Present plan tool — present a plan file for user approval.
- schedule
- Schedule tool — create and manage scheduled tasks persisted to disk.
- session
- Past sessions tool — browse and search historical conversation sessions.
- task_
complete - Task complete tool — signal explicit task completion.
- todo
- Todo tool — list, update, and manage plan execution todos.
- truncation
- Tool output truncation with temp file overflow.
- update_
todo - update_todo tool — update a single todo item’s status or title.
- vlm
- Vision Language Model (VLM) tool — analyze images using vision-capable LLMs.
- web_
fetch - Web fetch tool — fetch URL content via HTTP.
- web_
screenshot - Web screenshot tool — capture web page screenshots.
- web_
search - Web search tool — search the web via DuckDuckGo HTML scraping.
- worktree
- Git worktree management for isolated agent workspaces.
- write_
todos - write_todos tool — replace the entire todo list.