Skip to content

Tool reference

/tools lists what is available in the current session — the list changes with the mode and with which capabilities you have turned on.

Read a file. Returns numbered lines for text; an aligned table for CSV/TSV; extracted text for PDF, Word and Excel; an attachment for images.

Argument Required
path yes Relative to the workspace root.
offset no First line to return.
limit no How many lines.

Capped at max_file_bytes. No approval.

List directory entries, gitignore-aware. depth > 1 recurses. No approval.

Find files by glob, e.g. **/*.rs. Gitignore-aware. No approval.

Regex over file contents. Returns path:line:text. When the pattern is really a symbol lookup, the result comes back with the codegraph call to make instead. No approval.

Query the symbol graph. No approval.

query What it returns
overview The project’s modules and what each defines.
symbol Where a name is defined, and every use of it.
file What a file defines, and who depends on it.

Create or overwrite a file. Parent directories are created. Shows a unified diff before and after. Approval required.

Replace an exact substring. replace_all for every occurrence. Shows a unified diff before and after. Approval required.

Run a shell command in the workspace root. Returns exit code, stdout and stderr. Bounded by command_timeout_ms. Approval required, and re-confirmed for destructive commands even under auto-approve.

Drive a debug adapter. One session at a time.

Operation Approval
list_adapters, status, breakpoints, output none
stack_trace, scopes, variables, evaluate none — reading a stopped program is a read
set_breakpoint, set_function_breakpoint none
launch, attach, continue, step_over, step_in, step_out, pause, terminate required

set_breakpoint takes a condition, a hit condition (>5, %10) counted inside the adapter, or a log_message that prints instead of stopping. See Debugger.

The plan drawn above the input. Every result echoes the merged list back and names the current step. No approval.

Hand a read-only investigation to a subagent with its own context window. Only the written report reaches your transcript. Bounded by subagent_max_steps and max_subagent_depth. No approval.

Ask you a question mid-task. Opens a centred dialog and takes the answer there. In headless mode the question is reported and the turn proceeds with no answer. No approval.

Record a durable project fact, or forget one that turned out wrong. Writes to .koda/memory.md. No approval.

Read a project skill by name. No approval.

Write a procedure koda worked out as a skill. With role, a delegatable agent. Approval required. Refuses a one-liner (that is a fact), refuses to overwrite an existing name implicitly, and refuses a second skill claiming the same trigger.

Create, update or delete a role agent. Saved as a skill file. Approval required.

All three are off by default.

SearXNG or DuckDuckGo. Returns titles, URLs and snippets. No approval.

GET a URL and read it as text. HTML stripped, capped at max_tool_output_bytes. http and https only. No approval.

Open a URL in a real Chromium and read it after JavaScript has run. Takes a url and an optional wait_for CSS selector. No approval.

Content from all three is untrusted data, not instructions.

A [[tools]] entry in the config becomes a tool with the name and description you give it. Offered only to the top-level agent, never in plan mode, and run through the same approval and shell path as run_command. See Custom tools.