Skip to content

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.

ToolPurposeNotes
read_fileRead file contentsSupports line ranges via the ranges parameter. Files larger than the model’s context window cannot be read directly. Respects .kodikignore.
edit_fileEdit a single fileUses search-and-replace. Checks linter diagnostics after editing.
edit_filesEdit multiple files in one callAtomic edits across multiple files. Also checks linter diagnostics.
edit_notebookEdit a Jupyter notebookSupports insert, edit, delete operations on code and markdown cells. Languages: Python, JS, TS, R, Julia, SQL.
shellRun a terminal commandThe block_until_ms: 0 parameter launches the command in the background and immediately returns a terminal_id for polling via command_status.
command_statusPoll a background processTakes the terminal_id returned by shell. Used to retrieve incremental output from dev servers, watchers, and other long-running processes.
globFind files by patternSupports patterns like **/*.ts.
rgFull-text search (ripgrep)Regex search with ripgrep options. Respects .kodikignore.
codebase_searchSemantic search over the codebaseUses the local index — see Indexing.
read_lintsRead linter diagnosticsReturns errors and warnings from VS Code for one or more files (or the whole workspace).
web_fetchFetch URL contentsHTTPS only (plain HTTP allowed only for localhost). Returns the page as Markdown. 30-second timeout.
web_searchSearch the webKodik provider only. Returns ranked results (title, URL, snippet) and usually a synthesized answer. Billed per search from your credit balance.
previewDrive the integrated browserAvailable 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_writeManage a task listCreates and updates task items for multi-step sessions.
memorySave notes to memoryWrites notes to workspace or global memory. See Memory.
sub_agentDelegate a subtask to a subagentLaunches a child agent with its own context. See Subagents.
MCP toolsAny tools from MCP serversDepend on connected servers. See MCP.

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}])

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 background
terminal_id = shell("npm run dev", block_until_ms=0)
# Retrieve logs
command_status(terminal_id=terminal_id)

Uses a vector index that is built automatically. Search is meaning-based rather than keyword-based. Requires the index to exist — see Indexing.

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.

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.

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.

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.