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. Edited notebooks follow the file-change display setting; open notebook editors are refreshed and saved after tool edits, and dirty notebooks must be saved or discarded first. |
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. |
browser | Drive the integrated browser | Available in Code and Debug when the browser tool is enabled in Agents settings. Opens pages, can reuse open browser tabs, launch a dev server, take screenshots, read and clear bounded console output, inspect, resize, navigate, and interact 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.
browser
Section titled “browser”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 browser for browser-rendered work. It can list existing browser tabs and focus the tab you are viewing, take screenshots, read and clear the bounded console buffer, resize to mobile/tablet/desktop breakpoints, navigate/reload/back/forward, inspect an element’s HTML/styles/box, read an accessibility snapshot, click/type/hover/drag, and evaluate page expressions 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; click a screenshot thumbnail to open the full image in an editor tab.
.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.