About opencode-primitives
opencode-primitives is a reference skill for implementing OpenWork behavior based on OpenCode features. It helps developers apply documented rules for skills, plugins, MCP servers, and configuration consistently.
Key features
- 01Reference official OpenCode documentation
- 02Explain skill discovery and metadata rules
- 03Describe plugin locations and load order
- 04Document MCP server configuration
- 05Summarize configuration formats and precedence
Use cases
- 01Implement OpenWork flows using OpenCode features
- 02Design guidance for installing skills and plugins
- 03Build interfaces for MCP and permission settings
MCP support
It documents how MCP servers are configured in opencode.json, including local and remote server entries, enablement, tool selection, and OAuth handling.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ different-ai/ openwork --skill opencode-primitivesAfter installing, type/opencode-primitivesin Claude Code to confirm it loaded.
Details
From the project READMEPurpose
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.