skills/different-ai/openwork/opencode-primitives

opencode-primitives

SKILL.md

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)

Key Facts To Apply

Skills

  • Skill files live in .opencode/skills/<name>/SKILL.md or global ~/.config/opencode/skills/<name>/SKILL.md.
  • Skills are discovered by walking up to the git worktree and loading any matching skills/*/SKILL.md in .opencode/ or .claude/skills/.
  • SKILL.md requires 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.json permissions (permission.skill allow/deny/ask).

Plugins

  • Local plugins live in .opencode/plugins/ (project) or ~/.config/opencode/plugins/ (global).
  • npm plugins are listed in opencode.json under plugin and 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.json under mcp with unique names.
  • Local servers use type: "local" + command array; remote servers use type: "remote" + url.
  • Servers can be enabled/disabled via enabled.
  • MCP tools are managed via tools in 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 -> project opencode.json -> .opencode/ directories -> inline env overrides.
  • .opencode subdirectories 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.

Weekly Installs
130
GitHub Stars
11.8K
First Seen
Jan 22, 2026
Installed on
opencode126
gemini-cli116
codex114
cursor110
github-copilot108
claude-code100