Tools
Below is the complete list of tools the Kodik agent can use. Which tools are available depends on the current mode. File access is governed by .kodikignore rules.
Tool reference
Section titled “Tool reference”| Tool | Purpose | Notes |
|---|---|---|
read_file | Read file contents | Supports line ranges via the ranges parameter. Files larger than the model’s context window cannot be read directly. Respects .kodikignore. |
edit_file | Edit a single file | Uses search-and-replace. Checks linter diagnostics after editing. |
edit_files | Edit multiple files in one call | Atomic edits across multiple files. Also checks linter diagnostics. |
edit_notebook | Edit a Jupyter notebook | Supports insert, edit, delete operations on code and markdown cells. Languages: Python, JS, TS, R, Julia, SQL. |
shell | Run a terminal command | The block_until_ms: 0 parameter launches the command in the background and immediately returns a terminal_id for polling via command_status. |
command_status | Poll a background process | Takes the terminal_id returned by shell. Used to retrieve incremental output from dev servers, watchers, and other long-running processes. |
glob | Find files by pattern | Supports patterns like **/*.ts. |
rg | Full-text search (ripgrep) | Regex search with ripgrep options. Respects .kodikignore. |
codebase_search | Semantic search over the codebase | Uses the local index — see Indexing. |
read_lints | Read linter diagnostics | Returns errors and warnings from VS Code for one or more files (or the whole workspace). |
web_fetch | Fetch URL contents | HTTPS only (plain HTTP allowed only for localhost). Returns the page as Markdown. 30-second timeout. |
web_search | Search the web | Kodik provider only. Returns ranked results (title, URL, snippet) and usually a synthesized answer. Billed per search from your credit balance. |
preview | Drive the integrated browser | Available in Code and Debug when kodik.preview.enabled is on. Opens pages, can launch a dev server, screenshots, reads console output, inspects, resizes, navigates, and interacts with the page. |
todo_write | Manage a task list | Creates and updates task items for multi-step sessions. |
memory | Save notes to memory | Writes notes to workspace or global memory. See Memory. |
sub_agent | Delegate a subtask to a subagent | Launches a child agent with its own context. See Subagents. |
| MCP tools | Any tools from MCP servers | Depend on connected servers. See MCP. |
Details
Section titled “Details”read_file
Section titled “read_file”The ranges parameter accepts an array of {start_line, end_line} objects and lets you read only the sections you need from a large file. If the file exceeds the size limit (derived from the model’s context window), read_file returns an informational message recommending rg or ranges instead.
read_file("src/server.ts", ranges=[{start_line: 1, end_line: 50}])shell and command_status
Section titled “shell and command_status”For long-running processes (dev servers, watchers, log streams), launch with block_until_ms: 0 — it returns a terminal_id immediately. Use command_status with that ID to poll for new output without restarting the process.
# Start a dev server in the backgroundterminal_id = shell("npm run dev", block_until_ms=0)
# Retrieve logscommand_status(terminal_id=terminal_id)codebase_search
Section titled “codebase_search”Uses a vector index that is built automatically. Search is meaning-based rather than keyword-based. Requires the index to exist — see Indexing.
web_fetch
Section titled “web_fetch”Opens a headless browser, loads the page, and returns its content as Markdown. Output is truncated at 60 KB. Plain HTTP is blocked except for localhost.
web_search
Section titled “web_search”Lets the agent discover current information it doesn’t have a link for: latest library versions and APIs, unfamiliar error messages, breaking changes, official documentation pages. Searches run server-side through the Kodik backend, so no search-provider API keys live on your machine, and each successful search is billed as a flat amount against the same credit balance as model usage — failed searches are never charged. The agent composes the two web tools: search to discover, then web_fetch the most promising result to read it in full.
Available only on the Kodik provider. On Ollama and custom/bring-your-own-key providers the tool is not offered, since searches there can’t be served or billed. Approval has its own auto-approve toggle (webSearch) — see Auto-Approve.
preview
Section titled “preview”Drives the same Integrated Browser surface you see in Kodik. The agent can start a preview at a URL, optionally run a dev-server command first and wait for the URL to respond, then stop the preview and the server it started.
Use preview for browser-rendered work. It can take screenshots, read the console, resize to mobile/tablet/desktop breakpoints, navigate and reload, inspect an element’s HTML/styles/box, read an accessibility snapshot, click/type/hover/drag, handle dialogs, evaluate page expressions, and run small Playwright snippets when higher-level actions are not enough.
Opening arbitrary URLs, launching dev servers, interacting with pages, and running page scripts follow your auto-approval settings. Screenshots captured by the agent appear inline in the chat so you can see the same evidence the agent used.
.kodikignore
Section titled “.kodikignore”Tools including read_file, rg, and shell check .kodikignore before accessing files. Files matching patterns in .kodikignore are not accessible to the agent. See Ignore files.