Purpose
Use this skill whenever OpenWork behavior is implemented directly on top of OpenCode primitives (skills, plugins, MCP servers, opencode.json config, tools/permissions). It anchors decisions to the official OpenCode documentation and keeps terminology consistent in the UI.
Doc Sources (Always cite when relevant)
- •Skills: https://opencode.ai/docs/skills
- •Plugins: https://opencode.ai/docs/plugins/
- •MCP servers: https://opencode.ai/docs/mcp-servers/
- •Config (opencode.json, locations, precedence): https://opencode.ai/docs/config/
Key Facts To Apply
Skills
- •Skill files live in
.opencode/skills/<name>/SKILL.mdor global~/.config/opencode/skills/<name>/SKILL.md. - •Skills are discovered by walking up to the git worktree and loading any matching
skills/*/SKILL.mdin.opencode/or.claude/skills/. - •
SKILL.mdrequires YAML frontmatter:name+description. - •Name rules: lowercase alphanumeric with single hyphens (
^[a-z0-9]+(-[a-z0-9]+)*$), length 1-64, must match directory name. - •Description length: 1-1024 characters.
- •Access is governed by
opencode.jsonpermissions (permission.skillallow/deny/ask).
Plugins
- •Local plugins live in
.opencode/plugins/(project) or~/.config/opencode/plugins/(global). - •npm plugins are listed in
opencode.jsonunderpluginand installed with Bun at startup. - •Load order: global config, project config, global plugins dir, project plugins dir.
MCP Servers
- •MCP servers are defined in
opencode.jsonundermcpwith unique names. - •Local servers use
type: "local"+commandarray; remote servers usetype: "remote"+url. - •Servers can be enabled/disabled via
enabled. - •MCP tools are managed via
toolsin config, including glob patterns. - •OAuth is handled automatically for remote servers; can be pre-registered or disabled.
Config (opencode.json)
- •Supports JSON and JSONC.
- •Precedence order: remote
.well-known/opencode-> global~/.config/opencode/opencode.json-> custom path -> projectopencode.json->.opencode/directories -> inline env overrides. - •
.opencodesubdirectories are plural by default (agents/,commands/,plugins/,skills/,tools/,themes/), with singular names supported for compatibility.
When to Invoke
- •Adding or adjusting OpenWork flows that reference skills, plugins, MCP servers, or OpenCode config.
- •Designing onboarding guidance that mentions skill/plugin installation, config locations, or permission prompts.
- •Implementing UIs that surface OpenCode primitives (skills tab, plugin manager, MCP toggles).
Usage
Call skill({ name: "opencode-primitives" }) before implementing or documenting any OpenWork behavior that maps to OpenCode primitives.