Built-in tools available to agents beyond the standard file and shell operations.
Slim only intercepts apply_patch before the native tool runs. It rewrites recoverable stale patches, canonizes safe tolerant matches against the real file when unicode/trim drift is the only mismatch, keeps the authored new_lines bytes intact, preserves the existing file EOL/final-newline state for updates, validates malformed patches strictly before helper execution, uses a conservative bounded LCS fallback, accumulates helper state when the same path appears in multiple Update File hunks, blocks apply_patch before native execution if any patch path falls outside the allowed root/worktree, and fails on ambiguity instead of guessing. It does not rewrite edit or write inputs.
Launch agents asynchronously and collect results later. This is how the Orchestrator runs Explorer, Librarian, and other sub-agents in parallel without blocking.
| Tool | Description |
|---|---|
background_task |
Launch an agent in a new session. sync=true blocks until complete; sync=false returns a task ID immediately |
background_output |
Fetch the result of a background task by ID |
background_cancel |
Abort a running background task |
Background tasks integrate with Multiplexer Integration — when multiplexer support is enabled, each background task spawns a pane so you can watch it live.
Fetch remote pages with content extraction tuned for docs/static sites.
| Tool | Description |
|---|---|
webfetch |
Fetch a URL, optionally prefer llms.txt, extract main content from HTML, include metadata, and optionally save binary responses |
webfetch blocks cross-origin redirects unless the requested URL or derived permission patterns explicitly allow them, and it can fall back to the raw fetched content when secondary-model summarization is unavailable.
Language Server Protocol integration for code intelligence across 30+ languages. OpenCode ships pre-configured LSP servers for TypeScript, Python, Rust, Go, and more.
| Tool | Description |
|---|---|
lsp_goto_definition |
Jump to a symbol's definition |
lsp_find_references |
Find all usages of a symbol across the workspace |
lsp_diagnostics |
Get errors and warnings from the language server |
lsp_rename |
Rename a symbol across all files atomically |
See the official OpenCode docs for the full list of built-in LSP servers and their requirements.
Fast, structural code search and refactoring — more powerful than plain text grep.
| Tool | Description |
|---|---|
grep |
Fast content search using ripgrep |
ast_grep_search |
AST-aware code pattern matching across 25 languages |
ast_grep_replace |
AST-aware code refactoring with dry-run support |
ast_grep understands code structure, so it can find patterns like "all arrow functions that return a JSX element" rather than relying on exact text matching.
OpenCode automatically formats files after they are written or edited, using language-specific formatters. No manual step needed.
Includes Prettier, Biome, gofmt, rustfmt, ruff, and 20+ others.
See the official OpenCode docs for the complete list.
Auto-continue the orchestrator when it stops with incomplete todos. Opt-in — no automatic behavior unless enabled.
| Tool / Command | Description |
|---|---|
auto_continue |
Toggle auto-continuation. Call with { enabled: true } to activate, { enabled: false } to disable |
/auto-continue |
Slash command shortcut. Accepts on, off, or toggles with no argument |
How it works:
Safety gates (all must pass before continuation):
Configuration in oh-my-opencode-slim.json:
{
"todoContinuation": {
"maxContinuations": 5, // Max consecutive auto-continuations (1–50)
"cooldownMs": 3000, // Delay before each continuation (0–30000)
"autoEnable": false, // Auto-enable when session has enough todos
"autoEnableThreshold": 4 // Number of todos to trigger auto-enable
}
}
See Configuration for the full option reference.