Expand description
§CATS - Coding Agent ToolS
A comprehensive toolkit for building AI-powered coding agents. This crate provides structured, LLM-friendly tools for software engineering tasks.
§Features
- File Navigation: Windowed file viewing, line navigation, scrolling
- Search Tools: File discovery, content search across files and directories
- File Editing: Search/replace editing with integrated linting
- State Management: Persistent tool state and session history
- Utility Tools: Project structure visualization, task submission
- LLM Integration: JSON conversion, tool execution, result handling for LLM providers
§Usage
use cats::{create_tool_registry, ToolArgs};
let mut registry = create_tool_registry();
let result = registry.execute_tool("_state", &ToolArgs::from_args(&[]))?;
println!("{}", result.message);Re-exports§
pub use core::Tool;pub use core::ToolArgs;pub use core::ToolRegistry;pub use core::ToolResult;pub use editing::CopyPathTool;pub use editing::CreateDirectoryTool;pub use editing::CreateFileTool;pub use editing::DeleteFunctionTool;pub use editing::DeleteLineTool;pub use editing::DeletePathTool;pub use editing::DeleteTextTool;pub use editing::InsertTextTool;pub use editing::MovePathTool;pub use editing::OverwriteFileTool;pub use editing::ReplaceTextTool;pub use execution::RunCommandTool;pub use file_navigation::CreateTool;pub use file_navigation::GotoTool;pub use file_navigation::OpenTool;pub use file_navigation::ScrollTool;pub use file_navigation::WindowedFile;pub use llm::assistant::generate_assistant_content;pub use llm::assistant::ToolCallInfo;pub use llm::converter::json_to_tool_args;pub use llm::executor::execute_tool_calls;pub use llm::executor::execute_tool_calls_structured;pub use llm::executor::ExecutionCallback;pub use llm::executor::NoOpCallback;pub use llm::executor::ToolCallRequest;pub use llm::executor::ToolExecutionResult;pub use llm::result_handler::handle_large_result;pub use llm::result_handler::ResultHandlerConfig;pub use search::FindFileTool;pub use search::SearchDirTool;pub use search::SearchFileTool;pub use state::StateTool;pub use state::ToolState;pub use utils::ClassifyTaskTool;pub use utils::CountTokensTool;pub use utils::FilemapTool;pub use utils::SubmitTool;
Modules§
- core
- Core traits and types for the simpaticoder tools system
- editing
- Enhanced file editing tools with advanced matching and normalization
- execution
- Command execution tool for running shell commands
- file_
navigation - File navigation tools
- linting
- Linting integration for various languages
- llm
- LLM integration module for CATS tools
- search
- Search tools for file discovery and content search
- state
- State management for tools
- utils
- Utility tools for project analysis and task completion
Functions§
- create_
tool_ registry - Initialize the tool registry with all available tools (backward-compatible)
- create_
tool_ registry_ with_ open_ window_ size - Initialize the tool registry with a configurable default window size for the “open” tool