$ opencode plugin add opencode-skill-management
$ opencode plugin list --builtinskill_management <version> opencode-skill-management@<version>上下文税
每装一个 skill,都在持续占用上下文。
OpenCode 会把 skill 的名称和描述注入模型上下文。装得多了,这份列表就不再是帮助:过时的条目挤占注意力,加载不了的 skill 不告诉你原因,而「删文件」这种停用方式,改回来还得凭记忆。
看见真实状态
list 按实际发起调用的 agent 求值,而不是把所有 agent 的规则混在一起。
停用但不删除
全局配置里的一条规则就能让它从列表消失、加载被拒。skill 文件一个字节都不动。
知道为什么被挡
inspect 贴出命中的规则、逐 agent 的差异,以及 id 是怎么来的。
精确地撤回
enable 只删那一条挡路的规则 —— 定位不唯一就拒绝,不猜。
四个动作
表面积很小,语义很硬。
- list
- 列出所有已注册 skill 对调用者的有效状态,附配置与 sidecar 的一致性提示。只读。
- inspect
- 单个 skill 的详情:结论、命中规则、逐 agent 结果、id 推导。只读。
- disable
- 写一条全局
skill权限规则。默认deny,可用ask软停用,dryRun预览。 - enable
- 删掉挡路的那一条精确全局规则。规则有歧义或超出范围时拒绝执行。
载体
一条规则,同一个文件,没有副作用。
停用不是另建数据库,也不是改写 skill 文件。它就是全局 permissions 数组末尾的一条规则,行尾带一个来源标记,方便以后再找到它。缩进、键顺序、行尾风格与 BOM 都会保留。
{ "permissions": [ { "action": "skill", "resource": "windows-shell", "effect": "deny" } // skill_management ]}之后 enable 删掉的也正是这一条。整个状态模型就这么大。
OpenCode V2 · 在 2.0.32 上完成 Windows / Linux 验收,2.2.0 上复核 · Node 18+ · 无第三方运行时依赖。
阅读文档 →