mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-10-13 16:20:00 +08:00
1.6 KiB
1.6 KiB
@opencode/plugin
Authoring interfaces and runtime loader support for OpenCode V2 plugins:
@opencode/plugin— Promise plugin API@opencode/plugin/effect— Effect plugin API@opencode/plugin/rpc— portable RPC contract definitions@opencode/plugin/tui— terminal UI plugin API
Packaging And Runtime effect
When the OpenCode CLI loads server or TUI plugins, it resolves imports of effect, exported effect/* subpaths, and @opencode/plugin entrypoints (including imports from dependencies inside a plugin's node_modules) to the host's runtime module instances so fibers, loggers, and Schema parsers share one copy.
- Declare
effectas apeerDependency(anddevDependencyfor local type-checking and testing) rather than a bundled runtime dependency. - Do not bundle
effectinto published plugin files; if you build with a bundler, keepeffectandeffect/*external. Two copies ofeffectdo not share fiber, logger, orSchemainternals. - Plugins and their
node_modulesdependencies always receive OpenCode's hosteffectinstance. UseeffectAPIs and module paths compatible with the OpenCode release you target; dependencies built on anothereffectmajor (such as Effect 3) are not supported. - Only public
effectsubpaths are provided. A plugin that imports one of Effect's privateinternalmodules fails to load with an error naming the path. - The compiled OpenCode binary does not include the Scalar and Swagger UI assets used by Effect's HTTP API docs pages; serving those pages from a plugin shows a notice instead.