Add OpenCode Zen / OpenCode Go support to provider picker
The Hermes CLI backend already supports opencode-zen and opencode-go as first-class providers (aliased from opencode → opencode-zen, go → opencode-go), and reads API keys from OPENCODE_ZEN_API_KEY / OPENCODE_GO_API_KEY env vars. However, the desktop app's hardcoded provider lists don't include them, so users can't select them from the dropdown or setup wizard.
Changes needed
1. src/renderer/src/constants.ts — Add to PROVIDERS.options:
Insert after the aggregators (e.g. after { value: "aimlapi", ... }):
{ value: "opencode-zen", label: "OpenCode Zen" },
{ value: "opencode-go", label: "OpenCode Go" },
2. src/renderer/src/constants.ts — Add to PROVIDERS.labels:
"opencode-zen": "OpenCode Zen",
"opencode-go": "OpenCode Go",
3. src/renderer/src/constants.ts — Add to PROVIDERS.setup (setup wizard cards):
Insert after the OAuth/local entries or in a logical position (e.g. after nous):
{
id: "opencode-zen",
name: "OpenCode Zen",
desc: "Pay-as-you-go access to curated coding models",
tag: "",
envKey: "OPENCODE_ZEN_API_KEY",
url: "https://opencode.ai/auth",
placeholder: "sk-...",
configProvider: "opencode-zen",
baseUrl: "",
needsKey: true,
},
{
id: "opencode-go",
name: "OpenCode Go",
desc: "$10/month subscription for open coding models",
tag: "",
envKey: "OPENCODE_GO_API_KEY",
url: "https://opencode.ai/auth",
placeholder: "sk-...",
configProvider: "opencode-go",
baseUrl: "",
needsKey: true,
},
4. src/main/provider-registry.ts — Add base URLs to PROVIDER_BASE_URLS:
"opencode-zen": "https://opencode.ai/zen/v1",
"opencode-go": "https://opencode.ai/go/v1",
Why no dashboardModelMatches fix?
The alias resolution (opencode → opencode-zen) happens in the CLI backend. If the desktop's model validation does exact-string comparison and the CLI returns the aliased name, a mismatch may occur. This was observed in the AUR-packaged v0.7.3 binary but may not affect source-built versions. If the desktop uses the raw model.options response as the display value rather than comparing against the requested provider name, no additional fix is needed here.
Verification steps
- After building, open Settings → Providers
- Select "OpenCode Zen" from the provider dropdown
- Pick a model (e.g. deepseek-v4-flash-free)
- Send a message — it should route through
https://opencode.ai/zen/v1 using OPENCODE_ZEN_API_KEY
Hope this helps.
Add OpenCode Zen / OpenCode Go support to provider picker
The Hermes CLI backend already supports
opencode-zenandopencode-goas first-class providers (aliased fromopencode→opencode-zen,go→opencode-go), and reads API keys fromOPENCODE_ZEN_API_KEY/OPENCODE_GO_API_KEYenv vars. However, the desktop app's hardcoded provider lists don't include them, so users can't select them from the dropdown or setup wizard.Changes needed
1.
src/renderer/src/constants.ts— Add toPROVIDERS.options:Insert after the aggregators (e.g. after
{ value: "aimlapi", ... }):2.
src/renderer/src/constants.ts— Add toPROVIDERS.labels:3.
src/renderer/src/constants.ts— Add toPROVIDERS.setup(setup wizard cards):Insert after the OAuth/local entries or in a logical position (e.g. after
nous):4.
src/main/provider-registry.ts— Add base URLs toPROVIDER_BASE_URLS:Why no
dashboardModelMatchesfix?The alias resolution (
opencode→opencode-zen) happens in the CLI backend. If the desktop's model validation does exact-string comparison and the CLI returns the aliased name, a mismatch may occur. This was observed in the AUR-packaged v0.7.3 binary but may not affect source-built versions. If the desktop uses the rawmodel.optionsresponse as the display value rather than comparing against the requested provider name, no additional fix is needed here.Verification steps
https://opencode.ai/zen/v1usingOPENCODE_ZEN_API_KEYHope this helps.