最近技术社区里 opencode 这个名字出现频率高得有点夸张。如果你平时用 Claude Code 或者 Codex 写代码,应该已经刷到过"开源平替""免费模型""VSCode 插件"这些词了。我上手 opencode 大概一个多月,从最初的命令行工具用到现在 VSCode、IDEA 双端都接着跑,中间踩过的坑不少,收获也不少。这篇就把我从安装配置、日常使用到排错的经验完整梳理一遍,给还在观望的朋友一个参考。
先给结论:opencode 是一个开源免费的终端 AI 编程助手,主要对标 Claude Code,但它不锁模型——Claude、GPT、Gemini、本地模型都能接。它适合这几类人:一是觉得官方订阅贵、想自己带 Key 按量付费甚至用免费模型的开发者;二是想在命令行和 IDE 里共用同一套 AI 工作流的人;三是喜欢折腾、愿意自己配 Skills 和插件扩展能力的玩家。如果你只是偶尔让 AI 写个函数,那没必要上这种重型工具;但如果你天天泡在代码里,这个工具值得认真试一次。
1. opencode 的定位:它不是又一个命令行玩具
1.1 终端 AI Agent 究竟解决了什么问题
在聊 opencode 之前,得先弄清楚"终端 AI Agent"这类工具和普通聊天机器人到底差在哪。以前我们让 AI 帮忙写代码,大多是打开网页版对话,把代码片段粘进去,再把答案抄回来,来回折腾很麻烦。而终端 Agent 是让 AI 直接进驻你的项目目录,它能读文件、能搜代码、能改代码、能执行命令。你只需要告诉它"这个接口偶尔超时,帮我查一下原因",它会自己翻项目、定位问题、给出修改方案,甚至直接改完再帮你跑一遍测试。
opencode 就是这类工具里做得比较完整的一个。启动后它是一个交互式终端界面,左侧是会话列表,右侧是对话区,下面有输入框。你输入自然语言指令,它以 agent 的形式一步步执行:读取相关文件、分析、生成代码、写入文件、执行命令。每个步骤都会展示给你看,你可以在任何一步打断它、纠正方向。这种"透明的自主执行"是它和普通聊天工具体验上最本质的区别。
1.2 和 Claude Code、Codex 的直接对比
很多人问 opencode 与 Claude Code、Codex 到底怎么选,我直接放一张对比表:
| 对比维度 | opencode | Claude Code | Codex |
|---|---|---|---|
| 是否开源 | 开源 | 闭源 | 闭源 |
| 模型绑定 | 多模型自由切换 | 主要绑定 Claude 系列 | OpenAI 系 |
| 本地模型 | 支持(Ollama 等) | 不支持 | 不支持 |
| IDE 集成 | VSCode + JetBrains 插件 | 支持有限 | 官方内置 |
| 核心交互 | TUI + Agent 模式 | TUI + Agent 模式 | CLI + 面板 |
| 付费方式 | 自带 Key 按量付费 | 订阅制 | 订阅或按量 |
补充一点背景:Claude Code 出自 Anthropic,Codex 出自 OpenAI,而 opencode 是开源社区项目,由做 Serverless 框架的 SST 团队主导维护。我的体感是,如果只在一个模型生态里深度绑定,官方工具确实顺滑;但如果你不想被模型厂商锁死,今天用 Claude、明天想试 Gemini、后天想跑本地模型,opencode 这种开放架构就舒服很多。
1.3 我为什么最终选它
终端编程工具其实不少,Aider、Continue、Cline 都有人用。我 Pick opencode 的核心原因有三个:第一,TUI 交互做得好,比 Aider 那种纯文本输入体验高一个档次;第二,Skills 机制成熟,能自己扩展 AI 的工作流程;第三,它有 LSP 集成和 Playwright 集成,这两个是能实打实提升效率的功能。当然它也有短板,比如大项目下内存占用偏高、部分功能依赖插件生态,后面我会逐一说到,免得你以为我在带货。
2. 安装与基础配置
2.1 环境准备:先检查 Node.js
opencode 依赖 Node.js 运行时,官方建议 20 以上版本,我自己用 22 LTS 很稳。安装前先检查环境:
node -v能输出 v20 或 v22 开头的版本就没问题。没有 Node 就去官网装 LTS 版本,这一步没有技术含量。有一点值得提醒:opencode 是纯本地 CLI 工具,代码文件都留在本地,只有调用模型接口时会把相关代码片段发送给对应的模型服务商。敏感项目请务必先确认模型服务商的隐私条款,这个习惯比选什么工具都重要。
2.2 三种安装方式对比
opencode 的安装方式主要三种,按推荐顺序排:
第一种,npm 全局安装,最通用,Windows 和 macOS 都适用:
npm install -g opencode-ai装完输入 opencode --version 验证。
第二种,macOS 用户用 Homebrew,干净好管理:
brew install sst/opencode/opencode第三种,Linux/macOS 用官方脚本一条命令装:
curl -fsSL https://opencode.ai/install | bashWindows 用户我实测下来 npm 方式最省心。这里有个经典报错,搜 opencode 相关关键词时高频出现:"无法将"opencode"项识别为 cmdlet、函数、脚本文件或可运行程序的名称"。这个错误 90% 是两类原因:一是 Node/npm 安装时没有把可执行路径写进系统 PATH;二是 npm 全局包目录不在 PATH 里。定位方法很直接:
npm config get prefix把输出目录下的可执行文件路径加进系统环境变量 PATH,然后新开一个终端窗口再试。注意一定是新开窗口,PowerShell 不会自动刷新环境变量。
2.3 首次启动与模型配置
安装完成后,进到项目目录直接运行 opencode 就会进入交互界面。第一次启动它会提示配置模型,最简单的方式是用 opencode auth login 登录某个提供商授权。除了登录,也可以直接改配置文件。配置文件在 ~/.config/opencode/ 目录(Windows 在 %USERPROFILE%.config\opencode\),核心文件是 opencode.json。一个最简配置长这样:
{ "$schema": "https://opencode.ai/config.json", "provider": { "anthropic": { "models": { "claude-sonnet": { "name": "Claude Sonnet" } } } }, "model": "claude-sonnet" }配置好后启动 opencode 就能对话。它第一次跑会检查当前目录的 git 状态,如果仓库还没初始化会提示你先 git init。这个设计不是多此一举,因为后面 AI 改完代码要靠 git diff 来展示改动,也需要靠版本控制来回退,所以强烈建议在 git 仓库里使用。
3. 核心功能实战
3.1 Agent 模式与常用斜杠命令
进入 opencode 的 TUI 后,输入框附近有模式切换。核心是三种模式:
- Code 模式:让 AI 直接改代码并写入文件;
- Plan 模式:只做分析和设计,输出修改方案但不动代码;
- Architect 模式:偏架构层面的思考,适合设计阶段。
我实际的使用习惯是:小改动直接 Code 模式,大功能先 Plan 模式让它出方案,我确认逻辑没问题再切到 Code 模式执行。这个工作流能有效避免 AI 上来就乱改,尤其适合接手不熟悉的项目。
平时最常用的几个斜杠命令:
- /init:让 AI 分析项目结构并生成 opencode.md 项目说明文件;
- /plan:进入计划模式;
- /code:进入代码模式;
- /undo:回退上一步 AI 做的修改;
- /share:把当前会话打包成可分享的 Markdown。
其中 /init 我建议每个项目第一次跑都要执行。生成的 opencode.md 会作为后续会话的项目上下文,AI 对整个项目的理解会明显提升一个台阶。我试过跳过这步直接问问题,AI 经常答非所问,有了项目说明之后准确率高了一大截。
3.2 Skills:把 AI 调教成"懂你项目的协作者"
Skills 是 opencode 非常有特色的扩展机制。简单说,你可以为 AI 定义一组"技能包",包含特定的提示词和执行流程,AI 在遇到相关任务时会自动加载。社区里有人拿它和 Claude 的 skills 目录对比,思路确实相近。
一个 skill 就是一个包含 SKILL.md 的目录,放到项目的 .opencode/skills 或全局的 ~/.config/opencode/skills 下。SKILL.md 里要写清楚这个技能解决什么问题、适用场景、执行步骤。我的团队就配了一个"代码审查"skill,里面定义了顺序:先看 diff、再查调用链、再看测试覆盖,最后按严重程度输出问题清单。之后提交 PR 前我只需要说"用代码审查 skill 过一遍",输出质量比临时口头吩咐稳定得多。
写 SKILL.md 有两个心得:一是步骤要足够细,AI 对模糊的描述会自由发挥;二是每个 skill 的边界要定义清楚,不然它会在不相关的任务里强行套用。这个机制的上限很高,值得花时间打磨。
3.3 LSP 集成:AI 能真正"看懂"代码结构
LSP(Language Server Protocol)是编辑器里代码智能感知通用的协议,opencode 把 LSP 接进了 Agent。这意味着 AI 不只是靠字符串搜索找代码,它还能拿到符号定义、类型信息、引用关系这些结构化数据。
这个能力在重构场景里价值巨大。比如你让 AI 重构一个函数,它能通过 LSP 找到所有调用方,评估影响范围,而不是像普通方式那样在代码库里靠关键词瞎猜。opencode 对 TypeScript、Python、Rust 等主流语言基本是开箱即用,一般不用专门配置。
代价也明显:LSP 进程会吃掉不少内存,超大项目里偶尔会卡顿。如果遇到内存紧张,可以在配置里关掉 LSP 退化为普通搜索模式,代价是 AI 的定位精度会下降。我的建议是机器配置够就开着,利大于弊。
3.4 Playwright 集成:让 AI 自己开浏览器找 bug
这是我最想单独讲的功能。opencode 集成了 Playwright,你可以让 AI 直接操控真实浏览器去复现前端 bug。这比让 AI 对着代码猜"可能是样式问题"靠谱得多。
我之前排查一个只有特定操作路径才会触发的样式错乱,给 AI 的指令是:"用 Playwright 启动本地开发服务器,登录测试账号,按这个路径点击,截图看看样式是否错乱。"结果它真的自己启动浏览器、一步步操作、回传截图,然后根据截图表现继续定位原因。这种"看得见实况"的排查方式,在纯文本对话的 AI 工具里完全做不到。
要跑通这套,需要先安装 Playwright 的浏览器内核,首次使用时会有提示。命令要尽量具体:说清楚入口地址、操作步骤、期望结果,别只说"测一下页面"这种模糊指令。
4. IDE 插件与生态搭配
4.1 VSCode 插件:编辑器里直接接着聊
opencode 在 VSCode 扩展市场直接搜 opencode 就能装。装完后左侧栏会出现 opencode 面板,可以在编辑器里直接新建会话、查看 diff、把选中的代码发给 AI。这个插件不是网页套壳,它和本地 CLI 共享配置和会话历史。我在终端里开了一半的会话,切到 VSCode 里还能接着继续,这个体验做得比较到位。
具体用法:选中代码 → 右键 "Ask opencode" → AI 给出建议,确认后可以直接应用到文件。插件里也支持 /init、/plan 这些斜杠命令,编辑器里能完成大部分操作,不必来回切窗口。
4.2 JetBrains 系插件:IDEA、GoLand 都能用
JetBrains 系的用户也有方案,IDEA、GoLand 这些 IDE 可以安装 opencode 插件,配置方式一样,复用 ~/.config/opencode 下的配置。我主力用的是 GoLand,实际体验下来插件本身没有大问题,就是启动时内存占用会增加一截。这里有个实际提醒:如果你同时跑着终端 TUI 和 IDE 插件,两边是独立会话,会各自消耗模型额度。别以为只开一个就省钱,实际上下两个会话都在跑,账单是两份。
4.3 周边工具:oh-my-claudecode 与配置切换工具
opencode 的周边生态长得很快,社区里经常提到的有 oh-my-claudecode 和 CC Switch 这类配置管理工具。oh-my-claudecode 收集了一批现成的 skills 和配置模板,装完可以直接拿到别人优化过的提示词库,适合不想从头写 SKILL.md 的人。CC Switch 这类工具主要解决"多套 API 配置之间快速切换"的痛点,比如你有几套不同用途的 Key,手动改配置文件很烦,用它点一下就能换。
用周边工具有个小忠告:安装前看看项目最近有没有更新。opencode 迭代很快,老旧插件在新版本上偶尔会不兼容,出了问题先考虑是不是周边工具版本太老。
5. 模型选型与成本控制
5.1 自带 Key 按量付费
opencode 本身免费,花钱的部分在模型 API。最主流的方式是到 Anthropic、OpenAI 或 Google 官方平台申请 API Key,按 token 用量付费。好处是灵活,用多少付多少,不用的月份不产生费用;坏处是重度使用时账单涨得很快,尤其用 Claude 这种强模型一天写几千行代码,费用可能不低。
我个人的省钱方法是"模型分级":日常补注释、写小需求、改样式用便宜的模型,甚至免费模型;只有做架构设计、处理深度 bug、大范围重构时才切到顶级模型。opencode 支持在对话中用 /model 随时切换,这个习惯长期坚持能省下不少钱。
5.2 免费模型和本地模型的真实体验
关于"opencode 能不能白嫖",答案是能。它支持接入一些免费模型端点,也支持通过 Ollama 跑本地模型。但我的真实体验是:免费模型拿来对话、写草稿、解释代码还可以,拿来做深度重构、精确修 bug 就会比较吃力,因为开源免费模型的指令遵循能力跟顶级闭源模型有明显差距。
本地模型的优势是数据不出机器,对敏感项目很友好,但需要一张不错的显卡,跑大一点的模型才能用,效果和云端顶级模型也还有距离。如果你不是对隐私有硬性要求,我更建议先用官方 API 的按量付费模式跑通流程,再决定是否上本地模型。
5.3 第三方订阅套餐:可以当备用,别当主线
社区里还有一种做法是购买第三方聚合订阅服务,也就是大家常说的 go 套餐这类付费服务。这类服务的好处是便宜,一个套餐能同时用多个模型;缺点是稳定性没有保障,服务提供方如果变更规则,你配置好的东西可能突然就不能用了,响应速度也比官方接口差一截。
我的观点是:这类服务当备用可以,当主线依赖不建议,更不要把敏感业务代码发给未经官方验证的服务商。模型服务这块还有个小知识点:有些模型会有地区限制,使用中可能遇到 "this model is not available in your country" 的提示。这是模型提供方的策略限制,不是 opencode 本身的问题。解决办法就是检查当前配置的模型在你所在地区是否可用,换一个可用的模型或者改用自己的可用服务即可,合规使用永远是第一位的。
6. 常见问题与排查实录
6.1 高频报错速查表
下面是这段时间我自己遇到和帮朋友排查过的高频问题,按报错信息、常见原因、解决办法整理成表,方便直接对照:
| 报错/现象 | 常见原因 | 解决办法 |
|---|---|---|
| 无法将"opencode"项识别为 cmdlet | npm 全局目录不在 PATH | 将 npm prefix 目录加入 PATH,重开终端 |
| opencode: command not found | 安装不完整或版本过旧 | 重装最新版,或用 npx opencode-ai 临时运行 |
| unexpected server error. check server logs | 网络波动或 API 端点不稳定 | 检查网络、确认端点可达、稍后重试 |
| this model is not available in your country | 模型提供方地区限制 | 切换到当前地区可用的模型或服务 |
| TUI 启动卡住或白屏 | 终端兼容性或版本问题 | 升级终端模拟器,换用支持 Unicode 的字体 |
| LSP 功能不生效 | 缺少对应语言服务器 | 安装对应语言的 LSP server,检查配置 |
| 会话中 AI 频繁答非所问 | 缺少项目上下文说明 | 先跑 /init 生成项目说明文件 |
最容易被忽略的一条是版本问题。opencode 迭代速度很快,很多看起来诡异的 bug 在新版本里已经静默修复。遇到问题第一件事先 opencode upgrade,我有一回 TUI 白屏,折腾了半天终端设置,最后发现就是老版本在特定终端下的渲染 bug,升级完立刻正常。
6.2 排查思路:网络、端点、配额三连查
opencode 使用中遇到 "unexpected server error" 这种信息量极低的报错时,我的排查顺序是固定的:先确认本机网络连通性正常,再测配置的 API 端点是否能访问,最后查 API Key 配额是否用尽。有好几次我以为是配置问题,结果只是 Key 的额度耗尽,换一个 Key 马上恢复。
如果配置的是自建模型服务或本地模型,排查思路完全不同:先看服务进程是否存活,再看日志里有没有异常堆栈,最后确认配置文件里填写的接口地址和模型名是否完全正确。模型名写错是特别容易犯的低级错误,服务端通常只回一个含糊的 404 或者 unavailable,不仔细看日志根本发现不了。
6.3 新手第一次跑通 opencode 的推荐步骤
最后给第一次上手的朋友一套我在实践中总结的流程,按这个顺序能少踩很多坑:
- 在项目目录先配好模型 Key,确认 opencode --version 能跑通;
- 启动 opencode,第一件事执行 /init 生成项目说明文件;
- 先用 Plan 模式做一两个小任务,观察 AI 的分析过程;
- 确认它足够靠谱后再切 Code 模式让它动手改;
- 每次改动前确保代码已经提交,方便随时回退;
- 从便宜或免费模型起步,摸清用法之后再决定要不要升级模型。
这套流程最有用的地方是第三步,很多人第一次用就急着让 AI 改代码,结果它改完你不满意,来回折腾反而觉得工具不好用。先让 AI 在 Plan 模式下"说思路",你判断它懂不懂你的项目,再决定要不要放手让它改。
我个人这一段用下来的最深感受是,opencode 这类终端 Agent 真正改变的不只是"让 AI 写代码"这个动作,而是让 AI 变成了项目里一个可以随时对话、随时动手的协作者。它的效果上限很依赖你的输入质量:项目说明文件有没有写、Skills 有没有配、指令给得够不够具体。我踩过的最大的坑就是前期跳过 /init,导致 AI 经常答非所问;补上项目说明之后,体验完全是两个层次。工具选型这件事,别盲目追新,适合你的项目、价格能控制住、你愿意花半小时学它配置的那个,才是最好的。