7 款最佳 OpenCode 技能,为你的 AI 编程工作流加速(2026)

对于希望在不被厂商锁定的情况下拥有完整智能体式编码能力的开发者来说,OpenCode 已成为首选的终端智能体。它可以运行任何 LLM 提供方,从 Claude 到 Kimi,再到通过 Ollama 运行的本地模型,而这种与模型无关的设计,正是围绕它的技能生态得以蓬勃发展的原因。
正是 skill 让 OpenCode 从一个快速的代码生成器变成真正能按你的方式工作的工具。你无需每次都重新讲解你的规划流程、你的会话习惯或你的网络调研需求,只要定义一次,OpenCode 就会自动识别并采用。
本指南涵盖当下值得安装的 7 款最佳 OpenCode 技能:规划、会话交接、实时网络调研、代码库理解、文档编写、Token 效率,以及完整的多智能体工作流。你还将获得真实的安装命令、配置细节,以及展示这些技能如何串联协作的生产工作流,包括可靠的代理基础设施在其中所扮演的角色。
什么是 OpenCode 技能?
一个 OpenCode 技能就是一个文件夹,其中包含一个 SKILL.md 文件。这就是全部规范。
该文件以 YAML frontmatter 开头(名称 和 描述 是必需的),后面跟着智能体在技能激活时会读取的 markdown 指令。
OpenCode 提供了一个原生的 技能 工具给模型。在会话开始时,它会扫描每个已安装的技能,只读取名称和描述,每个大约 100 个 token。当你交给它一个任务时,它会检查列表并调用 skill({ name: “…” }) 在任何匹配的内容上。完整的指令只有在那时才会加载。
这种渐进式加载正是其中的关键所在。你可以安装数十个技能,而对那些不适用的技能永远无需付出任何 token 成本。
OpenCode 会在六个位置查找技能:
| 适用范围 | Path | Convention |
| 项目 | .opencode/skills/ | OpenCode 原生 |
| 项目 | .claude/skills/ | 兼容 Claude Code |
| 项目 | .agents/skills/ | Agent Skills 开放标准 |
| 全球 | ~/.config/opencode/skills/ | OpenCode 原生用户目录 |
| 全球 | ~/.claude/skills/ | 兼容 Claude Code |
| 全球 | ~/.agents/skills/ | Agent Skills 开放标准 |
全局路径是 ~/.config/opencode/skills/,而非 ~/.opencode/skills/.
这也是为什么一个为 Claude Code 构建的技能在 OpenCode 中同样可以直接使用。相同的 SKILL.md 格式相同,同一开放标准,无需转换。
我们如何挑选这些技能
并非 GitHub 上的每个技能都值得占用你的上下文预算。
它们能够入选,依据的是:
- 真正的落地采用。 GitHub star 数、安装量和社区讨论,而不仅仅是一份精美的 README。
- 具体的触发描述。 一个写着“帮助提升生产力”的技能无法可靠地触发。而一个写着“当用户请求抓取页面或搜索网页时使用”的技能则可以。
- Maintenance. 近期的提交、活跃的 issue,以及一位会响应的维护者。
- 跨 agent 兼容性。 无需修改即可在 OpenCode、Claude Code 和 Codex 中运行的技能,得分高于仅适用于单一框架的工具。
- 实际应用价值。 这是否解决了开发者真正会遇到的问题,还是只是个新奇的玩意儿。
你应该先安装哪一项技能?
如果你刚接触 OpenCode 技能,不要一次性安装全部七个。这里有一份快速决策指南:
| 你的处境 | 先安装这个 |
| 你在构建过程中不断纠正错误的假设 | Grill Me |
| 你的会话总是因上下文上限而中断 | 交接 |
| OpenCode 看不到最新的文档或实时页面 | Firecrawl |
| 你被丢进一个陌生的代码库 | 理解一切 |
| 你生成的文档读起来就像是 AI 写的(确实是) | Stop Slop |
| 你的 API 账单比应有的水平更高 | Caveman |
| 你想要一条从规划到合并的完整流水线 | Obra Superpowers |
按类别划分的最佳 OpenCode 技能
与其把这 7 项从 1 排到 7,不如关注真正重要的一点:每项技能各自最擅长哪种任务。
1. 最佳规划 skill:Grill Me
它的作用: 在 OpenCode 写下一行代码之前,它会就一个计划的每一个分支对你进行不厌其烦的追问。它会遍历决策树,逐一解决依赖关系,并为每个问题给出推荐答案,让你只需做出回应,而不会陷入停滞。
最适合: 功能规格、架构决策,以及任何看起来比实际更扎实可靠的方案。
优点:
- 在假设演变成 bug 之前就将其显露出来
- 推荐答案让会话持续推进,而不是陷入停滞
- 当问题可以通过代码库解答时,优先读取代码库
缺点:
- 需要一个真正可执行的计划。“我想构建 X”太过含糊
- 设计上是开放式的,而非固定的清单
示例提示词:
2. 最佳会话管理 skill:Handoff
作用:将你当前的 OpenCode 会话压缩成一份结构化的 markdown 文档,让你可以在全新会话中继续工作,或将工作完全交给另一个 agent。
接近压缩上限的会话不只是会变慢。超过大约 12 万 token 后,注意力关联会变得紧张,质量随之下降。Handoff 让你在这种情况发生之前就干净地退出。
最适合: 长会话接近上下文上限、将实现工作委托给另一个模型,或将工作拆分到多个并行的 worktree 中。
优点:
- 你可以精确掌控下一次会话需要了解的内容
- 跨 agent 工作:在一个 harness 中规划,在另一个中实现
- 与 OpenCode 的模型无关式配置自然契合,把交接任务路由到最适合下一步的任何模型
缺点:
- 默认保存到你的操作系统临时目录,如果想保留就将其提交
- 对于简短、单线程的会话则用处不大
示例提示词:
3. 最佳网络研究技能:Firecrawl
它的作用: 为 OpenCode 提供它默认不具备的实时网络上下文:搜索、抓取、爬取、绘制站点地图以及浏览器交互。
OpenCode 出厂时不具备实时互联网访问能力。底层模型在训练期间学到的内容,就是它所知道的一切。近期的文档、库更新日志,以及训练之后发布的页面,在你为它提供获取途径之前,都是不可见的。
Firecrawl CLI 是专为智能体打造的。结果会写入文件,而不是刷屏占满上下文窗口;JavaScript 密集的页面会自动渲染;命令也直接对应智能体的思考方式:用 search 查找来源、用 scrape 读取单个页面、用 crawl 为整个网站建立索引、用 map 发现 URL、用 interact 控制实时浏览器。
最适合: 文档查阅、竞品调研、变更日志监控,以及任何答案不在模型训练数据中的任务。
优点:
- 在抓取基准测试中内容召回率超过 80%
- 无需额外配置即可处理 JavaScript 渲染
- 基于文件的输出能让上下文窗口保持整洁
缺点:
- 免费套餐足以用于测试,但生产工作负载需要付费方案
- 在繁重的爬取任务中额度消耗很快
示例提示词:
代理在其中的作用:Firecrawl 解决了抓取以及 自动化 层。它并不能解决 IP 信誉问题。如果你在大规模爬取、访问受地域限制的页面,或者对一个会对浏览器会话进行指纹识别的网站运行 interact 命令,你最终会因为单一的源 IP 而遇到速率限制或 CAPTCHA。这是代理的问题,而不是 Firecrawl 的问题,而这正是 NodeMaven 会成为技术栈的一部分,而不是一件单独要操心的事。将 Firecrawl 的请求通过 NodeMaven 的 住宅 IP 能让抓取分散到真实用户地址上,而不是集中在单一被标记的数据中心 IP 段。更多内容见下文的生产工作流部分。
4. 最佳代码理解技能:Understand Anything
它的作用: 将代码库转化为一个交互式知识图谱。由一系列专门的子代理(project-scanner、file-analyzer、architecture-analyzer、tour-builder、graph-reviewer、domain-analyzer)组成的流水线,为每个文件、函数和依赖项构建通俗易懂的英文摘要,然后通过模糊搜索、语义搜索和引导式导览将其呈现出来。
它将 Tree-sitter 的确定性结构解析与 LLM 生成的摘要相结合,因此该图谱是建立在实际代码之上,而不是模型对该仓库大概功能的猜测。
最适合: 被丢进一个陌生的代码库、进行上手熟悉,或在做出有风险的改动前检查其影响范围。
优点:
- 首次运行之后便是增量更新,保持更新的成本很低
- /understand-diff 在你提交之前展示你的更改实际影响到什么
- 首轮分析可以在廉价或本地模型上运行,然后切换到前沿模型进行交互式查询
缺点:
- 在大型代码库上首次运行时,分析每个文件会消耗大量 token
- 安装后需要重启以注册命令
示例提示词:
5. 最佳文档技能:Stop Slop
它的作用: 去除那些让 AI 写作一眼就能被识破的痕迹:啰嗦的开场铺垫、商业行话、"Not X. But Y." 式的节奏、刻意的碎句,以及做作的修辞设置。它从五个维度(直接性、节奏、可信度、真实性、信息密度)以 1 到 10 分对文字打分,并对总分低于 50 分中 35 分的内容进行修改。
这不是一个代码类技能。它针对的是代理为供人阅读而编写的任何内容:README、提交信息、更新日志、文档。
最适合: 任何需要交付成果、而不仅仅是能通过编译的写作任务。
优点:
- 具体的评分标准胜过含糊的“让它听起来不那么像 AI”的指令
- 参考文件也能教你在自己的写作中识别出这些套路
- 在 Claude Code、Codex 和 OpenCode 中运作方式完全相同
缺点:
- 并非为代码而设计,仅适用于文字散文
- 这套评分标准带有鲜明的主张。如果你的固有写作风格本身就依赖对比结构,它就会与你产生冲突
示例提示词:
6. 最佳 token 优化 skill:Caveman
它的作用: 从每条回复中剥离叙述、废话和客套话,同时逐字节完整保留技术事实和代码块。平均输出 token 减少约 65%,视任务不同,范围在 22% 到 87% 之间。
一段常规的解释: “你的组件之所以会重新渲染,很可能是因为你在每个渲染周期都创建了一个新的对象引用。我建议使用 useMemo 来对该对象进行记忆化。”换成穴居人模式:“每次渲染都创建新对象引用。内联对象属性 = 新引用 = 重新渲染。用 useMemo 包起来。”同样的修复方案,用词只有一小部分。
最适合: 输出 token 不断累积的长会话,或任何你只想要答案、不想要周围叙述的工作流程。
优点:
- 配套的 /caveman-compress 会压缩你的 AGENTS.md 减少约 46%,同时也削减了此后每次会话的输入 token
- 可在 30 多种代理中使用,而不仅仅是 OpenCode
- 包含提交信息和 PR 审查模式,采用同样的压缩方式
缺点:
- 其本身每轮大约会增加 1-1.5k 输入 token,因此在非常简短的交互中可能会得不偿失
- OpenCode 集成比 Claude Code 版本更新,实战检验也更少
示例提示词:
7. 最佳完整工作流:Obra Superpowers
它的作用: 目前最完整的多智能体开发框架,以兼容 OpenCode 的技能集形式提供。它附带一个插件,会在每个会话中注入一条“1% 规则”(只要有一丝可能某项技能适用,就使用它),外加一个完整的技能库,涵盖头脑风暴、git worktree、实现规划、子智能体驱动的执行、TDD、系统化调试,以及在标记任何任务完成前的验证。
OpenCode 在这里是一等目标。该仓库自带一个专门的 .opencode/ 目录,包含针对特定 harness 的安装说明。
最适合: 适用于需求明确、你希望系统化执行而非探索性原型开发的项目。
优点:
- 子智能体驱动的方法很契合 OpenCode 的模型灵活性,可将子智能体路由到更便宜的模型,而把前沿模型留给设计评审
- 强制推行 TDD 意味着在编写代码之前测试就已存在
- 目前生态系统中星标数最高的技能仓库
缺点:
- 引导程序每次会话都会运行,增加了固定的 token 成本
- 带有主观倾向的方法论(TDD、YAGNI)并不适合每一种工作流程
- 遥测功能默认开启,可通过以下方式禁用 SUPERPOWERS_DISABLE_TELEMETRY=1
示例提示词:
值得一起安装的技能组合
单个技能解决单个问题。少数几种搭配组合的价值远超各部分之和。
| Combination | 它为何有效 |
| Grill Me + Obra Superpowers | Grill Me 负责厘清方案,Superpowers 则以 TDD 和子代理评审来执行它。 |
| Firecrawl + NodeMaven | Firecrawl 负责抓取,NodeMaven 确保这种大规模抓取不会被拦截。 |
| Handoff + Caveman | 压缩会话文档,然后让今后的每次会话都保持精简的输出 Token。 |
| Understand Anything + Grill Me | 先理解代码库,然后拿实际存在的情况来审视你的方案,而不是基于假设。 |
| Stop Slop +任何文档生成任务 | 将它作为最后一道工序,应用于智能体为人类阅读而编写的任何内容。 |
如何安装 OpenCode 技能
并不存在一个统一的 OpenCode 技能安装 命令。 大多数技能采用以下三种模式之一:
- 技能 CLI: npx skills add [repo] 从 GitHub 拉取并将该技能放入 .agents/skills/ 或你指定的某个目录。
- 一个通过 curl 管道执行的安装脚本: 对于带有配套二进制文件或跨智能体检测的技能很常见,例如 Firecrawl 和 Caveman。
- 手动执行 git clone: 将技能文件夹直接复制到六个受支持的目录之一。
有些技能,比如 Superpowers,会附带针对特定 harness 的安装脚本,你只需将其作为提示词粘贴,并让 OpenCode 自行运行。
安装完成后,请重启 OpenCode,让它重新扫描技能目录。
如何配置 OpenCode 技能
每个 SKILL.md 以 YAML frontmatter 开头。 仅识别以下字段:
| 字段 | 必需 | Notes |
| 名称 | 是 | 小写、以连字符分隔,且必须与文件夹名称一致 |
| 描述 | 是 | 1–1,024 个字符,需足够具体,以便 agent 能正确路由 |
| 许可证 | 否 | |
| 兼容性 | 否 | |
| 元数据 | 否 | 字符串到字符串的映射 |
name 字段必须符合以下格式: 小写字母数字字符,配以单个连字符,开头和结尾不得有连字符,也不得出现双连字符。
权限的配置位置在 opencode.json 低于 permission.skill:
这里支持使用通配符。 internal-* 会匹配任何以该前缀开头的技能。deny 则会将某个技能对智能体完全隐藏。 询问 会在加载前提示你确认。按智能体的覆盖设置让同一项目中的不同智能体看到不同的技能集,而将 tools: { skill: false } 设置为该智能体,则会为其完全禁用技能系统。
创建你自己的 OpenCode 技能
最能节省时间的 skill,往往是你自己编写的那些,它们编码的是你团队特定的流程,而非通用流程。
结构:
最佳实践:
- 保持 SKILL.md 精简。将边缘情况和长上下文放入一个仅按需加载的参考文件中。
- 把描述写成路由规则。写“当用户要求执行 X、Y 或 Z 时使用”,而不是“有助于处理任务”。
- 一个 skill,只做一件事。一个试图涵盖五种工作流的 skill 会在错误的时机被触发。
- 把确定性的工作放进脚本里。解析、验证和排序应交给代码处理,而不是依赖模型的判断。
- 要展示,而不只是讲述。三个实战示例胜过二十条要点式规则。
最简示例:
推荐的 OpenCode 工作流
单个技能各有用处。而将它们串联起来,便能覆盖完整的生产任务。以下是三个真实的组合示例。
竞品监控

