mcpField
O
opencode-primitives

opencode-primitives

github.com/different-aiAgent 工作流24.3k729 次安装今天更新
代码仓库

关于 opencode-primitives

opencode-primitives 是一份参考技能,用于依据 OpenCode 功能实现 OpenWork 行为。它帮助开发者一致地应用有关技能、插件、MCP 服务和配置的文档规则。

主要功能

  1. 01参考 OpenCode 官方文档
  2. 02说明技能发现与元数据规则
  3. 03介绍插件位置和加载顺序
  4. 04记录 MCP 服务配置方式
  5. 05概述配置格式与优先级

适用场景

  1. 01基于 OpenCode 功能实现 OpenWork 工作流
  2. 02设计技能和插件安装指引
  3. 03构建 MCP 与权限设置界面

MCP 相关

它说明如何在 opencode.json 中配置 MCP 服务,包括本地和远程服务条目、启用状态、工具选择及 OAuth 处理。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/different-ai/openwork --skill opencode-primitives

安装后在 Claude Code 中输入/opencode-primitives确认已加载。

详细介绍

用途

每当 OpenWork 的行为直接基于 OpenCode 原语(技能、插件、MCP 服务、opencode.json 配置、工具/权限)实现时,都使用此技能。它以 OpenCode 官方文档为依据,并确保 UI 中的术语保持一致。

文档来源(相关时务必引用)

需要应用的关键信息

技能
  • 技能文件位于 .opencode/skills/<name>/SKILL.md 或全局路径 ~/.config/opencode/skills/<name>/SKILL.md。
  • 技能通过向上遍历至 git 工作树来发现,并加载 .opencode/ 或 .claude/skills/ 中所有匹配的 skills/*/SKILL.md。
  • SKILL.md 必须包含 YAML frontmatter:name + description。
  • 名称规则:使用小写字母和数字,以单个连字符分隔(^[a-z0-9]+(-[a-z0-9]+)*$),长度为 1-64,且必须与目录名称一致。
  • 描述长度:1-1024 个字符。
  • 访问权限由 opencode.json 权限(permission.skill 中的 allow/deny/ask)控制。
插件
  • 本地插件位于 .opencode/plugins/(项目级)或 ~/.config/opencode/plugins/(全局)。
  • npm 插件列在 opencode.json 的 plugin 下,并在启动时通过 Bun 安装。
  • 加载顺序:全局配置、项目配置、全局插件目录、项目插件目录。
MCP 服务
  • MCP 服务在 opencode.json 的 mcp 下定义,并使用唯一名称。
  • 本地服务使用 type: "local" + command 数组;远程服务使用 type: "remote" + url。
  • 可以通过 enabled 启用或停用服务。
  • MCP 工具通过配置中的 tools 管理,其中包括 glob 模式。
  • 远程服务的 OAuth 会自动处理;可以预先注册或禁用。
配置(opencode.json)
  • 支持 JSON 和 JSONC。
  • 优先级顺序:远程 .well-known/opencode -> 全局 ~/.config/opencode/opencode.json -> 自定义路径 -> 项目 opencode.json -> .opencode/ 目录 -> 内联环境变量覆盖。
  • .opencode 子目录默认使用复数名称(agents/、commands/、plugins/、skills/、tools/、themes/),也支持单数名称以兼容旧版。

何时调用

  • 添加或调整引用技能、插件、MCP 服务或 OpenCode 配置的 OpenWork 工作流。
  • 设计涉及技能/插件安装、配置位置或权限提示的引导说明。
  • 实现展示 OpenCode 原语的 UI(技能标签页、插件管理器、MCP 开关)。

用法

在实现或记录任何映射到 OpenCode 原语的 OpenWork 行为之前,调用 skill({ name: "opencode-primitives" })。

评论

支持 Markdown