anomalyco / anomalyco/opencode

Add websearch provider selection to settings UI / config instead of only env var

Open
#40,028 1 comment 1 reaction 1 assignee View on GitHub

@Brendonovich is already working on this.

Since Aug 1, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Feature Request

The websearch tool currently supports two hosted providers: Exa (mcp.exa.ai) and Parallel (search.parallel.ai). The provider can only be pinned via the OPENCODE_WEBSEARCH_PROVIDER=exa|parallel environment variable; otherwise it is chosen randomly per session (via a session-ID checksum).

Problem
  1. There is no option in the desktop GUI settings (Settings > Appearance has themes/fonts/shell/keybinds, no websearch section).
  2. There is no field in opencode.json either.
  3. Because of the random default, users can get noticeably worse results: in my testing, Exa consistently returned fresher and cleaner results (same-day news, official sources, compact highlights), while Parallel returned stale results and noisy raw-page dumps.
  4. On Windows, setting a user env var also requires a full sign-out/restart to take effect for GUI-launched apps, which is not a great onboarding experience for a simple preference.
Suggestion

Add a first-class way to select the websearch provider, for example:

  • A dropdown in the desktop settings UI (e.g. Settings > Tools / Web Search: auto (random) / exa / parallel), and/or
  • A config option in opencode.json, e.g.:
{
  "websearch": { "provider": "exa" }
}

The config-based approach would also help users pin the provider across machines. A "auto" default would preserve current behavior.

Environment
  • opencode desktop 1.18.10 (Windows 11, Electron build)
  • Config layer currently only reads OPENCODE_WEBSEARCH_PROVIDER / EXA_API_KEY / PARALLEL_API_KEY from process.env (defaultConfigLayer in the websearch tool module)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.