Tools Reference
Tools Reference
Tools enable AI agents to interact with your codebase, filesystem, and external services. When a workflow runs, the AI can invoke tools to read files, make changes, run commands, search the web, and more.
Reliant provides a curated set of built-in tools designed for software development tasks, plus automatic integration with any MCP servers you configure.
Tool Tags
Every tool has one or more tags that categorize its functionality. Tags enable flexible tool filtering in workflows—you can include entire categories of tools rather than listing each one individually.
| Tag | Description | Tools Included |
|---|---|---|
default | Standard toolset for general development | Most commonly used tools for coding tasks |
readonly | Safe tools that only read data | Search, view, and planning tools that don’t modify files |
file | File manipulation operations | view, write, edit, patch, find_replace, move_code |
search | Code and file search | grep, glob |
execution | Command execution | bash, bash_list, bash_output, bash_kill |
web | External web access | fetch, websearch |
planning | Plan and task management | create_plan, update_plan, get_plan, list_tasks, add_task, update_task, create_subtask |
analysis | Project analysis tools | project_analyzer, sourcegraph |
workflow | Workflow builder tools | read_workflow_state, update_workflow, set_workflow, validate_workflow |
mcp | All MCP server tools | Automatically includes tools from configured MCP servers |
Tag Memberships
Here’s which tags each built-in tool belongs to:
| Tool | Tags |
|---|---|
view | file, readonly, default |
write | file, default |
edit | file, default |
patch | file, default |
find_replace | file, default |
move_code | file, default |
grep | search, readonly, default |
glob | search, readonly, default |
bash | execution, default |
bash_list | execution, readonly |
bash_output | execution, readonly |
bash_kill | execution |
fetch | web, readonly, default |
websearch | web, readonly, default |
create_plan | planning, readonly, default |
update_plan | planning, readonly, default |
get_plan | planning, readonly, default |
list_tasks | planning, readonly, default |
add_task | planning, readonly, default |
update_task | planning, readonly, default |
create_subtask | planning, readonly |
project_analyzer | analysis, readonly, default |
sourcegraph | analysis, readonly |
worktree | default |
Tool Filtering
Workflows use the tool_filter input to control which tools are available. The filter syntax supports tags, individual tool names, glob patterns, and exclusions.
Filter Syntax
| Syntax | Description | Example |
|---|---|---|
tag:X | Include all tools with tag X | tag:default |
toolname | Include a specific tool | bash |
!toolname | Exclude a specific tool | !bash |
pattern* | Glob pattern matching | mcp_github_* |
spawn:workflow(presets) | Configure spawn tool presets | spawn:builtin://agent(general,researcher) |
Filter Examples
Standard development tools:
tool_filter:
- tag:defaultRead-only mode (safe for planning):
tool_filter:
- tag:readonlyDefault tools without bash execution:
tool_filter:
- tag:default
- "!bash"Only search tools:
tool_filter:
- tag:searchCombine multiple tags:
tool_filter:
- tag:readonly
- tag:mcpSpecific tools only:
tool_filter:
- view
- grep
- globInclude MCP tools by pattern:
tool_filter:
- tag:default
- mcp_github_*Full control with spawn configuration:
tool_filter:
- tag:default
- "!bash"
- spawn:builtin://agent(general,researcher)Evaluation Order
- Inclusions first: All
tag:Xand plain tool names are collected - Exclusions second: Any
!nameentries remove tools from the set - Globs expand: Patterns like
mcp_*match against all available tools - Spawn parsed:
spawn:entries configure sub-agent capabilities
File Tools
Tools for reading, writing, and modifying files in your codebase.
view
Read and display file contents with line numbers.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Path to the file to view |
offset | integer | No | Starting line number (0-indexed) |
limit | integer | No | Maximum lines to read (default: 500, max: 256000) |
Features:
- Displays line numbers for easy reference
- Automatic truncation of very long lines (>500 chars)
- Suggests similar filenames when file not found
- Maximum output size of 16KB (~4K tokens)
Example:
{
"file_path": "/path/to/file.go",
"offset": 100,
"limit": 50
}write
Create or completely overwrite a file.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Path to the file to write |
content | string | Yes | Content to write to the file |
Features:
- Creates parent directories automatically
- Checks for external modifications before writing
- Skips write if content is unchanged
- Shows diff of changes made
When to use:
- Creating new files
- Complete file rewrites
- Generating configuration files
edit
Make precise text replacements in files. Supports single or multiple edits in one operation.
| Parameter | Type | Required | Description |
|---|---|---|---|
edits | array | Yes | Array of edit operations |
Edit Operation:
| Field | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute path to file |
old_string | string | Yes | Text to find (exact match required) |
new_string | string | Yes | Replacement text |
replace_all | boolean | No | Replace all occurrences (default: false) |
Features:
- Atomic operation: all edits succeed or all fail
- Supports creating new files (empty
old_string) - Supports deleting content (empty
new_string) - Shows diff of changes
Example:
{
"edits": [
{
"file_path": "/path/to/file.go",
"old_string": "func oldName(",
"new_string": "func newName(",
"replace_all": true
}
]
}Best practices:
- Always view files first to understand context
- Include 3-5 lines of context in
old_stringfor uniqueness - Whitespace and indentation must match exactly
patch
Apply coordinated changes across multiple files using a patch format.
| Parameter | Type | Required | Description |
|---|---|---|---|
patch_text | string | Yes | Patch describing all changes |
Patch Format:
*** Begin Patch
*** Update File: /path/to/file
@@ Context line (unique within file)
Line to keep
-Line to remove
+Line to add
Line to keep
*** Add File: /path/to/new/file
+Content of new file
*** Delete File: /path/to/delete
*** End PatchFeatures:
- Atomic: all changes apply or none
- Supports update, add, and delete operations
- Context lines ensure precise placement
find_replace
Perform find-and-replace across multiple files matching a pattern.
| Parameter | Type | Required | Description |
|---|---|---|---|
find_pattern | string | Yes | Text or regex to find |
replace_text | string | Yes | Replacement text |
file_glob | string | No | Glob pattern to filter files (e.g., **/*.js) |
ignore_case | boolean | No | Case-insensitive matching |
use_regex | boolean | No | Treat pattern as regular expression |
Features:
- Glob pattern file filtering
- Regex support with capture groups (
$1,$2, etc.) - Shows summary of all changes made
Example:
{
"find_pattern": "import (.*) from 'old-module'",
"replace_text": "import $1 from 'new-module'",
"use_regex": true,
"file_glob": "**/*.ts"
}move_code
Move or copy blocks of code between locations in the same file or across files.
| Parameter | Type | Required | Description |
|---|---|---|---|
source_file | string | Yes | Path to source file |
source_start | integer | Yes | Starting line (1-indexed, inclusive) |
source_end | integer | Yes | Ending line (1-indexed, inclusive) |
target_file | string | Yes | Path to target file |
target_line | integer | Yes | Line after which to insert (0 = beginning) |
operation | string | No | move (default) or copy |
Example:
{
"source_file": "/path/to/file.go",
"source_start": 50,
"source_end": 75,
"target_file": "/path/to/other.go",
"target_line": 100,
"operation": "move"
}Search Tools
Tools for finding files and searching content.
grep
Search file contents using ripgrep. The primary tool for code search.
| Parameter | Type | Required | Description |
|---|---|---|---|
pattern | string | Yes | Regex pattern to search for |
path | string | No | Directory to search (default: working directory) |
glob | string | No | File filter pattern (e.g., *.js) |
type | string | No | File type filter (e.g., go, ts, py) |
output_mode | string | No | files_with_matches (default), content, or count |
-A | integer | No | Lines after match (content mode) |
-B | integer | No | Lines before match (content mode) |
-C | integer | No | Lines of context (content mode) |
-i | boolean | No | Case-insensitive search |
word_boundary | boolean | No | Match whole words only |
fixed_strings | boolean | No | Treat pattern as literal (no regex) |
multiline | boolean | No | Allow patterns spanning lines |
head_limit | integer | No | Limit number of results |
Output Modes:
files_with_matches: File paths sorted by modification timecontent: Matching lines with line numberscount: Match counts per file
Example:
{
"pattern": "func.*Error",
"type": "go",
"output_mode": "content",
"-C": 3
}glob
Find files by name pattern.
| Parameter | Type | Required | Description |
|---|---|---|---|
pattern | string | Yes | Glob pattern (e.g., **/*.ts) |
path | string | No | Directory to search (default: working directory) |
head_limit | integer | No | Limit results (default: 200) |
Example:
{
"pattern": "**/*_test.go",
"head_limit": 50
}Execution Tools
Tools for running shell commands. On Unix/macOS, these use Bash. On Windows, PowerShell is used instead.
bash
Execute shell commands in a stateless environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
command | string | Yes | Command to execute |
timeout | integer | No | Timeout in milliseconds (max: 600000, default: 60000) |
run_in_background | boolean | No | Run asynchronously |
env | object | No | Environment variables |
max_output | integer | No | Max output bytes (default: 16000) |
tail_lines | integer | No | Return only last N lines |
Important behaviors:
- Each command runs in a fresh shell—no state persists
- Working directory is set to the project/worktree root
- Use
&∨to chain commands - Background processes return a process ID
Example:
{
"command": "npm test -- --coverage",
"timeout": 300000
}Background process:
{
"command": "npm run dev",
"run_in_background": true
}bash_list
List background processes.
| Parameter | Type | Required | Description |
|---|---|---|---|
all | boolean | No | Include completed processes (default: running only) |
session_id | string | No | Filter by session |
chat_id | string | No | Filter by chat |
bash_output
Get output from a background process with pagination and filtering.
| Parameter | Type | Required | Description |
|---|---|---|---|
process_id | string | Yes | Background process ID |
offset | integer | No | Start byte position |
limit | integer | No | Max bytes to read (default: 16000) |
tail | integer | No | Get last N lines instead |
regex | string | No | Filter to matching lines |
regex_case_insensitive | boolean | No | Case-insensitive regex |
regex_context_before | integer | No | Lines before matches |
regex_context_after | integer | No | Lines after matches |
bash_kill
Terminate a background process.
| Parameter | Type | Required | Description |
|---|---|---|---|
process_id | string | Yes | Process ID to terminate |
Web Tools
Tools for accessing external web resources.
fetch
Download content from a URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL to fetch |
format | string | Yes | Output format: text, markdown, or html |
timeout | integer | No | Timeout in seconds (max: 120) |
max_size | integer | No | Max bytes (default: 16000) |
Example:
{
"url": "https://api.example.com/docs",
"format": "markdown"
}websearch
Search the web using DuckDuckGo.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query |
count | integer | No | Number of results (default: 10, max: 20) |
Search tips:
- Use
site:github.comfor domain-specific searches - Use quotes for exact phrases
- Use
-termto exclude terms
Example:
{
"query": "golang context timeout example",
"count": 5
}Planning Tools
Tools for creating and managing execution plans with tasks.
create_plan
Create a new plan with tasks for the current session.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Plan title |
description | string | Yes | Detailed description with objectives and approach |
complexity | string | Yes | simple, moderate, or complex |
tasks | array | Yes | List of tasks to create |
Task structure:
{
"title": "Implement user authentication",
"description": "Add login and registration endpoints"
}update_plan
Modify an existing plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | No | New title |
description | string | No | Updated description |
status | string | No | pending, in_progress, completed, cancelled |
complexity | string | No | Updated complexity |
get_plan
Retrieve the current session’s plan.
No parameters required.
list_tasks
List all tasks in the current plan.
No parameters required.
add_task
Add a new task to the plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
description | string | No | Task description |
position | integer | No | Position in task list |
parent_id | string | No | Parent task ID for subtasks |
metadata | object | No | Additional metadata (notes, hints, etc.) |
Metadata options:
preferred_agent: Which agent type should handle thistool_hints: Suggested tools (use_bash,search_first)dependencies: What this task depends onnotes: Context or discoveriespriority:high,medium,low
update_task
Update a task’s status or details.
| Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | Task ID or position number |
status | string | No | New status (see below) |
description | string | No | Updated description |
metadata | object | No | Updated metadata |
Status values:
pending- Not startedin_progress- Currently workingcompleted- Successfully finishedfailed- Could not completeblocked- Waiting on somethingskipped- Decided not to docancelled- No longer needed
create_subtask
Create a subtask under an existing task.
| Parameter | Type | Required | Description |
|---|---|---|---|
parent_task_id | string | Yes | Parent task ID |
title | string | Yes | Subtask title |
description | string | No | Subtask description |
Analysis Tools
Tools for analyzing project structure and codebase.
project_analyzer
Analyze project structure, languages, and build systems.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | Analysis action to perform |
path | string | No | Path to analyze (default: project root) |
Actions:
detect_type- Identify project type (single app, monorepo, etc.)find_build_files- Locate build configuration filesdetect_languages- Identify programming languages usedfind_tests- Find test file patterns
Git Tools
worktree
Manage git worktrees for parallel development.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | create, list, get, or delete |
name | string | Conditional | Worktree name (required for create/get/delete) |
branch | string | No | Branch name (auto-generated if not specified) |
base_branch | string | No | Base branch to branch from |
copy_files | array | No | Files to copy (e.g., .env, .env.local) |
force | boolean | No | Force creation, removing existing |
session_id | string | No | Session to associate with worktree |
Create example:
{
"action": "create",
"name": "feature-auth",
"base_branch": "main",
"copy_files": [".env", ".env.local"]
}MCP Tools
Tools from MCP servers are automatically available and tagged with tag:mcp.
Naming Convention
MCP tools are prefixed with mcp_ followed by the server name:
mcp_github_create_issuemcp_slack_send_messagemcp_postgres_query
Filtering MCP Tools
Include all MCP tools:
tool_filter:
- tag:mcpInclude specific server’s tools:
tool_filter:
- mcp_github_*Combine with built-in tools:
tool_filter:
- tag:default
- tag:mcpConfiguration
MCP servers are configured in Reliant’s settings. See MCP Servers for setup instructions.