Reference
Tools Reference
All 31 tools that RaggieCode makes available to the LLM. Grouped into five categories: code exploration, file operations, information gathering, agent management, and todo list planning.
RaggieCode exposes 31 tools to the LLM, giving the agent the ability to understand your codebase, modify files, run shell commands, search the web, manage subagents, and plan complex multi-step tasks. Every tool is registered with a JSON schema that the LLM uses for function calling .; the agent decides which tool to invoke and with what arguments, and RaggieCode handles the execution.
The tools are organised into five categories below. Tool names appear in monospace throughout.
Code Exploration
7 tools
Powered by the Code Indexer
The code exploration tools (GetFileCodeSemantics, GetSymbolSourceCode, and WalkCallTree) are backed by RaggieCode's semantic code indexer .; a tree-sitter powered analysis engine that parses your codebase into symbols, functions, classes, imports, and full dependency graphs. This is what lets RaggieCode trace call chains, find every caller of a function, and analyse the blast radius of any change. It is not just text search .; it is structural understanding.
The indexer supports 15 languages: Python, Go, C#, JavaScript, TypeScript, TSX, Rust, Zig, Elixir, C, C++, PHP, Dart, Java, and Kotlin. The index is stored in .raggie/.code_index.raggie (SQLite) and is refreshed after every tool call so the agent always has fresh context.
| Tool | What it does |
|---|---|
GetFileCodeSemantics |
Show a file's structure: functions, classes, imports, dependencies, with optional full source bodies. Supports 15 languages. The canonical way to explore code files. |
GetSymbolSourceCode |
Get full source of a function, class, or variable by name. Falls back to fuzzy search across the index when an exact match is not found. |
WalkCallTree |
Breadth-first traversal of the call graph from any entry point. Configurable max depth (default 5) with cycle detection. Traces execution flow across the entire codebase. |
UglyWholeFileContentDump |
Read raw file contents. Throttled .; prefer the semantic tools (GetFileCodeSemantics, GetSymbolSourceCode) for code files. Use for configs, docs, and non-code files. |
ListDir |
List directory contents with type (FILE/DIR) and size in bytes. Supports recursive listing up to a configurable depth. |
SearchAllFilesContent |
Regex grep across files and directories. Simple pattern matching for finding strings and patterns in your codebase. |
FileNameSearch |
Fuzzy search for file names by partial or approximate match. Uses subsequence matching with bonuses for consecutive characters and word boundaries. Returns the top 5 results. |
File Operations
6 tools
| Tool | What it does |
|---|---|
WriteFile |
Create or overwrite a file. Automatically creates parent directories. Refuses to operate on files matched by .gitignore or .aiignore. |
ReplaceText |
Find-and-replace in an existing file. Supports literal matching and regex patterns with backreferences. Can replace a single occurrence or all occurrences (replace_all). Returns a unified-diff-style view of changes. |
RemoveFile |
Delete a file or directory recursively. Refuses to remove paths matched by .gitignore or .aiignore. |
Shell |
Execute a shell command via subprocess. Useful for build commands, test runners, linters, and install commands. Configurable timeout (default 30 seconds). |
TempBackgroundService |
Start a temporary background service (non-blocking). Returns a PID for later management. Designed for dev servers, watch processes, and other long-running commands that need to stay alive while the agent continues working. |
ShellKill |
Kill a background shell process by its PID. Returns any stdout/stderr captured while the process was running. |
Information Gathering
2 tools
| Tool | What it does |
|---|---|
WebFetch |
Fetch a URL over HTTP/HTTPS and return readable text. HTML pages are stripped to plain text (scripts/styles removed, block elements turned into line breaks). JSON, XML, and plain text are returned as-is. Configurable max character limit (default 20000). |
WebSearch |
Search the web via DuckDuckGo (no API key required). Returns a ranked list of results with title, URL, and snippet. Supports up to 20 results and optional region filtering. The agent can follow up with WebFetch on a promising URL to read the full page. |
Agent Management & Communication
5 tools
| Tool | What it does |
|---|---|
DispatchSubagent |
Spawn a child agent to handle a subtask. The subagent inherits the same role and runs sequentially. Maximum 3 levels of nesting to prevent runaway recursion. Optional timeout (default 300 seconds). |
SetSkill |
Create or update a named skill for the agent's own role. Skills are persistent instruction sets that survive across sessions. Requires user consent before applying changes. |
GetSkill |
Fetch the full content of a skill by name. Skills are advertised as brief summaries at startup; the full content is loaded on demand to save tokens. |
ViewChanges |
Introspect the built-in git repo at .raggie/git/. Supports three views: status (added/modified/deleted files), diff (line-by-line diffs), and log (commit history). |
AskUser |
Ask the user a question mid-task. Supports predefined options (single-choice, multiple-choice, or free-form). The agent uses this to clarify requirements, confirm design decisions, or ask for preferences instead of guessing. |
Todo Lists
9 tools
The todo list system lets the agent plan and execute complex multi-step tasks with user oversight. Tasks are executed sequentially by isolated subagents, and the user must approve the plan before any task runs. When all tasks are done, the todo list is automatically deleted.
1. GetActiveTodoList check for existing incomplete todo list
2. CreateTodoList create a new list
3. AddTask (x N) add tasks with goals and requirements
4. GetTodoList review the plan
5. ApproveTodoList present to user for y/n approval
6. ExecuteNextTask execute tasks one by one via subagents
| Tool | What it does |
|---|---|
CreateTodoList |
Create a new todo list for the current session. Returns a todo_list_id used by all subsequent calls. |
AddTask |
Add a task to a todo list. Each task has a goal, optional requirements, notes, context (background info for the subagent), and an order_index for execution order. |
GetTodoList |
Retrieve and display a todo list with all tasks and their statuses: pending, in_progress, completed, failed, or cancelled. |
ApproveTodoList |
Display the plan to the user and ask for approval (y/n). If approved, tasks can be executed. If rejected, the agent rebuilds the plan based on user feedback. |
ExecuteNextTask |
Dispatch a subagent to execute the next pending task. Tasks run sequentially in order .; never in parallel. When all tasks are completed, the todo list is automatically deleted. |
MarkTaskComplete |
Manually mark a task as completed. Useful when a task was finished outside the normal ExecuteNextTask flow, or to correct task status. |
MarkTaskFailed |
Mark a task as failed when it encountered an unrecoverable error. |
MarkTaskCancelled |
Mark a task as cancelled when it is no longer needed or should be intentionally skipped. Distinct from failed: cancelled means the task was deliberately not executed. |
GetActiveTodoList |
Check for an incomplete todo list (pending, in_progress, or rejected) to resume. Used at the start of a session or after interruption to offer crash recovery. |
Key Behaviors
- Sequential execution: Tasks run one at a time, never in parallel. The subagent for each task receives a summary of all previously completed tasks.
- Subagent isolation: Each task is handled by a fresh subagent with no access to the orchestrator's conversation history. The
contextfield onAddTaskis how you pass along knowledge. - Auto-deletion: When all tasks are completed, the todo list is automatically removed from the database.
- Crash recovery: If the session is interrupted,
GetActiveTodoListreturns the incomplete list and the user is offered to resume it. - Nested todo lists: Subagents can create their own todo lists for complex subtasks, up to 3 levels deep.