Superpowers for OpenCode
Superpowers for OpenCode是一个适用于OpenCode.ai的插件,为OpenCode提供可加载的自定义技能扩展能力。本文档是该插件的完整使用与安装指南。
摘要
Superpowers是OpenCode的技能扩展插件,支持全局安装、项目本地安装两种方式,提供技能查找、加载能力,支持用户创建个人自定义技能与项目专属技能,具备上下文压缩抗性、自动上下文注入等特性,兼容适配Claude Code编写的技能。
安装方式
快速安装
向OpenCode发送如下指令即可完成安装:
Clone https://github.com/obra/superpowers to ~/.config/opencode/superpowers, then create directory ~/.config/opencode/plugin, then symlink ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js to ~/.config/opencode/plugin/superpowers.js, then restart opencode.
手动安装
前置依赖
- 已安装OpenCode.ai
- 已安装Node.js
- 已安装Git
安装步骤
- 拉取Superpowers代码到指定目录
mkdir -p ~/.config/opencode/superpowers
git clone https://github.com/obra/superpowers.git ~/.config/opencode/superpowers- 注册插件
OpenCode从
~/.config/opencode/plugin/发现插件,创建符号链接完成注册:
mkdir -p ~/.config/opencode/plugin
ln -sf ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js ~/.config/opencode/plugin/superpowers.js也支持项目本地安装(在OpenCode项目根目录执行):
mkdir -p .opencode/plugin
ln -sf ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js .opencode/plugin/superpowers.js- 重启OpenCode,插件会自动激活。
使用方法
查找技能
使用find_skills工具列出所有可用技能:
use find_skills tool
加载技能
使用use_skill工具加载指定技能:
use use_skill tool with skill_name: "superpowers:brainstorming"
加载的技能会自动插入对话,在上下文压缩后仍会保留。
创建个人技能
用户可在~/.config/opencode/skills/目录创建自定义个人技能:
- 创建技能目录:
mkdir -p ~/.config/opencode/skills/my-skill - 创建
SKILL.md文件,包含前置元数据与技能内容即可。
创建项目技能
可在OpenCode项目内创建项目专属技能:
- 在项目根目录创建技能目录:
mkdir -p .opencode/skills/my-project-skill - 创建符合格式要求的
SKILL.md文件即可。
技能优先级
技能按以下优先级解析,高优先级技能会覆盖低优先级的同名技能:
- 项目技能(
.opencode/skills/)- 最高优先级 - 个人技能(
~/.config/opencode/skills/) - Superpowers内置技能(
~/.config/opencode/superpowers/skills/)
也可通过命名前缀强制指定解析层级:
project:skill-name:强制使用项目技能skill-name:按项目→个人→Superpowers内置的顺序搜索superpowers:skill-name:强制使用Superpowers内置技能
核心特性
- 自动上下文注入:插件通过
chat.message钩子在每个会话自动注入Superpowers上下文,无需手动配置。 - 消息插入模式:加载的技能会以
noReply: true的用户消息插入,保证长对话上下文压缩后技能仍保留。 - 压缩抗性:插件监听
session.compacted事件,会在上下文压缩后自动重新注入核心引导内容,维持插件功能。 - 工具映射:自动适配为Claude Code编写的技能,将Claude Code工具映射为OpenCode原生工具。
架构
插件结构
插件主体位置:~/.config/opencode/superpowers/.opencode/plugin/superpowers.js
包含组件:
- 两个自定义工具:
use_skill、find_skills - 用于初始上下文注入的
chat.message钩子 - 用于上下文压缩后重新注入的
session.compacted事件处理器 - 依赖共享核心模块
lib/skills-core.js
共享核心模块
位置:~/.config/opencode/superpowers/lib/skills-core.js
提供技能处理核心能力,包括解析元数据、搜索技能、解析技能路径、检查更新等功能,该模块在OpenCode和Codex实现间共享,用于代码复用。
更新
执行以下命令更新插件:
cd ~/.config/opencode/superpowers
git pull更新后重启OpenCode加载新版本即可。
故障排查
插件无法加载
- 检查插件文件是否存在
- 检查符号链接是否正确
- 开启DEBUG日志查看OpenCode运行日志,确认插件加载状态
- 查找插件加载日志
service=plugin path=file:///.../superpowers.js loading plugin确认加载流程
找不到技能
- 确认Superpowers内置技能目录存在内容
- 使用
find_skills工具查看已发现的技能列表 - 检查技能结构,每个技能必须包含
SKILL.md文件
工具无法工作
- 通过日志确认插件已成功加载
- 检查Node.js版本,插件要求Node.js支持ES模块
- 可通过Node.js手动测试插件模块是否可正常加载
上下文无法注入
- 检查
chat.message钩子是否正常工作 - 确认内置的
using-superpowers技能存在 - 检查OpenCode版本,要求为支持插件的新版本
测试
插件在tests/opencode/目录提供自动化测试套件,可执行脚本验证插件功能,测试范围包含插件加载、核心库功能、工具执行、技能优先级解析、环境隔离等。