按计划定时运行它,你就能获得持续的竞争对手监控,而不是一次性的抓取。
浏览器自动化

适用于测试地域限制背后的流程,或针对那些对真实用户流量与被标记的数据中心 IP 表现不同的页面进行 QA。
AI 研究流水线

一旦你越过了那些玩具级的示例,大多数偏重研究的 OpenCode 会话就是这样的形态:采集、清洗、综合。
为什么生产环境的工作流需要代理
像 Firecrawl 这样的技能解决了能力上的缺口。OpenCode 现在能够访问网络了。但它们没有解决的是,当网络反过来推挡时会发生什么。
- 速率限制。 对大多数服务器而言,单个 IP 发出数百个请求看起来就像一次攻击,无论你的爬取逻辑多么规矩。
- CAPTCHA 拦截墙。 反机器人系统会将 IP 信誉与浏览器行为一同进行指纹识别。一个没有请求历史的数据中心 IP 会触发验证挑战,而住宅 IP 则很少会遇到这种情况。
- IP 信誉度。 一旦某个 IP 被标记,经由它路由的所有流量都会继承这一信誉。共享的数据中心 IP 段在抓取负载下会很快被封禁。
- Geo-testing. 如果你的代理需要验证某个页面在特定国家、城市甚至 ZIP 编码下如何呈现,你就需要真正位于当地的 IP。单一的源 IP 无法伪造这一点。
- 大规模浏览器自动化。 像 Playwright 和 Puppeteer 这样的工具可以完美模拟人类操作,但如果每个会话都源自同一个 IP 段,那么无论点击模式多么逼真,指纹都会暴露它。
正是在这里,住宅代理层不再是可有可无的基础设施,而开始成为技能栈本身的一部分。

