Adding Your Marketplace to OpenCode
This guide walks you through using your Willow plugins in OpenCode.
OpenCode has no plugin marketplace — its native "plugins" are JavaScript/TypeScript modules, not bundles you install from a marketplace.json. Instead, OpenCode natively discovers skills, commands, and agents from config files, and reads MCP servers from opencode.json. So Willow publishes your plugins to OpenCode as an OpenCode-native config layout rather than a marketplace manifest.
Prerequisites
- OpenCode Terminal or Desktop installed
- OpenCode enabled under Plugins → Settings → Target marketplace platforms (it is on by default)
- Your marketplace repository ready (from Willow — see Managed Marketplace Sync or GitHub Integration)
Repository structure
For OpenCode, Willow generates a native config layout at the repository root, alongside the marketplace directories used by other platforms:
your-org-slug/
├── opencode.json # MCP servers (Willow gateways + any raw servers)
├── .opencode/
│ ├── skills/
│ │ └── <skill-slug>/
│ │ └── SKILL.md
│ ├── commands/
│ │ └── <command-slug>.md
│ └── agents/
│ └── <agent-slug>.md
└── plugins/ # other platforms' layout — ignored by OpenCode
Key differences from other platforms:
- There is no
marketplace.jsonand no per-pluginplugin.jsonfor OpenCode. - Skills, commands, and agents from all your OpenCode-targeted plugins are aggregated into one shared
.opencode/tree (OpenCode discovers them by directory, not by plugin). - MCP servers are collected into a single root
opencode.json. - Hooks are not exported: OpenCode hooks are executable code, which has no data-driven equivalent.
Step 1: MCP config file
The root opencode.json is generated automatically. Toolkits and integrations become remote MCP servers pointing at your Willow gateway:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-toolkit": {
"type": "remote",
"url": "https://yourorg.mcp-s.com/mcp?toolkit=my-toolkit",
"enabled": true
}
}
}
Step 2: Make the files available to OpenCode
OpenCode discovers config by walking up from your working directory to the git worktree root, and also reads global config from ~/.config/opencode/. Choose one:
- Per project (recommended): clone/pull the marketplace repo and work inside it, or copy the
.opencode/folder andopencode.jsoninto your project root. - Global: copy the contents of
.opencode/into~/.config/opencode/and mergeopencode.jsoninto~/.config/opencode/opencode.json.
OpenCode additionally discovers skills from .claude/skills/ and .agents/skills/. If you already sync the Claude or Codex layouts, those skills are picked up too.
Step 3: Authorize MCP servers
Willow gateways use OAuth. After the config is in place, authorize OpenCode against your Willow server:
opencode mcp auth willow
For the full connection and authentication walkthrough (including the Dynamic MCP Gateway), see Connect OpenCode to Willow.
Step 4: Verify
- Restart OpenCode so it re-reads config.
- Type
/mcpsto confirm your Willow servers are connected. - Skills appear via the native
skilltool (<available_skills>in its description); commands appear under/, and agents under@.
Updating
After Willow syncs changes to your repository, pull the latest and restart OpenCode so it picks up the new .opencode/ files and opencode.json.