Skip to Content
DocsRuntimeTools and Safety

Tools and Safety

Tools are registered with provider-neutral schemas and executed by the runtime. Tools do not call each other directly.

Built-in tools

ToolBehavior
read_fileReads a UTF-8 file inside the workspace root
write_fileCreates parent directories and writes a UTF-8 file
replace_in_fileReplaces one exact unique string in an existing UTF-8 file
update_planUpdates an active implementation-plan step
list_directoryLists directory entries
search_filesFinds paths by substring
grepSearches UTF-8 text files
run_terminalRuns a command from the workspace root with a timeout
web_searchSearches the public web and returns titles, URLs, and snippets when internet access is enabled
web_fetchExtracts readable text from a public HTTP or HTTPS page when internet access is enabled

Filesystem paths are resolved against the workspace root and cannot escape it.

Modes and tool availability

  • Chat mode exposes no workspace tools.
  • Plan mode exposes read_file, list_directory, search_files, and grep.
  • Edit mode exposes every built-in tool. When an active plan exists, it also receives the plan as context and uses update_plan to keep progress accurate.

When internetAccess is enabled, web_search and web_fetch are added in every mode. This lets Chat answer current questions, Plan research current documentation, and Agent use current references while working.

Internet boundaries

Internet access is disabled by default. The web tools:

  • allow only public HTTP and HTTPS URLs
  • reject localhost, private, link-local, and local-network destinations
  • validate every redirect
  • reject binary responses
  • enforce request timeouts and response-size limits
  • return extracted text instead of executing page JavaScript

This is research access, not interactive browser automation. It cannot sign in, click controls, submit forms, or operate JavaScript-heavy applications.

Approval behavior

The runtime emits a tool request before execution. The service layer enforces the selected permission policy. A client must explicitly answer the request when the policy requires it.

Use auto-all only in a workspace where commands and file writes are acceptable without review.

In interactive clients, auto-read does not automatically approve web requests. Network calls still require approval because they contact an external server. auto-all approves them with all other tools. Direct CLI chat retains its documented auto-allow behavior.

Last updated on