Browser & Computer Use plugins silently unusable with a custom model_provider (no tool_search / dynamic tool discovery)

Open 💬 1 comment Opened Jul 9, 2026 by jay-tau

Summary

Codex supports custom model_provider endpoints (OpenAI-compatible /responses), but the Browser and Computer Use plugins silently do not work when a session uses one. Their required runtime tool (mcp__node_repl__js) is never exposed to the model. Switching the same machine/plugins to the official backend makes it work immediately. The differentiator is tool_search (dynamic tool discovery), which is not offered on custom providers.

Environment

  • Codex Desktop build 26.623.141536 (CLI 0.142.5), Windows 11
  • Plugins enabled: browser@openai-bundled, computer-use@openai-bundled
  • Model: gpt-5.5
  • Reproduced with a custom OpenAI-compatible model_provider (a local /responses endpoint). Not specific to any particular endpoint.

What works (so this is not an install/packaging problem)

  • [mcp_servers.node_repl] is registered; node_repl.exe starts cleanly (startup_complete=true, tool_count=3).
  • Native pipes are created (codex-computer-use-*, codex-browser-use-*); the browser-client.mjs SHA is in the node_repl trust allowlist.
  • Both plugin skills state that automation must run through mcp__node_repl__js.

Repro

  1. Configure a custom model_provider (any OpenAI-compatible /responses endpoint) and select it.
  2. Enable the Browser and/or Computer Use plugins; confirm node_repl starts (serves 3 tools).
  3. Ask the model to list its available tools.

Observed: the model's tool list contains no mcp__node_repl__js and no tool_search tool, so the runtime tool is unreachable and the plugins cannot control the in-app browser. [features].js_repl also resets to false on every launch and is not persistable via config.

Expected: the plugins' runtime tool is reachable, as it is on the official backend.

Official backend (same machine, same plugins) — works

  • tool_search.tool_search_tool is present; mcp__node_repl__js becomes discoverable via tool_search and the in-app browser can be driven end-to-end.

Apparent root cause (from investigation)

mcp__node_repl__js is a dynamic tool surfaced via tool_search, not a static tool. tool_search appears to be gated by a backend-delivered feature flag (anthropic_tool_search_enabled) tied to the official backend, so sessions on a custom model_provider never receive it — and therefore can never discover the plugins' runtime tool.

Request (any one of)

  1. Enable dynamic tool discovery (tool_search) for custom model_provider endpoints, or
  2. Provide a config option to expose MCP/plugin tools statically (bypassing tool_search), so Browser/Computer Use work without the dynamic-discovery layer, or
  3. Document that Browser & Computer Use require the official backend.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