You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
config: add a switch to disable built-in local runtime discovery (vLLM/LM Studio/Ollama) #58094
Active plugins: local plugin at ~/pi-plan-review/packages/opencode
Motivation
I develop a Django app published on host port 8000 (the vLLM default). Every 30s
OpenCode probes it: GET /health, then GET /v1/models, with User-Agent opencode/latest/2.1.2/cli. Evidence from the app's logs:
or a single global flag such as "localDiscovery": false. Also consider probing only
when the endpoint looks like the expected runtime (e.g. check /v1/models response shape
before assuming a match) rather than on a fixed interval regardless of failures.
Workarounds
Move the app to a different host port (works, but the user shouldn't have to).
No config-based option found in the V2 docs or schema.
Thanks for the detailed report and the log evidence! I think this is a duplicate of #45172, which reports the same thing: OpenCode probes whatever is listening on 127.0.0.1:8000 every 30 seconds through its built-in vLLM discovery and keeps going even when the requests fail.
You can turn discovery off today: put a - in front of a plugin ID in plugins to remove that built-in plugin. This should stop all three local probes (vLLM, LM Studio and Ollama). Restart the background service afterwards.
If you only want to silence port 8000, "-opencode.provider.vllm" on its own is enough. Your other suggestions (checking that the response looks like the expected runtime, backing off after failures, documenting the switch) would be useful additions on #45172.
Possible duplicates and related issues, ordered by likelihood:
Thanks — can confirm "-opencode.provider.vllm" in plugins stops the probes
(no more requests in the logs after a service restart).
That said, I'd like to keep this open for a first-class setting rather than relying
on registry negation:
Most users will never connect the log noise to this feature; the symptom looks
like a bug in whatever app owns the port (Django's DisallowedHost, 404 spam, etc).
Port 8000 is the default for FastAPI/uvicorn, so a large slice of Python
developers hit this by default, on a loopback interface, with B3/Traceparent
headers injected into third-party apps.
Discovery is undocumented in the config schema — the -opencode.provider.vllm
entry is a plugin-list negation, not a provider setting, so it's not discoverable
and easy to lose track of.
Something like providers.vllm.discovery: false (per runtime) or a global localDiscovery: false would give it a proper, documented off switch. A
"don't re-probe after N consecutive failures" backoff would also reduce the
footprint for everyone, including users who keep discovery on.
Adjust to taste and post it as a comment. Also worth saying on the issue that the workaround works but shouldn't close it — if they close it as "answered", reply asking for the config-level switch to be tracked. Happy to refine the wording if you want it shorter or firmer.
We haven't heard back, so I'm closing this as a duplicate of #45172. Both come from the built-in local provider discovery, which probes 127.0.0.1:8000 every 30 seconds and doesn't back off. Please follow #45172 for updates. Your suggestions (a documented switch, checking that the response looks like the expected runtime, backing off after failures) would be welcome there.
In the meantime, you can turn discovery off with "plugins": ["-opencode.provider.vllm", "-opencode.provider.lmstudio", "-opencode.provider.ollama"] in your config, then restart the background service. If your problem turns out to be different, reply here and we can reopen. Thanks for the detailed report!
Closing this as a duplicate of #45172. I read the thread, and I get that a workaround isn't the same as a real setting, but the actual problem is that we probe ports we have no business probing, and that is what's being fixed over there. Until then, "plugins": ["-opencode.provider.vllm", "-opencode.provider.lmstudio", "-opencode.provider.ollama"] plus a service restart turns it off.
Activity
opencode-agent commentedon Oct 22, 2026
Thanks for the detailed report and the log evidence! I think this is a duplicate of #45172, which reports the same thing: OpenCode probes whatever is listening on
127.0.0.1:8000every 30 seconds through its built-in vLLM discovery and keeps going even when the requests fail.You can turn discovery off today: put a
-in front of a plugin ID inpluginsto remove that built-in plugin. This should stop all three local probes (vLLM, LM Studio and Ollama). Restart the background service afterwards.If you only want to silence port 8000,
"-opencode.provider.vllm"on its own is enough. Your other suggestions (checking that the response looks like the expected runtime, backing off after failures, documenting the switch) would be useful additions on #45172.Possible duplicates and related issues, ordered by likelihood:
localhost:8000every 30s with no backoff; the workaround above comes from a comment thereowned_byis notvllm); related codeThe bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different.
Shiv-61 commentedon Oct 22, 2026
Hey @philmehew, I would like to work on this. Can you assign it to me?
philmehew commentedon Oct 22, 2026
@Shiv-61 prob worth detailing your plan to stop the bots making all the decisions..lol.
philmehew commentedon Oct 22, 2026
Thanks — can confirm
"-opencode.provider.vllm"inpluginsstops the probes(no more requests in the logs after a service restart).
That said, I'd like to keep this open for a first-class setting rather than relying
on registry negation:
like a bug in whatever app owns the port (Django's DisallowedHost, 404 spam, etc).
developers hit this by default, on a loopback interface, with B3/Traceparent
headers injected into third-party apps.
-opencode.provider.vllmentry is a plugin-list negation, not a provider setting, so it's not discoverable
and easy to lose track of.
Something like
providers.vllm.discovery: false(per runtime) or a globallocalDiscovery: falsewould give it a proper, documented off switch. A"don't re-probe after N consecutive failures" backoff would also reduce the
footprint for everyone, including users who keep discovery on.
Adjust to taste and post it as a comment. Also worth saying on the issue that the workaround works but shouldn't close it — if they close it as "answered", reply asking for the config-level switch to be tracked. Happy to refine the wording if you want it shorter or firmer.
Shiv-61 commentedon Oct 22, 2026
Yeah @philmehew. According to me
Locate discovery logic: Find where vLLM, LM Studio, and Ollama polling is implemented.
Add configuration option:
{
"localDiscovery": false
}
Update discovery logic: Skip initial discovery and periodic polling when localDiscovery is false.
Maintain backward compatibility: Keep discovery enabled by default.
Preserve manual providers: Explicitly configured LLM providers must continue working.
Add tests: Verify that disabling discovery stops all automatic HTTP requests.
philmehew commentedon Oct 22, 2026
@Shiv-61 let's see if our AI overlords accept this..lol.
opencode-agent commentedon Oct 23, 2026
We haven't heard back, so I'm closing this as a duplicate of #45172. Both come from the built-in local provider discovery, which probes
127.0.0.1:8000every 30 seconds and doesn't back off. Please follow #45172 for updates. Your suggestions (a documented switch, checking that the response looks like the expected runtime, backing off after failures) would be welcome there.In the meantime, you can turn discovery off with
"plugins": ["-opencode.provider.vllm", "-opencode.provider.lmstudio", "-opencode.provider.ollama"]in your config, then restart the background service. If your problem turns out to be different, reply here and we can reopen. Thanks for the detailed report!philmehew commentedon Oct 23, 2026
this is ridiculous...there are comments in here...the bot has taken over....
rekram1-node commentedon Nov 13, 2026
Closing this as a duplicate of #45172. I read the thread, and I get that a workaround isn't the same as a real setting, but the actual problem is that we probe ports we have no business probing, and that is what's being fixed over there. Until then,
"plugins": ["-opencode.provider.vllm", "-opencode.provider.lmstudio", "-opencode.provider.ollama"]plus a service restart turns it off.