文章详情

换到OpenCode,自己写的Claude Skills可以留在原目录

一句话看懂

自己写在本机目录里的Skills可以直接保留,OpenCode官方当前文档列了兼容读取原目录;先确认文件、依赖和识别结果,比另抄几份更省心。

事情是这样的。

11月13日那天,看到一位开发者在X上聊Claude Code的技能和工作流迁移,里面提到本地Skills、项目说明可以留下来,至于MCP和历史对话就得分别处理了。

顺着这个线索,我专门去翻了翻两边的官方文档。

说实话,我太理解那种准备换工具时的心理负担了。你平时写代码,一点点攒下来的规范、提示词、顺手的脚本,全都在里面。真要是不想把写代码流程继续放在Claude Code里,难道这些攒下的Skills全得推倒重写???

我以前在电商公司做运营的时候,大促前最怕的就是换后台系统,一想到要把规则重新配一遍,头皮都是麻的。

但这次看完文档,我可以明确跟你说,你保存在本机目录里的那些Skills,完全可以直接保留,不用从头再来。可能有些想法还不成熟,但我把查到的官方规则和盘点出来的4步搬家路径掏给你,希望能帮你省点折腾的时间。

1、去本机把你的技能完整找出来

在Claude Code的官方文档里,本地终端Skills遵循的是Agent Skills开放标准。个人的放在`~/.claude/skills/<skill-name>/SKILL.md`,项目的就放在项目里的`.claude/skills/<skill-name>/SKILL.md`。

个人技能和项目技能分开放,找到目录后连支持文件一起保留。 · 图片来源:截图自 Claude Code 官方文档,11月14日

你第一步要做的,就是去这两个地方找到自己写的技能,在本地保留好,或者如果要换新电脑,就在自己掌握的本地位置备份完整的技能目录。

这块需要注意一下,技能里除了Markdown说明,往往还带着脚本、参考资料这些支持文件。OpenCode里的相对路径是以`SKILL.md`所在目录为基础的,所以备份或者复制到新电脑的时候,一定要连着`scripts`、`references`、模板整个目录一起留,千万别只单拎一个`SKILL.md`走。搬家这一步我们只需要技能材料,登录凭据和整套账户配置不在这里面。

2、留在原目录,别急着到处抄

东西找齐了,怎么塞进OpenCode呢?

你都不需要挪地方= =

我去查了OpenCode技能文档,官方原话写得很明白,「OpenCode automatically searches these locations」。它虽然有自己的`~/.config/opencode/skills`和`.opencode/skills`,但同时也会自动搜索个人的`~/.claude/skills`、`~/.agents/skills`,以及项目里的`.claude/skills`和`.agents/skills`。

OpenCode官方列出的兼容目录包含原有Claude Skills位置。 · 图片来源:截图自 OpenCode 官方文档,11月14日

你在已经配好可用模型的OpenCode里,直接从同一个项目开始就行。同一台电脑、同一个项目下只要已经有`.claude/skills/<目录>/SKILL.md`,保留原样就能被OpenCode发现,根本不用先移动到`.opencode`或者`.agents`里。

而且OpenCode是按ID来选技能的,后注册的同名来源会覆盖前面的。官方也提醒了,「Avoid duplicate IDs unless you intend to override an earlier skill.」所以只维护原目录这一份就够了,真不用为了换个工具,自己跟自己较劲去复制三份同名技能。

3、挑个小技能,先对一遍口令

目录认出来了,不代表就能直接闭眼跑了。

OpenCode的技能ID是由文件路径决定的,frontmatter里的`name`只是个显示名。打个比方,如果你的文件路径是`.claude/skills/review-code/SKILL.md`,那它对应的ID就是`review-code`。

我建议你先挑一个没有写入副作用的小技能,在提示词里用`@review-code`这样带目录名的方式明确要求加载。

加载之后先别急着干活,让它先复述一遍这份技能的目标,还有打算读取哪些参考文件,你拿着跟自己写的内容对照确认一下,没问题了再去试实际动作。

为啥要多这一嘴呢?

因为OpenCode文档里说了,支持文件不会自动全部装进上下文,得由模型按指令去读取。而且Claude Code官方也把动态上下文注入、子代理执行列为了它自己的技能扩展功能。能把原文件读进新工具,和执行环境完全匹配,这其实是先后两步。文件认出来了,里面写的工具名、脚本运行环境和授权,还是得借着这一步逐项核对清楚。

4、万一列表里没看见,按这几条排雷

要是你在可用列表里没找着自己的技能,也别慌,顺着官方文档给的排查项一个个看。

先看文件名是不是准准地叫`SKILL.md`。再看里面有没有写`description`,因为OpenCode在可用列表里的展示需要`description`,没写的话它是不会在可用列表里露面的。接着确认你调用的时候写的是目录ID还是显示名,有没有不小心被同ID的新目录给覆盖了,以及技能权限是不是被设成了拒绝或者需要确认。

说到底,工具换来换去,我们真正要保住的,其实是自己花心思攒下来的那套做事说明。

至于那些依赖某个工具专属能力的部分,后面看着新工具的文档单独去适配就好了。今天真不用一口气把所有流程全部重做一遍,去挑一个你最常用的小技能,先把第一步跑通。

出处(3)
  1. 本地Skills与工作流迁移经验帖 · X 开发者经验帖
  2. Extend Claude with skills · Anthropic
  3. Skills — Discovery, Loading and Troubleshooting · OpenCode

内容有误?告诉我们,核实后会更正,并在这里写明改了什么。

回复

还没有人回复,来说第一句。