Repository navigation
feat(config): add plugin_config for structured plugin options - #9161
Closed
GoodFarming wants to merge 1 commit into
Closed
GoodFarming wants to merge 1 commit into
GoodFarming wants to merge 1 commit into
Conversation
Contributor
|
The following comment was made by an LLM, it may be inaccurate: No duplicate PRs found |
This was referenced Jan 18, 2026
opencode-agent
Bot
force-pushed
the
dev
branch
from
January 30, 2026 14:32
00637c0 to
71e0ba2
Compare
thdxr
force-pushed
the
dev
branch
3 times, most recently
from
January 30, 2026 14:37
f1ae801 to
08fa7f7
Compare
Contributor
|
Closing this pull request because it has had no updates for more than 60 days. If you plan to continue working on it, feel free to reopen or open a new PR. |
aagarwal1012
added a commit
to dodopayments/dodo-agent-plugin
that referenced
this pull request
May 8, 2026
OpenCode (runtime toggle): plugin's config hook now reads DODO_DISABLE_API_MCP and DODO_DISABLE_KNOWLEDGE_MCP env vars and skips registering the matching MCP when set to a truthy value (1/true/yes/on, case-insensitive). Both unset = both registered (prior default preserved). Env vars chosen over an opencode.json config block because OpenCode's top-level schema is strict and rejects unknown keys (anomalyco/opencode#9161). Claude Code / Codex / Cursor: added explicit "enabled": true to every MCP entry in .mcp.json so users have a clear field to flip to false in their own override config. Per-MCP plugin toggles in the Claude Code UI are still pending upstream (anthropics/claude-code#27105, #46373, #50826); this is the supported path until they land. Docs: new README sections documenting toggles for all four clients, plus an env-var table in opencode-plugin/README.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds an optional top-level
plugin_configmap to the config schema so plugins can receive structured options viaopencode.json(c):{ "plugin": ["@acme/my-plugin"], "plugin_config": { "@acme/my-plugin": { "endpoint": "https://example.com" } } }Why?
Config parsing is strict (
Config.Infois.strict()), so plugins can’t add plugin-specific keys toopencode.json(c)today without an upstream schema change. The common workarounds are env vars or sidecar config files, which are harder to install/standardize.plugin_configis a minimal, additive escape hatch: OpenCode already passes the resolved config to plugins viaHooks.config, so plugins can read/validate their own entry without any new lifecycle plumbing.Why this shape (vs
plugin: [{ name, config }])?Keeping
pluginas a plain “load list” avoids changing plugin loading/deduping/merge semantics.plugin_configadds configuration without altering how plugins are resolved or initialized.Notes
plugin_configis deep-merged across config layers (same merge behavior as other config objects).How did you verify your code works?
bun test --cwd packages/opencodebun turbo typecheckbun ./script/generate.tsFixes #4393