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
TUI blocks its first render on the full 6.6 MB provider catalog #53679
The TUI cannot show its prompt until GET /provider has returned, and that response is the whole models.dev catalog: on an install with one provider connected it is 6.6 MB (226 providers, 8,405 models). The server worker has to build and JSON-encode all of it at startup, and the TUI has to parse it, before the first render.
The data goes into provider_next, which only the provider connect dialog reads.
Measured with a compiled 1.18.34 on macOS (M2 Pro), the call takes 1.2 s warm and 4.1 s on first call on a loaded Linux host. Moving it out of the blocking bootstrap cuts launch-to-typable-prompt by about 250 ms (12%) on an idle machine, more on a busy one.
Thanks for the detailed measurements! This looks like the same problem as #41078: the TUI waits for the full /provider catalog before its first render, when only the connect dialog needs it. Your numbers are a useful addition there. Open PR #53593 also stops the TUI loading /provider at startup and loads it only when a connect dialog opens.
Also note that 1.18.34 is OpenCode v1, which now only gets critical fixes. v2 (@opencode/cli, the opencode2 command) is where active work happens.
The bot will close this issue as a duplicate of #41078 in 1 day, unless you reply explaining how your problem is different.
Closing this as a duplicate of #41078, since there was no reply about how this differs. That issue covers the same problem: the TUI waits for the full /provider catalog before its first render, when only the connect dialog needs it. Please follow it there, and feel free to add your measurements. Open PR #53593 also stops the TUI loading /provider at startup.
Correction to my earlier comment: v2 is the @opencode/cli package, and its command is opencode, not opencode2.
If you see something different from #41078, especially on v2, please open a new issue with the details. Thanks!
Activity
opencode-agent commentedon Oct 7, 2026
Thanks for the detailed measurements! This looks like the same problem as #41078: the TUI waits for the full
/providercatalog before its first render, when only the connect dialog needs it. Your numbers are a useful addition there. Open PR #53593 also stops the TUI loading/providerat startup and loads it only when a connect dialog opens.Also note that 1.18.34 is OpenCode v1, which now only gets critical fixes. v2 (
@opencode/cli, theopencode2command) is where active work happens.The bot will close this issue as a duplicate of #41078 in 1 day, unless you reply explaining how your problem is different.
github-actions commentedon Oct 7, 2026
This issue might be a duplicate of existing issues. Please check:
/providercatalog being fetched during app bootstraps even though startup only needs connected providers./providerpayload and proposes loading asynchronously.opencode-agent commentedon Oct 8, 2026
Closing this as a duplicate of #41078, since there was no reply about how this differs. That issue covers the same problem: the TUI waits for the full
/providercatalog before its first render, when only the connect dialog needs it. Please follow it there, and feel free to add your measurements. Open PR #53593 also stops the TUI loading/providerat startup.Correction to my earlier comment: v2 is the
@opencode/clipackage, and its command isopencode, notopencode2.If you see something different from #41078, especially on v2, please open a new issue with the details. Thanks!