# Agent tools reference

> Every tool the Codevre Agent can call, what it does, and which ones need approval.

Last updated: October 17, 2026
Source: https://codevre.com/docs/ide/agent-tools

This page lists every tool the Agent can use. You don't call these yourself. They help you understand what the Agent is doing, and they help other AI assistants reason about Codevre.

## Tool groups

To keep requests small and focused, tools come in groups:

| Group | Unlocked when |
|---|---|
| **Core** | Always |
| **runtime** | The project has a `package.json` or server, the request mentions npm/node/servers/terminal/git, or the Agent asks |
| **devtools** | The request is about UI, layout, the console, errors or screenshots, or the Agent asks |
| **admin** | The request mentions settings, themes, downloads or editor commands, or the Agent asks |

Groups only grow within a chat. The Agent can unlock one with `enable_tools`.

## Approval markers

- 🔴 **risky**: asks under the default "Commands and deletes" setting
- 🟡 **writes**: asks only under "Any change"
- No marker: never asks

## Planning and reference

| Tool | What it does |
|---|---|
| `update_plan` | Keeps a 2–7 step plan with pending, in-progress and completed steps, shown as a checklist |
| `enable_tools` | Unlocks the runtime, devtools or admin group |
| `read_design_guide` | Reads sections of Codevre's design guide (colors, typography, components, charts, Tailwind v4…). Not a project file |
| `read_starter_template` | Reads a Codevre starter (`html`, `esbuild`, `node`, `esbuildNode`, `react`, `reactEsbuild`) without writing anything |
| `scaffold_starter` 🟡 | Writes a starter into the project. Never overwrites existing files. Returns the setup command |

## Files

| Tool | What it does |
|---|---|
| `list_files` | Lists files. Skips `node_modules`, `.git`, `dist`, `build`, `.cache`, `.next`, `.svelte-kit` unless asked. Up to 1,500 entries |
| `read_file` | Reads a file, or a line range, in windows of about 16,000 characters. Includes unsaved editor changes. Binary files return only their size |
| `write_file` 🟡 | Creates or replaces a file, creating folders as needed |
| `append_file` 🟡 | Appends to a file, for writing large files in parts |
| `edit_file` 🟡 | Exact find-and-replace edits, all or nothing. Keeps the file's line endings. Fails with nearby text if a match isn't unique |
| `create_directory` 🟡 | Creates a folder (recursive) |
| `move_path` 🟡 | Renames or moves |
| `delete_path` 🔴 | Deletes a file or folder. Refuses the project root |
| `search_files` | Text or regex search. Skips binaries and files over 1 MB. Up to 200 matches |
| `check_syntax` | `node --check` for `.js`, `.mjs` and `.cjs` files |

Agent edits go through the editor, so **Undo** works on them like on your own edits.

## Runtime (Nodepod)

| Tool | What it does |
|---|---|
| `run_command` 🔴 | Runs a command in the project folder and returns its output (default 60 s timeout, up to 170 s). If it's still running at the timeout it keeps going in the background |
| `run_in_terminal` 🔴 | Runs a command in a visible terminal, e.g. a dev server, and waits for its port. Refuses duplicates, static file servers (use the preview), a second dev server, and more than 5 terminals |
| `wait_for_server` | Waits for a terminal's server to start listening |
| `read_terminal` | Reads the last lines of a terminal |
| `stop_process` | Stops a process or terminal command (like Ctrl+C) and closes its server tabs |
| `list_environment` | Lists terminals, browser tabs, servers and background processes |
| `close_terminal` | Closes a terminal, or all idle ones |
| `close_browser_tab` | Closes a server tab, optionally stopping the server. The localhost:codevre tab can't be closed |
| `stop_preview` | Stops localhost:codevre (the tab stays) |
| `get_nodepod_context` | Live DevTools snapshot of a dev-server preview: DOM, errors, console, network |

## Editor

| Tool | What it does |
|---|---|
| `open_file` | Opens a file in the editor |
| `get_editor_state` | Active file, open tabs and selection |
| `get_problems` | Errors and warnings from the language services (the status bar's Problems) |

## Preview and DevTools

| Tool | What it does |
|---|---|
| `run_preview` | Runs localhost:codevre with an HTML entry (default `index.html`) and reports errors right away. Refuses Node server projects |
| `get_preview_state` | Checks the current preview, VRE or the server tab. Reloads it if files changed |
| `get_vre_context` | VRE's DOM, console, files and errors |
| `take_preview_screenshot` | Screenshot of the visible area, the full page or one element, for the Agent only. Up to 2 per turn |
| `show_preview_screenshot` | Same, but posts the image in the chat for you |
| `save_preview_screenshot` 🟡 | Saves a PNG into the project (default `cover.png`) |

## Admin

| Tool | What it does |
|---|---|
| `list_settings` | Lists settings with their descriptions, types, defaults, current values and scope |
| `get_setting` | Reads one setting |
| `set_setting` 🟡 | Changes a setting. Project keys (`vre.*`, `liveServer.*`, `files.exclude`) always go to `.codevre/settings.json` |
| `run_editor_command` 🟡 | Runs a command-palette command by name |
| `provide_download` | Offers a file for download in the chat (up to 8 MB), with **Download** and **Add to Project** |

## Not available

- There are no Git tools. The Agent can run `git` through `run_command`, but those commands are never authenticated, so it can't push to GitHub.
- There's no web browsing tool. The Agent can only reach the network through commands in Nodepod.
- There's no persistent memory and no project instruction file such as `AGENTS.md`. Each chat starts from the project's files, `package.json`, your editor state and the runtime's current errors.
