- Update Astro, RSS, and TypeScript versions in the lockfile - Refresh tool call documentation and changelog page
18 KiB
Zaguán Blade Tool Calls Reference
This document lists the tool calls that are actually executable in the local zblade runtime.
It intentionally excludes:
- ZLP-related tooling
- Anything handled server-side by
zcoderd - Schema-only entries that are not currently executed by
zblade
The authoritative implementation lives in src-tauri/src/tools.rs.
Scope
These tools are the ones zblade can execute locally in its own tool executor.
Excluded server-side tools include:
ask_followup_questionattempt_completionnew_taskgenerate_imagetodo_write
Also excluded from this document:
symbol_referencesbecause it is present in tool schema definitions but is not currently dispatched by the local executor.
File Tools
read_file
Read the full contents of a file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
Accepted aliases for path: file_path, filepath, filename
Example:
{
"path": "src/main.rs"
}
read_file_range
Read a specific line range from a file, with optional surrounding context.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
start_line |
integer | No | Start line, 1-indexed. Defaults to 1. |
end_line |
integer | No | End line, 1-indexed. Defaults to end of file. |
context_lines |
integer | No | Extra lines before and after the requested range. Defaults to 0. |
Accepted aliases for path: file_path, filepath, filename
Example:
{
"path": "src/lib.rs",
"start_line": 50,
"end_line": 100,
"context_lines": 3
}
write_file
Write content to a file. Parent directories are created if needed.
create_file
Alias of write_file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Target file path |
content |
string | Yes | File contents |
Accepted aliases:
path:file_path,filepath,filenamecontent:contents,text,data
Example:
{
"path": "src/new_module.rs",
"content": "pub fn hello() {\n println!(\"Hello!\");\n}\n"
}
edit_file
Legacy single search/replace edit tool.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
old_content |
string | Yes | Text to find |
new_content |
string | Yes | Replacement text |
Accepted aliases:
path:file_path,filepath,filenameold_content:old,fromnew_content:new,to
apply_patch
Preferred patch/edit tool for search/replace edits.
apply_edit
Alias of apply_patch.
Supports both a single replacement and an atomic multi-patch mode.
Single-patch parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
old_text |
string | Yes | Exact text to replace |
new_text |
string | Yes | Replacement text |
Multi-patch parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
patches |
array | Yes | Array of patch objects |
Each patch object supports:
old_text— requirednew_text— requiredstart_line— optional hintend_line— optional hint
Accepted aliases in single-patch mode:
path:file_path,filepath,filenameold_text:old_content,old,fromnew_text:new_content,new,to
Important behavior:
- Matching is exact.
- If the match is ambiguous, the edit fails.
- Multi-patch application is atomic: if one patch fails validation, none are applied.
delete_file
Delete a file, or a directory when recursive: true is provided.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Path to delete |
recursive |
boolean | No | Required when deleting a directory |
move_file
Move or rename a file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source |
string | Yes | Source path |
destination |
string | Yes | Destination path |
copy_file
Copy a file or recursively copy a directory.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source |
string | Yes | Source path |
destination |
string | Yes | Destination path |
create_directory
Create a directory and any missing parent directories.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Directory path |
get_file_info
Return basic filesystem metadata.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Path to inspect |
Returns: JSON including path, size, is_directory, is_file, modified, and readonly.
Directory and Search Tools
list_dir
List directory contents using a compact tree-like view.
list_directory
Alias of list_dir.
This is implemented by forwarding to get_workspace_structure with a default shallow depth.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | No | Directory path. Defaults to .. |
Notes:
list_dir/list_directoryexists mainly as a compatibility entry point.- The underlying structured traversal behavior is defined by
get_workspace_structure. - Prefer
get_workspace_structurewhen you need explicit traversal controls.
get_workspace_structure
Return a tree view of the workspace or a subdirectory.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | No | Starting path. Defaults to .. |
depth |
integer | No | Max traversal depth. Defaults to 2. |
limit |
integer | No | Max returned entries. Defaults to 50, capped at 200. |
Accepted aliases for path: dir, directory
Behavior notes:
- Hidden files are skipped.
- Common heavy/generated directories are skipped.
- Gitignored paths are filtered when project settings enable that behavior.
find_files
Find files by substring match on filename.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Substring to match in entry names |
path |
string | No | Search root inside the workspace |
max_depth |
integer | No | Optional max traversal depth |
find_files_glob
Find files with a glob pattern.
glob
Alias of find_files_glob.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Glob pattern |
path |
string | No | Optional base path |
case_sensitive |
boolean | No | Whether matching is case-sensitive |
Accepted aliases:
pattern:glob
grep_search
Search file contents with a regular expression.
rg
Alias of grep_search.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Regex pattern |
path |
string | No | Search root. Defaults to .. |
include_dependencies |
boolean | No | Include dependency directories like node_modules and vendor |
timeout_ms |
integer | No | Timeout used when timeout enforcement is enabled |
Accepted aliases:
pattern:query,regexpath:dir,directory
Behavior notes:
- Returns matches in
path:line:textform on success. - If timeout enforcement is enabled and the search times out, it returns structured JSON with partial results and a hint.
codebase_search
Search the codebase with regex and return matches with surrounding context.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | Regex pattern |
file_pattern |
string | No | Comma-separated filename patterns |
max_results |
integer | No | Max number of matches to return. Defaults to 50. |
Editor and UI Interaction Tools
get_editor_state
Return the current local editor context.
Parameters: None.
Returns: JSON including:
active_fileopen_filesactive_tab_indexcursor_linecursor_columnselection_start_lineselection_end_line
The returned text may also include human-readable helper guidance for the active file and cursor location.
open_file
Emit an editor action that opens a file, optionally at a line.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File to open |
line |
integer | No | Line number to jump to |
Note: This returns an action payload for the frontend to intercept.
goto_line
Emit an editor action that moves the cursor in the current file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
line |
integer | Yes | Target line |
column |
integer | No | Optional target column |
get_selection
Request the current selection.
Parameters: None.
Current status: implemented only as a placeholder action payload. It does not currently return the true selected text.
replace_selection
Emit an editor action that replaces the current selection.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
content |
string | Yes | Replacement content |
insert_at_cursor
Emit an editor action that inserts content at the current cursor position.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
content |
string | Yes | Text to insert |
Local Code-Intelligence Tools
These tools are local to zblade. They are not ZLP tools and do not require zcoderd, but they do depend on zblade's local language service / symbol index being available.
symbol_search
Search indexed symbols by name or qualified name.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | Symbol query |
path |
string | No | Restrict to a file |
kind |
string | No | Symbol kind filter |
limit |
integer | No | Max results. Defaults to 20, capped at 100. |
Accepted aliases:
path:file,file_pathkind:symbol_type
symbol_resolve
Resolve one symbol by ID, or by file plus name.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
symbol_id |
string | Conditionally | Stable symbol ID |
path |
string | Conditionally | Required when resolving by file-scoped lookup |
qualified_name |
string | No | Exact qualified name |
name |
string | No | Simple symbol name |
Accepted aliases:
symbol_id:idpath:file,file_path
Rule: provide either symbol_id, or a path with a symbol name selector.
symbol_outline
Return the hierarchical symbol outline for one file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | File path |
Accepted aliases for path: file, file_path
symbol_graph
Return incoming and outgoing graph edges for a symbol.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
symbol_id |
string | Conditionally | Stable symbol ID |
path |
string | Conditionally | File path when resolving by file/name |
qualified_name |
string | No | Exact qualified name |
name |
string | No | Simple symbol name |
relationship_type |
string | No | Edge type. Defaults to call. |
limit |
integer | No | Max edges. Defaults to 20, capped at 100. |
Accepted aliases:
symbol_id:idpath:file,file_pathrelationship_type:edge_kind,kind
Project Index Tools
These tools read the local .zblade/context/project_index.md artifact, or a semantic overview generated by the local language service when available.
get_project_index_overview
Read a compact overview window from the local project index.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | No | Optional workspace sub-root |
max_chars |
integer | No | Character budget. Defaults to 6000, capped at 12000. |
offset |
integer | No | Character offset |
get_project_index_chunk
Read a deterministic paged chunk from the local project index.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path |
string | No | Optional workspace sub-root |
offset |
integer | No | Character offset |
max_chars |
integer | No | Character budget. Defaults to 4000, capped at 8000. |
Composite Read-Only Tools
These tools are supported by zblade locally.
By default, schema exposure may be gated by model family and the composite_tools_enabled feature flag, but the local executor does support them.
read_many_files
Read multiple files selected by glob patterns in a single bounded call.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
paths |
array of strings | Yes | Include globs |
exclude |
array of strings | No | Exclude globs |
max_files |
integer | No | Max files. Defaults to 100, capped at 500. |
max_bytes_per_file |
integer | No | Per-file byte limit. Defaults to 65536, capped at 524288. |
include_line_numbers |
boolean | No | Include line numbers in returned content |
Accepted aliases for include globs: globs, patterns
batch
Execute multiple read-only tool calls concurrently with all-settled behavior.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
calls |
array | Yes | Array of tool call objects |
max_parallel |
integer | No | Defaults to 8, capped at 16 |
fail_fast |
boolean | No | Stop queued work after first failure |
ordered |
boolean | No | Preserve input order. Defaults to true. |
cancel_after_ms |
integer | No | Optional total budget |
Each call object supports:
toolornamearguments
Important behavior:
- Only read-only tools are allowed.
batchitself andrun_commandare explicitly blocked insidebatch.
codebase_investigator
Run a bounded read-only investigation pass and return structured findings.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
objective |
string | Yes | Investigation goal |
scope |
array of strings | No | Glob scope. Defaults to **/*. |
max_turns |
integer | No | Defaults to 8, capped at 16 |
max_tool_calls |
integer | No | Defaults to 40, capped at 120 |
output_format |
string | No | json or markdown |
cancel_after_ms |
integer | No | Optional total budget |
Command Execution
run_command
Execute a command in the workspace. This requires approval in normal AI workflows.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
command |
string | Conditionally | Legacy shell command line |
program |
string | Conditionally | Executable path/name for structured execution |
args |
array of strings | No | Structured arguments when using program |
shell |
boolean | No | Force shell execution when using program |
cwd |
string | No | Working directory |
blocking |
boolean | No | Defaults to true |
wait_ms_before_async |
integer | No | Startup wait when non-blocking |
Accepted aliases / alternate casing:
command:Command,command_line,CommandLineprogram:Programargs:Argsshell:Shellcwd:Cwdblocking:Blockingwait_ms_before_async:WaitMsBeforeAsync
Rule: provide either command or program.
Behavior notes:
- If
programis used, shell execution defaults tofalseunless explicitly enabled. - If
commandis used, shell execution is enabled.
General Notes
Result truncation
Large tool results may be truncated.
- Max size:
50 KB - Max lines:
2000
When truncation happens, the executor keeps a head/tail summary rather than returning the entire payload.
Path safety
Paths are generally constrained to the current workspace.
- Relative paths are resolved from the workspace root.
- Absolute paths must still resolve inside the workspace when validation is enforced.
Local vs advertised tools
This file documents what zblade can execute locally.
That is not always identical to what every model sees in advertised tool schemas:
- Some compatibility aliases are executor-only.
- Some composite tools are feature-flag and model-family gated for schema exposure.
- Some schema entries may exist before local execution support is complete.
Quick Reference
Locally executable non-server-side tools
read_fileread_file_rangewrite_filecreate_fileedit_fileapply_patchapply_editdelete_filemove_filecopy_filecreate_directoryget_file_infolist_dirlist_directoryget_workspace_structurefind_filesfind_files_globglobgrep_searchrgcodebase_searchget_editor_stateopen_filegoto_lineget_selectionreplace_selectioninsert_at_cursorsymbol_searchsymbol_resolvesymbol_outlinesymbol_graphget_project_index_overviewget_project_index_chunkread_many_filesbatchcodebase_investigatorrun_command