bug: out-of-tree file:// plugins never get @opencode-ai/plugin installed

Open
#1,298 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
bun, typescript
Domain
cli, tooling

Research direction

Read packages/opencode/src/config/plugin.ts, starting at ConfigPlugin.needsDependencies, and trace how the dependency directory is selected for an out-of-tree file:// plugin. Compare that behavior with Bun's upward module lookup described in the issue. Done means the chosen dependency strategy is implemented or documented and @opencode-ai/plugin resolves for the example plugin.

Written by the indexing model from the issue text.

Description

Found during the v0.11.1 release review (End User persona). Deferred because: pre-existing behavior (v0.11.0's unconditional install had the same target-directory logic), not a regression, and the fix needs a decision on where dependencies for out-of-tree plugins should live.

A plugin declared as "plugin": ["file:///abs/path/outside/any/config/dir/plugin.ts"] never gets @opencode-ai/plugin installed anywhere: ConfigPlugin.needsDependencies (packages/opencode/src/config/plugin.ts) only installs into config directories that contain the plugin file, and Bun resolves the plugin's import "@opencode-ai/plugin" by walking up from the plugin file's own path, which nothing populates. The import fails unless the user happens to have the package on an ancestor path.

Options: install into the plugin file's own directory (or nearest package root), document that out-of-tree file plugins must provide their own node_modules, or resolve @opencode-ai/plugin from the CLI's bundled copy via an import map.

Dominant language
TypeScript
Stars
813
Forks
134
Avg merge
2d 5h
Merged PRs (30d)
62

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AltimateAI/altimate-code

All issues in AltimateAI/altimate-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.