|
Some checks failed
CI / check (push) Has been cancelled
Resolve web-search credentials from a Claude Code OAuth session (auth.json) when no apiKey is configured, refreshing near-expiry tokens via Anthropic's OAuth endpoint and persisting them back. Requests are sent with Claude Code's request identity (beta flags, user-agent, system prompt) so OAuth validation accepts them, matching opencode-claude-auth's existing approach for chat. |
||
|---|---|---|
| .github/workflows | ||
| src | ||
| .gitignore | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| AGENTS.md | ||
| bun.lock | ||
| LICENSE.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
opencode-websearch
Native web search for OpenCode, powered by your model's built-in search capability. No extra API keys or search services required. If you're on a supported provider, it works without any extra setup.
Inspired by Claude Code's WebSearch tool.
Example
Asking OpenCode about the latest PostgreSQL version:
What's the latest Postgres version?
⚙
web-search[query=latest PostgreSQL release version April 2026]As of now (April 2026), the latest PostgreSQL community release is PostgreSQL 18.3.
If you mean the latest major version line, that is PostgreSQL 18.Sources:
Supported providers
| Provider | What you need |
|---|---|
| Anthropic | An Anthropic provider/model in OpenCode with built-in web search support |
| Moonshot (Kimi) | A Moonshot API key configured in OpenCode |
| OpenAI / ChatGPT | OpenAI configured in OpenCode (API key or ChatGPT connected) |
| GitHub Copilot | GitHub Copilot connected in OpenCode |
Model-level web search support depends on the provider and model you use.
Install
Add the plugin to your opencode.json and OpenCode will install it automatically on startup.
{
"plugin": ["opencode-websearch"]
}
Configuration (optional)
By default the plugin uses your active model. The optional "websearch" flag lets you pin or provide a fallback model for search:
"always": always use this model for web search"auto": use this model as fallback when your active provider is not supported
Selection order
- A model tagged
"websearch": "always" - Your active model (if on a supported provider)
- A model tagged
"websearch": "auto" - Otherwise, the tool returns an error
Example
{
"provider": {
"openai": {
"models": {
"gpt-5.2": {
"options": {
"websearch": "always"
}
}
}
}
}
}
Development
Local development
Clone the repo and symlink the source entry into your OpenCode plugin directory:
git clone https://github.com/emilsvennesson/opencode-websearch ~/.config/opencode/opencode-websearch
cd ~/.config/opencode/opencode-websearch
bun install
mkdir -p ~/.config/opencode/plugin
ln -sf ~/.config/opencode/opencode-websearch/src/index.ts ~/.config/opencode/plugin/websearch.ts
OpenCode loads the plugin directly from source at startup.
When using this symlink setup, remove
"opencode-websearch"from thepluginarray inopencode.jsonto avoid loading it twice.
Commands
bun install
bun run format
bun run format:check
bun run lint
bun run lint:fix
bun run typecheck
bun run check
bun run build
License
MIT