Skip to content
Content
Article

OpenCode

An open harness with native skills, plugins, agents, commands, MCP, and JSON configuration

  • harness
  • opencode
  • setup
(OpenCode) profile

OpenCode is an open harness with native skills, agents, commands, plugins, and JSON configuration. Unlike systems that place everything in one control file, it separates reusable workflows, specialized roles, slash commands, and plugins into distinct surfaces.

Native surface

AreaWhat OpenCode readsai-stp projection
User~/.config/opencode/skills/, agents/, commands/, plugins/, AGENTS.md, opencode.json/jsonc, tui.json/jsoncGlobal skill, agent, command, plugin, instruction, MCP, and settings
Project.opencode/skills/, .opencode/agents/, .opencode/commands/, .opencode/plugins/, opencode.json/jsonc, tui.json/jsoncProject-specific components
MCPmcp inside opencode.json or opencode.jsoncMCP only when the key is structurally declared

json and jsonc are two formats for the same configuration surface. A file's presence alone does not make it MCP: ai-stp checks the declared key and keeps settings separate from MCP.

How the setup is assembled

  1. Discovery searches only OpenCode native directories and JSON files in the chosen scope.
  2. The passport distinguishes skill, agent, command, plugin, instruction, MCP, and setting even when they sit next to one another.
  3. The assembler checks name conflicts and scope compatibility; project and user versions are not mixed without an explicit plan.
  4. The public opencode-setup-system applies the exact plan to the OpenCode configuration root. The website remains the catalog and control plane.

OpenCode's native model works well for a setup made of small independent parts: skill provides knowledge and workflow, agent provides specialization, command provides explicit invocation, plugin provides a package, MCP connects an external service, and setting selects runtime behaviour.

When to choose OpenCode

Choose OpenCode when you want an open runtime and an explicit file structure without hidden import rules. Commit project components under .opencode/ and keep user-wide components in the user configuration directory.

Trust boundary

An open runtime does not make third-party plugins safe automatically. Review manifests, scripts, MCP endpoints, exact version, and rollback before installation.

Observe → passport → structure check → exact plan → provider write.

OpenCode — article