Skip to content

feat(plugin): support local path install via file:// and absolute path#491

Merged
jackwener merged 1 commit intojackwener:mainfrom
ByteYue:feat/plugin-local-install
Mar 27, 2026
Merged

feat(plugin): support local path install via file:// and absolute path#491
jackwener merged 1 commit intojackwener:mainfrom
ByteYue:feat/plugin-local-install

Conversation

@ByteYue
Copy link
Copy Markdown
Collaborator

@ByteYue ByteYue commented Mar 27, 2026

Feature

Add support for installing plugins from local directories:

opencli plugin install file:///path/to/my-plugin
opencli plugin install /path/to/my-plugin

Local plugins are symlinked (not copied) into ~/.opencli/plugins/ so code changes are reflected immediately without reinstall — ideal for plugin development workflows.

Changes

  • parseSource() now handles file:// URLs and bare absolute paths
  • New installLocalPlugin() creates symlink + installs deps + transpiles
  • Lock file records local:<path> as source for local plugins
  • 6 new test cases for local path parsing and install behavior

Testing

All 343 unit tests pass (6 new tests added).

@jackwener jackwener force-pushed the feat/plugin-local-install branch from d3358ff to 396d6d4 Compare March 27, 2026 05:37
Add support for installing plugins from local directories:
  opencli plugin install file:///path/to/my-plugin
  opencli plugin install /path/to/my-plugin

Local plugins are symlinked (not copied) into ~/.opencli/plugins/
so code changes are reflected immediately without reinstall — ideal
for plugin development workflows.

Changes:
- parseSource() now handles file:// URLs and bare absolute paths
- New installLocalPlugin() creates symlink + installs deps + transpiles
- Lock file records 'local:<path>' as source for local plugins
- 6 new test cases for local path parsing and install behavior
@jackwener jackwener force-pushed the feat/plugin-local-install branch from 396d6d4 to 0d91bbc Compare March 27, 2026 05:45
@jackwener jackwener merged commit 384419f into jackwener:main Mar 27, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants