Repository navigation
Description
Problem
OpenCode Desktop on Windows logs repeated config dependency install failures because it tries to install @opencode-ai/plugin@local.
@opencode-ai/plugin is a valid official package, but local is not a published npm version or dist-tag, so npm resolution fails.
This looks related to #20891, but this report is for an installed official Windows Desktop release, not a locally built preview binary.
Environment
- OS: Windows 11
- Client: OpenCode Desktop
- Desktop executable version:
1.14.39 - Workspace: normal git repository with an
.opencodedirectory - Current project
.opencodecontents: only.gitignore, emptyagents/, emptycommands/; no project plugin files and no.opencode/package.json
Observed log
From C:\Users\USER\.local\share\opencode\log\2026-05-06T075806.log:
WARN 2026-05-06T07:58:08 +999ms service=config dir=D:\Github\OpencodeScratch\.opencode error=Cause([Fail(NpmInstallFailedError (cause: @opencode-ai/plugin: No matching version found for @opencode-ai/plugin@local.))]) background dependency install failed
The same warning repeated across several recent startup logs:
2026-05-06T075806.log
2026-05-06T075017.log
2026-05-06T055553.log
2026-05-06T040512.log
2026-05-06T035703.log
2026-05-06T035536.log
Expected
Official Desktop builds should install a published @opencode-ai/plugin version matching the running OpenCode release, or skip pinning to a version when the runtime is treated as local/dev.
They should not try to install @opencode-ai/plugin@local in a released Desktop build.
Investigation / suspected root cause
The config dependency installer adds @opencode-ai/plugin with InstallationVersion unless InstallationLocal is true:
npmSvc.install(dir, {
add: [
{
name: "@opencode-ai/plugin",
version: InstallationLocal ? undefined : InstallationVersion,
},
],
})Code reference in current dev:
packages/opencode/src/config/config.ts
InstallationVersion falls back to "local" if the compile-time OPENCODE_VERSION define is absent:
export const InstallationVersion = typeof OPENCODE_VERSION === "string" ? OPENCODE_VERSION : "local"
export const InstallationChannel = typeof OPENCODE_CHANNEL === "string" ? OPENCODE_CHANNEL : "local"
export const InstallationLocal = InstallationChannel === "local"Code reference:
packages/core/src/installation/version.ts
The standalone Bun CLI build defines both OPENCODE_VERSION and OPENCODE_CHANNEL:
packages/opencode/script/build.ts
But the Node server build used by Desktop appears to define only OPENCODE_CHANNEL, not OPENCODE_VERSION:
define: {
OPENCODE_MIGRATIONS: JSON.stringify(migrations),
OPENCODE_CHANNEL: `'${Script.channel}'`,
}Code reference:
packages/opencode/script/build-node.ts
Desktop imports that Node server build via ../opencode/dist/node:
packages/desktop/electron.vite.config.ts
So the Desktop server bundle may end up with:
InstallationVersion === "local"InstallationChannel !== "local"InstallationLocal === false
That combination makes config dependency installation request @opencode-ai/plugin@local.
Why this matters
For workspaces without local plugins this may be a noisy background warning only. For workspaces with local plugins or custom tools that import @opencode-ai/plugin, this can break dependency preparation and lead to confusing plugin loading behavior.
Notes
npm view @opencode-ai/plugin version dist-tags shows latest: 1.14.39, but no local dist-tag.
Activity
netics01 commentedon May 6, 2026
Additional precise code references from current
devas checked during the report:InstallationVersionfallback to"local":opencode/packages/core/src/installation/version.ts
Lines 6 to 8 in 518503b
@opencode-ai/plugintoInstallationVersionunlessInstallationLocal:opencode/packages/opencode/src/config/config.ts
Lines 550 to 558 in 518503b
opencode/packages/opencode/src/cli/cmd/tui/config/tui.ts
Lines 201 to 213 in 518503b
OPENCODE_VERSIONandOPENCODE_CHANNEL:opencode/packages/opencode/script/build.ts
Lines 218 to 224 in 518503b
OPENCODE_CHANNELbut notOPENCODE_VERSION:opencode/packages/opencode/script/build-node.ts
Lines 46 to 60 in 518503b
../opencode/dist/node:opencode/packages/desktop/electron.vite.config.ts
Lines 12 to 57 in 518503b
github-actions commentedon Jul 8, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.