All Built-in Tools
Tool Details
read -- Read file contents
read -- Read file contents
- Respects safe path rules — agents cannot read files outside the workspace directory
- Automatically detects binary files and returns a warning instead of garbled content
- Line numbers are included in the output for easy reference
write -- Create or overwrite files
write -- Create or overwrite files
edit tool instead.Parameters:- Automatically creates parent directories if they do not exist
- Respects safe path rules — agents cannot write files outside the workspace
- Overwrites the entire file — there is no append mode
edit -- Search-and-replace edits in files
edit -- Search-and-replace edits in files
- Requires an exact match — this is not a regular expression search
- Fails if
old_stringis not found in the file - Fails if
old_stringappears more than once (ambiguous edit) - Respects safe path rules
notebook_edit -- Cell-level Jupyter notebook editing
notebook_edit -- Cell-level Jupyter notebook editing
.ipynb) files at the cell level. Supports inserting
new cells, replacing cell content, and deleting cells by index. This is safer
than rewriting an entire notebook because it preserves cell metadata and outputs
for unchanged cells.Parameters:- Respects safe path rules — agents cannot edit notebooks outside the workspace
- Preserves cell outputs and metadata for unchanged cells
- Enabled via
builtinTools.notebookEditconfig toggle (default:true)
grep -- Search file contents with patterns
grep -- Search file contents with patterns
grep command-line tool. Returns matching lines with file paths and line
numbers.Parameters:- Uses ripgrep under the hood for fast searching
- Respects
.gitignorerules by default - Safe path rules apply to the search directory
find -- Find files by name pattern
find -- Find files by name pattern
- Uses fd under the hood for fast file discovery
- Respects
.gitignoreand.fdignorerules - Returns full paths relative to the workspace root
ls -- List directory contents
ls -- List directory contents
- Shows dotfiles (files starting with
.) - Results are sorted alphabetically
- Respects safe path rules
apply_patch -- Apply multi-file patches
apply_patch -- Apply multi-file patches
- Add — create a new file with specified content
- Update — modify specific sections of an existing file
- Delete — remove a file
- Move — rename or relocate a file
- Atomic — all patches apply or none do, preventing partial updates
- Enabled when the
editconfig toggle is on - Respects safe path rules for all file operations
exec -- Run shell commands
exec -- Run shell commands
- OS-level sandbox (enabled by default) — on Linux, commands run inside a
bubblewrap namespace where only the
workspace, graph shared directory, and system binaries are visible. On macOS
(dev only),
sandbox-execprovides equivalent file-access restrictions. The agent cannot read other workspaces, home directory secrets, or system files — they simply do not exist inside the sandbox. SetexecSandbox.enabled: "never"to disable (falls back to denylist-only protection). - Blocks dangerous commands like
rm -rf /, filesystem format commands, and piped script execution as an additional defense-in-depth measure - Working directory is validated to prevent execution outside workspace bounds
- Dangerous environment variables (
LD_PRELOAD,DYLD_*, etc.) are blocked - Large outputs are automatically truncated with a notice showing the original size
process -- Manage background processes
process -- Manage background processes
exec tool. Provides
four actions for process lifecycle management.Parameters:- list — show all background process sessions with status and command
- kill — terminate a running process (sends SIGTERM then SIGKILL)
- status — inspect a single process session
- log — read paginated output from a process
- Only manages processes started by the agent via
execwithbackground: true - Each background process gets a unique session ID returned at creation time
web_search -- Search the web
web_search -- Search the web
- Results are cached for 15 minutes by default to reduce API calls
- When
deepFetchis greater than 0, the tool automatically fetches full page content for the top results, saving separateweb_fetchcalls - If the primary provider fails, the tool automatically tries fallback providers
- See Web Tools Guide for provider setup details
web_fetch -- Fetch and read web pages
web_fetch -- Fetch and read web pages
- Uses SSRF (Server-Side Request Forgery) validation to prevent access to
internal network addresses — agents cannot fetch
localhostor private IPs - Uses Chrome TLS fingerprinting to avoid bot detection on most websites
- Results are cached to reduce duplicate fetches
- JSON responses are automatically pretty-printed
browser -- Control a headless browser
browser -- Control a headless browser
- navigate — go to a URL
- screenshot — capture the current page as an image
- snapshot — get the accessibility tree (a structured representation of page elements)
- act — interact with the page (click, type, fill, press keys, hover, scroll, select)
- start / stop — launch or close the browser
- tabs / open / close / focus — manage browser tabs
- console — read browser console logs
- pdf — save the current page as a PDF
- upload — upload files to file input elements
- dialog — handle browser dialogs (alerts, confirms, prompts)
- profiles — list available browser profiles
- status — check if the browser is running
- URLs are validated through the SSRF guard before navigation — agents cannot browse to internal network addresses
- The browser runs headless (no visible window) on the server
- Screenshots are returned as images that the agent can analyze
- See Browser Guide for the complete action reference with all parameters
Context Tools
Context tools help your agent search and recall information from the current conversation session. In the default DAG (LCD) mode the available tools are three in-session expansion tools —ctx_search, ctx_inspect, and ctx_expand — that recover detail the summary hierarchy compressed away within the current conversation. They are active only in DAG mode (contextEngine.version defaults to "dag"), never-export, and distinct from cross-session recall (memory_search, session_search). In the opt-in pipeline mode the available tool is session_search instead. See Context expansion tools and Compaction for how the engines work.
ctx_expand performs a bounded in-process multi-hop walk: starting from a summary, it descends the summary-parent hierarchy (condensed summary -> child summaries -> leaf summaries -> the underlying messages) and — when the knowledge graph is populated — fuses bounded KG hops, returning a ranked, cited evidence bundle. The walk is depth-capped per model tier (nano 1 / small 2 / mid 3 / frontier 4 hops), token-capped (maxExpandTokens), and node-visit capped, so it can never run away on a deep or cyclic hierarchy. It is read-only, runs inside the per-conversation single-flight serializer, secret-scrubs and taint-wraps every recovered region on re-entry, and spills oversized output to a session file. It is not a sub-agent — the walk is deterministic and in-process. When the knowledge graph is empty (the default), the walk degrades cleanly to summary-parent edges only.
Availability
session_search -- Search session history
session_search -- Search session history
- Search results are protected from observation masking, so recovered content remains visible
- This tool is registered as a protected tool name — its results survive compaction
ctx_expand -- Multi-hop recover a compressed region (DAG mode)
ctx_expand -- Multi-hop recover a compressed region (DAG mode)
ctx_search / ctx_inspect), it descends the summary-parent hierarchy — a condensed summary’s child summaries, then their leaf summaries, then the underlying messages — and returns a ranked, cited evidence bundle. Available in DAG mode only.Parameters:- Read-only and runs inside the per-conversation single-flight serializer, so it never interleaves with a concurrent compaction write.
- Every recovered region is secret-scrubbed and taint-wrapped on re-entry (untrusted content), and large bundles spill to a session file you can read with the file tools.
- The knowledge-graph (KG) hop is optional: when the KG is empty or disabled (the default), the walk degrades cleanly to summary-parent edges only — the KG is never a precondition.
- It is not a sub-agent: the walk is deterministic and in-process. A drifted (missing) message id is skipped, never fatal — the result reports a partial-coverage count.
Terminal Driver
Nine tools for driving interactive terminal sessions. Each tool requires an operator-configured allowlist (allowEntries) — without a
matching allowlist entry the tool rejects. Designed for use with the
bubblewrap sandbox on Linux. See exec sandbox for
the bubblewrap sandbox that terminal tools require.
terminal_session_status is a registered stub — its schema is final but the
execute handler immediately returns [not_implemented]. All other eight
terminal tools are fully implemented.