You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
V2: simplify plugin tool definitions and remove LM leakage from plugin package #36189
The V2 plugin surface currently has a few API/packaging seams that make simple plugins harder than they should be and can leak internal package boundaries.
Decided direction
@opencode/plugin should not depend on or expose @opencode/lm internals.
Drop or defer the session request intercept hook if it is the only reason for the LM dependency.
If that hook returns later, expose session-shaped messages rather than LM provider-shaped messages.
tools.add should accept plain object tool definitions; plugin authors should not need tool.make ceremony.
Tool input/output should support JSON Schema / standard schema where appropriate.
Keep documented imports for now; no-import/global plugin API can be revisited later.
Partly done: plugin tools are now plain objects with no tool.make, and accept Effect Schema, Standard Schema or JSON Schema (packages/schema/src/tool.ts). @opencode/plugin still depends on @opencode/ai, and the session hooks still expose provider-shaped messages. Closing this tracker. The dependency cleanup can be tracked separately if it's still wanted.
Activity
neriousy commentedon Oct 21, 2026
Partly done: plugin tools are now plain objects with no
tool.make, and accept Effect Schema, Standard Schema or JSON Schema (packages/schema/src/tool.ts).@opencode/pluginstill depends on@opencode/ai, and the session hooks still expose provider-shaped messages. Closing this tracker. The dependency cleanup can be tracked separately if it's still wanted.