Skip to content

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

Closed as not planned

Description

@cycocyco

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)

Activity

  1. github-actions commented on Aug 1, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

  2. github-actions commented on Oct 1, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions