Repository: https://github.com/different-ai/opencode-browser
Package version: 4.6.1 · Extension version: 4.6.0
Environment: Windows 11, Chrome (standard, not Beta/Dev), Chrome 13x
Summary
After npx @different-ai/opencode-browser install and loading the unpacked extension,
the badge shows ON for only ~3 seconds and then drops. browser_status reports
hostConnected flipping to false, and every tool call (browser_get_tabs,
browser_navigate, …) times out ("Timed out waiting for broker response").
The connection only establishes; it never persists.
Root cause
extension/background.js opens the native-messaging port with
chrome.runtime.connectNative(...) inside the MV3 service worker. Chrome
terminates idle MV3 service workers (observed here ~3s after the worker goes idle).
When the worker is killed:
- Chrome closes the
connectNative port,
- the native host receives EOF on stdin and exits,
- the broker's
hostConnected becomes false,
- the badge flips to OFF and tool calls time out.
Outgoing keepalives (extension → host ping every 10s) and broker → host pings
every 2s cannot revive a terminated worker — they only wake a suspended one.
The native host itself is fine: launching host-wrapper.cmd manually keeps
hostConnected:true indefinitely, proving the broker/native-host/host-manifest
wiring is correct and the only failure is the worker lifetime.
Evidence
- Manual launch:
host-wrapper.cmd → native host stays connected (hostConnected:true for minutes).
- Chrome-launched host: exits within ~3s;
hostConnected → false; no native-host
process remains.
- Setting the Chrome policy
NativeHostsExecutablesLaunchDirectly=Disabled fixed the
.cmd launch (direct-launch mode in Chrome 113+ cannot start .cmd hosts), but did
not fix persistence — the worker is still terminated.
Repository: https://github.com/different-ai/opencode-browser
Package version: 4.6.1 · Extension version: 4.6.0
Environment: Windows 11, Chrome (standard, not Beta/Dev), Chrome 13x
Summary
After
npx @different-ai/opencode-browser installand loading the unpacked extension,the badge shows
ONfor only ~3 seconds and then drops.browser_statusreportshostConnectedflipping tofalse, and every tool call (browser_get_tabs,browser_navigate, …) times out ("Timed out waiting for broker response").The connection only establishes; it never persists.
Root cause
extension/background.jsopens the native-messaging port withchrome.runtime.connectNative(...)inside the MV3 service worker. Chrometerminates idle MV3 service workers (observed here ~3s after the worker goes idle).
When the worker is killed:
connectNativeport,hostConnectedbecomesfalse,Outgoing keepalives (extension → host
pingevery 10s) and broker → host pingsevery 2s cannot revive a terminated worker — they only wake a suspended one.
The native host itself is fine: launching
host-wrapper.cmdmanually keepshostConnected:trueindefinitely, proving the broker/native-host/host-manifestwiring is correct and the only failure is the worker lifetime.
Evidence
host-wrapper.cmd→ native host stays connected (hostConnected:truefor minutes).hostConnected→false; no native-hostprocess remains.
NativeHostsExecutablesLaunchDirectly=Disabledfixed the.cmdlaunch (direct-launch mode in Chrome 113+ cannot start.cmdhosts), but didnot fix persistence — the worker is still terminated.