NodeMaven 在 190+ 个国家提供住宅和移动 IP 资源池,来自 实时质量过滤 在赋值之前。
地理定位可精确到 ZIP 邮编级别, 如果你的 OpenCode 智能体正在检查本地化定价或特定区域的搜索结果,这一点就很重要。
这一切都不会取代 Firecrawl、Playwright 或上文介绍的那些技能。它位于它们之下。技能赋予 OpenCode 采取行动的能力;而代理层则为这些行动在另一端提供一个干净、可信的身份。
结论
最好的 OpenCode 配置不是单一的一项 skill,而是一整套技能栈,涵盖规划(Grill Me)、会话延续(Handoff)、实时网络访问(Firecrawl)、代码库理解(Understand Anything)、写作质量(Stop Slop)、token 效率(Caveman)以及完整的工作流编排(Obra Superpowers),所有这些协同运作。
Skills 赋予 OpenCode 各项能力。而决定这些能力能否在生产环境中站得住脚的,是其底层的基础设施,包括你的 agent 究竟能多可靠地访问它想要读取的网络。对于任何依赖 Firecrawl、Playwright 或大规模浏览器自动化的工作流,像 NodeMaven 这样的住宅代理层,正是保证这种访问在最初几次请求之后仍能持续工作的关键。
先从这份清单里选一到两个 skill 开始。等你遇到它们各自能解决的具体问题时,再把其余的加进来。



