aivyx-coder · ManualContents ↓
Tools
Every tool aivyx-coder can give the model, with the description the model
itself reads. Generated from the code by scripts/gen-tools-reference.py —
edit the tool, not this page.
Asks first? Reading, searching and fetching from the web don’t ask.
Anything that writes, deletes, moves or runs something, calls an MCP
server, or saves memory asks you (y once, a always for that exact file,
command or topic, n no) — unless you pre-approved it. In plan mode the
tools that change things are hidden from the model and refused if it tries.
Files on your deny list are refused outright. Delegated sub-agents and
specialists ask for their own actions the same way. See the
security model.
Files
Read, write and change files in the project.
| Tool | Asks first? | What it does |
|---|---|---|
read_file |
no | Read a text file: up to 400 lines (and 20,000 characters) from offset (default line 1), or limit lines. |
write_file |
yes | Create a file or overwrite it entirely with new content. Creates parent directories as needed. |
edit_file |
yes | Replace an exact substring in an existing file with new text. old_string must match exactly once in the file (include enough surrounding context to make it unique), unless replace_all is set. |
patch_file |
yes | Apply a unified-diff patch to an existing file. |
move_file |
yes | Move or rename a file or directory. Refuses if the destination already exists (no overwrite) or if source and destination are on different filesystems (no copy+delete fallback). |
delete_file |
yes | Delete a single file. Refuses to delete directories — delete the files inside them instead. |
Search
Find things in the project.
| Tool | Asks first? | What it does |
|---|---|---|
grep |
no | Search file contents for a regex pattern (Rust regex syntax, not PCRE) under a directory, defaulting to the working directory. Respects .gitignore and does not follow symlinks. |
glob |
no | Find file paths matching a glob pattern (e.g. “**/*.rs”) under a directory, defaulting to the working directory. The pattern is matched against paths relative to that directory. |
Commands
Run programs. run_command only runs commands you listed in [[permissions.allowed_commands]]; run_shell runs anything, and always asks.
| Tool | Asks first? | What it does |
|---|---|---|
run_command |
yes | Run a pre-configured project command (e.g. build/test/lint) and get its exit status and output back. Commands are fixed by user configuration — you select one by name and cannot supply a program or arbitrary arguments. |
run_shell |
yes | Run an arbitrary shell command (via sh -c) and get its exit status and output back. |
Interactive processes
Drive a long-running program such as a REPL or debugger ([repl]).
| Tool | Asks first? | What it does |
|---|---|---|
repl_start |
yes | Start a persistent, interactive process (e.g. a language REPL like python3 -i, a database CLI like psql mydb, or a long-running dev server like npm run dev) and get any output it produces immediately (e.g. a startup banner) back. |
repl_send |
no | Send input to the process started by repl_start and get its output back. Omit input (or send an empty string) to just check for new output without sending anything — useful for polling a long-running process. |
repl_stop |
no | Stop the process started by repl_start. Errors if no session is running. |
Git
Reading history is free; writing asks.
| Tool | Asks first? | What it does |
|---|---|---|
git_read |
no | Inspect the git repository in the working directory (read-only): mode “status” shows branch and changed files, mode “diff” shows unstaged changes (set staged=true for staged ones, path to limit to one file/directory), mode “log” shows recent commits (count, default 10), mode “branches” shows local branches with upstream tracking info. |
git_commit |
yes | Stage and commit changes to the git repository in the working directory, with the given commit message. Commits all current changes unless specific paths are given. |
git_branch |
yes | Create a new branch (and switch to it) or switch to an existing branch. “create” takes an optional base ref to branch from (defaults to the current HEAD); “switch” moves to an already-existing branch. |
git_push |
yes | Push the current branch to a remote (default “origin”), setting upstream tracking if not already configured. Never force-pushes. |
git_pr |
yes | Open a pull request for the current branch via the gh CLI. The branch must already be pushed (use git_push first) — this returns a clear error naming that fix if there’s no upstream configured yet. |
Planning
The model’s own task list, shown in the TUI.
| Tool | Asks first? | What it does |
|---|---|---|
set_tasks |
no | Replace your task list with a new one. Use this to plan multi-step work and track progress: write the full list of steps up front, then rewrite the list as statuses change (pending, in_progress, done). |
Web
Only when [web] enabled = true. Inference stays local; these reach the network.
| Tool | Asks first? | What it does |
|---|---|---|
web_fetch |
no | Fetch a URL and return its readable text content (HTML is converted to plain text, scripts/styles stripped). Use this to read documentation, error message explanations, or API references. |
web_search |
no | Search the web via a configured SearXNG instance and return ranked results (title, URL, snippet). Use web_fetch on a result’s URL to read the full page. |
Language server
Uses rust-analyzer ([lsp]). The first call in a session asks before starting it: rust-analyzer builds the project, running its build scripts and proc macros. Plan mode never starts it; --auto only if rust-analyzer is in [[permissions.allowed_commands]].
| Tool | Asks first? | What it does |
|---|---|---|
go_to_definition |
once | Resolve the symbol at a file position (1-indexed line/column) to its actual definition site via rust-analyzer. Use this when the repo map’s symbol list isn’t enough to tell which exact definition a call site resolves to. |
find_references |
once | Find every reference to the symbol at a file position (1-indexed line/column) across the whole workspace via rust-analyzer — unlike grep, this distinguishes the symbol from unrelated identifiers that merely share its name. |
Memory and learning
See Memory and learning.
| Tool | Asks first? | What it does |
|---|---|---|
memory_read |
no | Recall entries previously saved with memory_write under an exact topic, newest first. Returns an empty list if nothing has been saved under that topic. |
memory_write |
yes | Persist a small fact or note for future recall via memory_read — not shown to you automatically. |
memory_forget |
yes | Permanently delete every entry saved with memory_write under an exact topic. Returns how many entries were deleted (0 if the topic was never written). |
remember_preference |
yes | Propose an update to your own long-term memory of the user’s preferences and working style — stored in a file that’s automatically included in every future project, not just this one. |
load_skill |
no | Load the full body of one default or project/user skill by name, for step-by-step process guidance (e.g. systematic debugging, writing a plan, brainstorming and scoping). Available skills: {}., |
Delegation and teams
Sub-agents and specialist teams. See Specialist teams.
| Tool | Asks first? | What it does |
|---|---|---|
delegate_task |
no | Delegate a bounded task to a fresh sub-agent with its own isolated conversation history and full tool access (same permissions as you). |
delegate_to_specialist |
no | Delegate a bounded task to a named team specialist – a fresh sub-agent scoped to that specialist’s own role and tool access (narrower than yours), with its own isolated conversation history. |
spawn_specialist |
no | Start a resumable session with one team specialist – unlike delegate_to_specialist (a single exchange), the specialist stays alive so you can send it follow-ups with query_specialist, then end it with close_specialist when done. |
query_specialist |
no | Send a follow-up message to a specialist session opened with spawn_specialist – the specialist remembers everything from earlier exchanges in this same session. Returns the specialist’s response. |
close_specialist |
no | End a specialist session opened with spawn_specialist, freeing it up so a new session can be opened within the concurrent-session limit. Errors if session_id is unknown or already closed. |
decompose_task |
no | Decompose a mission into steps, each delegated to one team specialist. Call this once at the start of a team mission, before delegating anything. |
verify_output |
no | Record your verification judgment (pass or fail, with notes) for one step of the current mission plan, after reviewing a specialist’s delegated output. Use the step number from decompose_task’s own response. |
synthesize_results |
no | Record the final synthesized deliverable for the current mission, once every step has been delegated and verified. |
MCP servers
Your [[mcp.servers]]’ resources and prompts. Their own tools appear as mcp__<server>__<tool>. See MCP.
| Tool | Asks first? | What it does |
|---|---|---|
list_mcp_resources |
no | List resources exposed by connected MCP servers (uri, name, description). Pass server to restrict to one server, or omit to aggregate across all of them. |
read_mcp_resource |
no | Fetch one MCP resource’s content by server name and URI (see list_mcp_resources). Binary resources render as a placeholder note, not decoded. |
list_mcp_prompts |
no | List prompt templates exposed by connected MCP servers (name, description, declared arguments). Pass server to restrict to one server, or omit to aggregate across all of them. |
get_mcp_prompt |
no | Fetch one MCP prompt template’s expanded content by server and name (see list_mcp_prompts), with optional arguments. Returns the resolved messages as text for you to read and use directly. |
Images
generate_svg uses your own model and returns the SVG (save it with write_file). generate_image and upscale_image need [vision] enabled = true, save under assets/generated/, and ask once for that folder per session.
| Tool | Asks first? | What it does |
|---|---|---|
generate_svg |
no | Generate a sanitized SVG image from a text prompt. Returns the SVG markup as a string – use write_file separately if you want to save it. |
generate_image |
yes | Generate an image from a text prompt via a local image-generation backend and save it under assets/generated/. Returns the saved file’s path. |
upscale_image |
yes | Enlarge an image four times with the local image-generation backend’s upscaler and save the result under assets/generated/. Returns the saved file’s path. |
generate_3d |
yes | Generate a 3D model of one object (a .glb mesh, untextured) and save it under assets/generated/; takes about half a minute. Returns the saved file’s path. |