Tools of the model
The model calls these tools with your permissions; Tatu has no per-tool permission gates.
| Tool | What it does | Main parameters | See |
|---|---|---|---|
bash |
Run a shell command in the project; each call starts a fresh shell with no stdin. Background execution is available only in interactive sessions. | Required command; optional timeout in seconds, run_in_background when available |
Background tasks |
read |
Read text or attach an image; long text can be read in ranges. A path that does not exist is answered with close names or with what the nearest folder holds. | Required path; optional offset (1-based line), limit |
Images |
write |
Create a file and parent folders, or overwrite a file already read and unchanged since. | Required path, content (file_text is accepted for it) |
Security and trust |
edit |
Replace exact text in a file already read; all replacements must match and not overlap. | Required path, edits; each edit has oldText, newText, optional replaceAll. An oldText and newText beside edits count as one more edit |
Security and trust |
grep |
Search file contents with a Go regular expression or literal text; respect .gitignore and skip binary files. |
Required pattern; optional path, glob, ignoreCase, literal, context, limit |
Your first session |
find |
Find paths by glob, respecting .gitignore. |
Required pattern; optional path, limit |
Your first session |
web_search |
Search third-party services for titles, URLs and snippets; queries leave your computer. | Required query; optional limit (default 8, maximum 20) |
The web |
web_fetch |
Read a page as Markdown; save large pages locally or ask a small model a question about the page. Private addresses are never sent to third-party readers. | Required url; optional prompt |
The web |
agent |
Give a subagent a task and receive its report; it has its own conversation and cannot start another subagent or ask you questions. | Required description, prompt; optional type, model (fast, balanced, main), step |
Subagents |
ask_user |
Ask you 1–4 multiple-choice questions, with 2–5 options each and a write-your-own-answer row; interactive sessions only. | Required questions; each has question, options with label; optional header, multiSelect, option description and preview |
Your first session |
preview |
Share a local web app with the Tatu app or a paired remote terminal: start runs the dev server as a background task, waits for its port, checks the HTTP response at / and publishes it; publish shares a server that already runs (it fails when nothing listens); revoke and list. Interactive main agent only, not subagents. Publication is explicit; starting a server separately grants no access. It does not validate rendering or monitor server health. |
Required action (start, publish, revoke, list); start requires command, optional cwd, port, extra_ports, name; publish requires port, optional extra_ports (up to three other servers the page calls), name; revoke requires id (publication ID or all); list takes no other parameters |
The app |
plan_write |
Replace the plan with a goal and 2–15 steps; keep the status of retained step IDs. | Required goal, steps; step id, title, with optional detail, files, dependsOn, verify, parallel, parallelWhy, status; optional askApproval (ask you to approve the plan, as /plan does) and approval (the words of that question) |
Planning |
plan_update |
Change step statuses in order, enforcing dependencies and parallel-work rules. | Required updates; each has id, status (pending, in_progress, completed, cancelled), optional note |
Planning |
task_output |
Inspect a background task and the end of its output, optionally waiting for it or for a line of its output; interactive sessions only. | Required task_id; optional block, timeout (default 30 seconds, maximum 600), until (with block: a regular expression; return as soon as the output matches, such as a server’s ready line) |
Background tasks |
task_stop |
Stop a background task and its child processes; interactive sessions only. | Required task_id |
Background tasks |
codemode |
Run a JavaScript program in an isolated sandbox that calls the other tools (tools.<name>(args)), so many calls and their intermediate results cost one step; only what the program prints comes back. Calls go through your hooks like the model’s own, and a program can keep small values between runs with store and load. Turn it off with codemode.enabled. |
Required code; an optional first line // @options: {"max_output_tokens": 10000, "timeout_ms": 300000} |
Programs |
mcp__<server>__<tool> |
A tool of an MCP server you configured; one entry per tool. | The server’s own parameters | MCP servers |