1. 写在前面:这个叫opencode的命令行工具,正在重新定义“写代码”
最近在技术社区里频繁刷到“opencode”这个词,热度飙得非常快。如果你和我一样是那种每天要在终端里泡好几个小时的老开发,可能已经感觉到,继Claude Code之后,又一款以“AI结对编程”为卖点的命令行工具开始占据大家的讨论区。
先说结论:opencode是一款开源的、终端原生的AI编程代理(Agent)工具。它的核心定位很直白——让你不离开终端,就能完成“看代码、改代码、跑测试、提PR”这一整条日常开发链路。和ChatGPT网页版、Cursor这类编辑器插件形态不同,opencode把AI的“手”直接伸进了你的项目目录里,它能读取你的文件、调用命令行工具、运行测试并基于报错自己修代码。一句话概括:它是你的终端队友,不是一条只会聊天的API管道。
这篇博文的目标读者非常明确:想从Copilot/Cursor迁移到终端派AI工具的开发者,以及已经在用其他CLI Agent但饱受配置折磨、想做横向选择的人。我会从安装配置讲到模型选择,从编辑器的插件联动讲到常见报错的完整排查,全程只讲我实际验证过的东西,不贴官网复读机式的文档翻译。
2. 项目定位拆解:opencode到底做了哪些别人没做好的事
2.1 为什么是终端,而不是又一个IDE插件
过去两年,AI编程工具的形态经历了三次迭代。第一代是IDE插件,像Copilot那样在你打字时补全;第二代是对话面板,像Cursor那样在侧边栏聊天;第三代则是Agent形态——工具不再被动等待你提问,而是主动去读写文件、执行命令、观察结果并迭代修复,这就是Claude Code和opencode所在的位置。
opencode和Claude Code最本质的区别在于两个词:开源与本地化。Claude Code尽管体验很成熟,但它是Anthropic的闭源产品,配置逻辑和服务端策略完全由官方控制。opencode是MIT协议开源的项目,你可以在自己的机器上完整跑起来,可以用任何兼容OpenAI/Anthropic协议的服务商替换默认模型,甚至能通过改配置文件和写自定义技能来把它的行为塑造成完全适合自己团队的那套东西。
从产品形态上看,opencode走的是TUI(Text User Interface)路线——不是简单的聊天式滚动输出,而是类似终端版的VS Code布局:主面板是对话和代码变更,侧栏可以浏览项目文件,快捷键和vim习惯无缝衔接。这一点很多从Neovim转过来的开发者上手就是零成本,因为它基本的按键逻辑就是终端那一套。
2.2 opencode的四个设计关键词
要理解opencode为什么能用起来比同类工具顺手,我把它拆成四个关键词:
会话与共享(Session)。每次和opencode的交互都以会话为单位持久化保存,你可以随时回到任意一次会话继续对话,也可以把会话导出、分享给同事。这看起来不新鲜,但它解决了一个实际问题:Claude Code的会话往往绑定在特定终端环境上,换台机器就找不到了;opencode的会话是独立存储的,配合配置文件可以做到多机同步。
技能(Skills)。这是opencode最有想象力的部分。你可以写Markdown格式的技能文件来教它“遇到什么情况应该怎么做”。比如我写了一个“前端Bug排查”技能,里面明确让它在遇到React渲染错误时先查Event Handler绑定、再查依赖数组,并把每次排查看成一段固定的行动协议。它是在用一种可维护的方式,把你自己多年积累的调试经验喂给Agent,这比在prompt里堆砌指令要系统和可靠得多。
记忆(Memory)。opencode会维护一个多层的记忆体系:有项目级的AGENTS.md文件,记录项目约定;还有工作区的持久记忆文件,积累跨会话的偏好与历史背景。这个设计让模型不会每次对话都“失忆”,项目接手场景下特别有用。
模型无关(Model Agnostic)。你今天可以用Claude模型跑,明天想换DeepSeek,只需改配置,不用改工作流。这种可替代性看起来是细节,实际决定了你究竟是在“为工具打工”还是“让工具为你服务”。
2.3 opencode、Claude Code、Codex CLI到底怎么选
最近社区里最频繁的比较就是这三款:opencode、Claude Code和Codex CLI。我的使用感受如下表:
| 维度 | opencode | Claude Code | Codex CLI |
|---|---|---|---|
| 开源协议 | MIT,完全开源 | 闭源 | 闭源 |
| 模型自由度 | 高,任意兼容API都行 | 限制较严,以自家和Azure为主 | 较高 |
| 会话体验 | 持久化+可共享 | 会话相对封闭 | 简约 |
| 自定义能力 | 高(Skills + Memory + LSP) | 中低 | 中 |
| 终端体验 | TUI全功能,最接近IDE | 老牌,稳定但偏传统 | 偏简洁 |
| 适合人群 | 喜欢折腾、要本地控制的开发者 | 认准Anthropic模型生态的人 | OpenAI/Codex的深度依赖者 |
我的结论是:如果你只打算“偶尔在终端里问问问题”,Claude Code或Codex都够用;但如果你想把AI真正嵌进日常开发流程,特别是要在不同模型间切换、想自定义Agent的行为协议、还想拿到开源社区的红利,opencode目前综合分最高。
3. 安装与首次启动:从零到能跑,含Windows专属踩坑记录
3.1 安装前的环境检查
opencode本身是用Go写的,发布时提供两种安装渠道:包管理器安装和二进制的直接下载。它的安装对系统要求不高,Windows、macOS、主流Linux都支持。但请先确认一件事:你本机的Node.js版本是18及以上,因为部分内置脚本依赖Node运行时,版本太老会导致运行报错。
如果你用的是macOS,直接用Homebrew安装是体验最平滑的方式:
brew install opencode如果你在Windows上,官方推荐的方式是Scoop:
scoop install opencode如果不想引入额外的包管理器,也可以直接去GitHub的Releases页面下载对应平台的二进制包,放进去PATH环境变量下的任意目录就能用。我个人的建议是:能用官方包管理器就用包管理器,原因很简单——后续升级只需要一条命令,不用每次手动覆盖二进制。
3.2 Windows下“无法将opencode项识别为cmdlet”的完整解决方案
这是目前搜索热度最高的一条报错,也是我在Windows平台上第一次安装时当场翻车的错误。先明确一下这条报错的本质:它根本不是你安装有问题,而是Windows PowerShell找不到opencode这个可执行文件。换句话说,二进制文件已经下好了,但系统不知道该去哪里找它。
那为什么明明安装了还能找不到?最常见的原因有三个。
第一个是装完之后没有重新打开终端。PowerShell的环境变量并不是每次命令执行时动态读取的,而是在终端窗口启动时加载的。如果你在一个终端里执行安装命令,装完立刻在同一个窗口里敲opencode,系统仍停留在旧的PATH快照里,自然就报这个错。
第二个原因是二进制解压到了某个文件夹,但这个文件夹本身没有被加进PATH。这种情况多发生在手动下载Release包时,很多人解压完直接在文件管理器里双击确认“文件存在”,却没有把路径加进系统环境变量。Windows至少有三种把目录加进PATH的方式,但最稳的还是去“系统属性 → 环境变量 → Path”里新增目录路径,而不是靠cd到安装目录里去运行。
第三个原因是Scoop安装时只对当前账户生效,而当前PowerShell窗口是以管理员权限开的,用户级PATH在管理员会话下不会正常继承——这种情况颇冷门,我踩过一次后就把所有包安装都改为普通用户窗口了。
整体排查顺序建议是:先关掉所有终端窗口重开一次,再执行where opencode看系统能否定位文件,定位不到再去检查环境变量。如果是命令行新手,直接选择用Scoop安装然后重启终端,基本能绕开绝大多数坑。
3.3 验证安装:一条命令确认opencode是否可用
只要安装成功,可以先在终端输入:
opencode --version如果能输出类似opencode version 0.x.x的版本号,说明二进制的安装已经通过。接下来可以进行一次最小化的“冒烟测试”——在空目录里跑一句话让它帮你生成一个Python脚本,观察它是否能正常调用模型并写文件。这里要注意的是,opencode本身不带模型,你需要先配置一个模型服务商才能在这个步骤走通。对完全新手来说,我建议先用一个免费模型完成整个链路,等跑通了再切换成更强的商用模型。
4. 模型接入与配置:免费模型、go订阅与API-KEY模式的取舍
4.1 三种接入方式对照:不要一上来就冲API
opencode支持多种模型接入方式,这意味着你完全可以选择“先用免费或低成本方案跑通整个Agent流程,觉得顺手了再上付费强模型”。我整理了当前主流的三条路线:
| 接入方式 | 核心做法 | 适合群体 | 成本参考 |
|---|---|---|---|
| 兼容API直连 | 在配置里填服务商的BaseURL和API Key | 已有模型API的开发者 | 按token计费 |
| go订阅 | 购买opencode官方托管服务的订阅,内置多种强模型 | 不想管API账单、想要省事的高频重度用户 | 按月/按量付费 |
| 免费模型 | 配置免费的推理模型端点 | 先把工具跑通、预算是0的学生党/体验党 | 0 |
先说直连模式。opencode本身兼容OpenAI和Anthropic的协议,所以任何提供兼容API的模型服务商都可以接入。配置文件的路径因系统而异,macOS/Linux在~/.config/opencode/opencode.json,Windows在%USERPROFILE%\.config\opencode\opencode.json。核心配置项是provider和model:
{ "$schema": "https://opencode.ai/config.json", "model": "your-model-id", "provider": { "openai": { "baseURL": "https://api.example.com/v1", "apiKey": "your-api-key" } } }再说go订阅。这是opencode官方提供的托管订阅服务,实际用下来的体验相当于“你交一份订阅费,官方帮你把多家模型的API调用和账号管理全包了”。对不熟悉API付费的人来说这是最低门槛的方案,因为不需要去各家模型厂商分别申请API Key,只在一个地方交费就行。需要提醒的是,go订阅属于第三方商业服务,它的模型列表和订阅价格随时可能调整,建议去官网查最新信息,不要轻信二手教程里的“永久免费”说法。
最后是免费模型。opencode社区目前有不少人通过配置免费模型的API端点来跑通整个流程,像某些提供免费额度的推理服务,日常跑一些小任务完全够用。但免费模型的最大短板是上下文长度和推理质量不稳定,你在和它聊复杂代码重构时会明显感觉到“它接不住话”。我个人的建议是:免费方案适合验证opencode工作流是否适合你,但别指望它能顶替收费模型做重型开发。
4.2 用ccswitch管理多模型供应商,别在配置文件里反复横跳
如果你长期实际使用,一定会遇到这样一个尴尬场景:今天用A厂商的API跑项目,明天想切到B厂商的模型;或者同时订阅了好几个服务,今天想比较一下哪个模型在“代码审查”任务上更靠谱。如果每次切换都要手改opencode的JSON配置文件,那就太痛苦了。
这也是为什么社区里很多人在用ccswitch这个命令行工具来做统一管理。ccswitch本质上是一个配置切换器,它把各个工具(opencode、Claude Code、Codex等)的模型配置都收拢到一起,你只需要用命令切换当前生效的供应商,它会自动修改对应工具的配置文件。
ccswitch add opencode my-provider ccswitch use opencode my-provider这样维护的好处是,你不需要去记每个工具各自的配置语法。只要ccswitch的数据完整性没问题,切换模型就变成了一条命令的事。不过要注意,ccswitch是社区工具,它的维护节奏和opencode的主版本升级可能不同步,升级opencode后偶尔会出现“切换失效”的情况——这时候先看ccswitch要不要更新,别急着怀疑配置文件被清空了。
4.3 “This model is not available in your country”报错排查
这个报错在搜索热词里出现了好几次,它的英文原文是:This model is not available in your country。先说人话:这不是opencode本身拦你,也不是你钥匙填错了,而是模型服务商在服务端根据你的IP所在地做出了地区限制——某些模型不对特定国家的用户开放。
排查步骤明确分为三步:
第一步,确认报错发生在哪个环节。是在opencode与模型服务商握手时,还是在对话中途?我遇到的大多数情况发生在握手阶段,说明服务商拒绝了你当前的网络出口IP。
第二步,确认你配置的模型服务商是否真的提供你所在地区的服务。有些厂商的全球服务政策写得很清楚,部分区域需要单独申请白名单,刷几条API调用都没用。
第三步,确认你是否有代理工具在生效。如果你开着代理,代理出口IP所在地区如果不在服务商的开放范围内,也会出现同样的报错。关掉代理或换一个出口地区的节点再重试,往往能直接解决。
需要特别强调的是:请务必遵守所在地的法律法规以及模型服务商的使用条款,不要试图绕过地区限制。我在这里只做技术原理和合法合规范围内的排查思路说明。如果你遇到这个报错且身处不支持该模型的国家,最实际的选择是换一个本地服务商或不涉及地区限制的模型。
4.4 opencode go的订阅选择和套餐建议
关于opencode go订阅,我的建议非常务实:先完成三天的免费模型体验,确认opencode的交互方式真的适合你,再考虑买订阅。不要第一天就为了一年套餐付全款。
从目前社区反馈来看,go订阅的主要优势在于:不用自己管理API额度,多个强模型按需切换,计费逻辑相对透明。但它的劣势也明显——某一模型下线的风险你无法控制,就像搜索热词里提到的“hy3-free下线了吗”这种疑问,一旦依赖的模型被替换,你的工作流可能就需要重新适配。
所以我的建议是:订阅选短期,不要长期一次性买断;同时在配置里保留一个直连API的备胎方案,主用go订阅、备用直连API,断供时能平滑切换。这也是我目前的生产环境配置思路。
5. 日常使用实操:TUI界面、技能与记忆功能
5.1 TUI界面和快捷键,终端老手的效率飞轮
opencode的TUI界面有一个大胆的设计:默认就是多面板布局,而不是传统的纯粹聊天输出。左侧是项目文件树,中间是对话/代码变更区,底部是输入框。这个布局直接带动了它的交互方式:你不需要在对话框里反复强调“请看下src/main.go这个文件”,而是可以直接在文件树里选中文件,把它放到当前会话的上下文中。
基础快捷键列表(实际操作验证过的):
| 快捷键 | 功能 |
|---|---|
Ctrl+N/Ctrl+P | 新建/切换会话 |
Ctrl+S | 保存当前会话 |
Ctrl+F | 在会话内搜索 |
Tab | 切换面板焦点 |
Ctrl+O | 打开文件树并选择文件加入上下文 |
Ctrl+B | 查看当前会话的“已读取文件”列表 |
Ctrl+M | 全屏/分屏布局切换 |
Ctrl+L | 清空当前输出窗口 |
我最常用的组合是Ctrl+O选中关键文件、再在输入框里给出针对性指令。这种“显式把文件加入上下文”的方式,比纯靠AI自动去探索目录要可靠得多,尤其是在大项目里,模型不会因为自己没找到文件而“凭空发挥”。
5.2 Skills技能:把自己多年的调试经验“文档化”给AI
如果说模型参数是大脑,那Skills就是opencode的“反射神经”。它的机制很简单:你在特定目录下放一个Markdown文件,里面描写一个技能的触发条件和具体行动步骤,opencode在遇到匹配场景时就会自动参考这个技能文件来行动。
我来分享一个实际例子。我在一个React + TypeScript项目里频繁遇到“样式不生效”类Bug,于是写了一个frontend-style-fix.md技能文件:
--- name: frontend-style-fix description: 当用户反馈样式异常或布局错乱时使用 --- 1. 先定位组件的CSS Modules / style文件实际是否被加载; 2. 检查className是否有拼写错误,注意大小写; 3. 检查父级元素的opacity/display/overflow属性; 4. 确认是否存在Tailwind类和其他样式文件的优先级冲突; 5. 如果以上均无法定位,启动本地dev server复现问题,并在浏览器DevTools中检查计算样式。写完放进去后,我再遇到这类Bug时,opencode会先按照这个步骤排查,而不是泛泛地猜原因。它能让你多年经验沉淀成团队可复制、可升级的“数字化SOP”。这个功能是opencode最被低估的杀手特性,也是最推荐深度使用的能力。
5.3 记忆机制:让AI记得你项目的所有“潜规则”
作为一个经常接手别人代码的开发者,我太喜欢opencode的记忆设计了。它的记忆体系分三层:
第一层是AGENTS.md,放在项目根目录,记录这个项目的技术栈、编码约定、目录结构。opencode每次会话的初始上下文都会自动读取这个文件。这相当于给每个项目配了一个“入职手册”,不管谁来接手,只要AI读了这个文件,就能立刻明白“这个项目的路由为什么这么设计”“这个模块为什么要避免循环依赖”这类背景信息。
第二层是项目级记忆文件。opencode会把你在会话中透露的“项目专属信息”写入工作区的持久文件,例如“当前后端接口统一走 /api/v2 前缀”“测试用Mock数据放在 fixtures 目录”。这类信息会在后续会话中自动被调用。
第三层是全局偏好配置。比如你可以让opencode永远在修改代码前输出一份diff让你确认,而不是直接改文件。这样一层层的记忆机制让AI的“连续工作能力”变得非常可怕——它不再像是每次都失忆的聊天机器人,更像一个有条理、有记录的协作者。
一个小提醒:记忆机制和模型上下文长度是两回事。模型每一次的实际输入只能包含有限的记忆切片,opencode是通过智能筛选来选择哪些记忆进入当前的上下文窗口,所以对于超大项目的“潜规则”记忆,依然建议控制在文件的前几十行内,重要信息别放在文件底部。
5.4 LSP集成:让opencode读懂类型和报错
LSP(Language Server Protocol)这个能力如果你以前用过,那你在opencode里会找到强烈的归属感。简单说,LSP就是语言服务器和编辑器之间的标准协议,它用来提供“转到定义”“查找引用”“悬停类型提示”这些智能功能。opencode通过内置LSP客户端,能让Agent在理解代码时不仅能看纯文本,还能获取到准确的类型信息、符号引用关系以及实时的编译诊断信息。
我实测过的场景是:让opencode定位一个TypeScript类型报错的根因。如果没有LSP,它只能通过“肉眼读代码”来猜测,往往需要反复试错;而配置了LSP后,它能直接拿到对应代码区间的类型定义、引用关系、以及IDE底层的诊断信息,几秒内就能锁定是哪个接口的字段类型不兼容。
配置LSP的方式是编辑配置文件指定语言服务器:
{ "lsp": { "typescript": { "command": "typescript-language-server", "args": ["--stdio"] } } }如果你日常主要处理JavaScript/TypeScript、Python和Go,这几个语言的LSP服务器都比较成熟,优先配置这三个就够用了。注意LSP服务需要本机装了对应的语言服务器二进制,没装的话opencode会自动提示你。
6. 编辑器生态:vscode、IDEA插件与桌面版
6.1 vscode插件:把opencode嵌进侧边栏
大量用户的开发主战场还是IDE,终端派工具让很多人犯难。opencode官方提供了VS Code插件,使得你可以在编辑器内部打开一个opencode面板,仍然用之前熟悉的TUI交互方式,但不再需要额外开终端窗口。
插件的安装非常直接,在VS Code扩展市场搜索opencode即可。安装后,你可以在侧边栏看到一个新的图标,点击后就是一个嵌入式终端,默认会启动在当前打开的项目根目录。这个设计让我感觉它给“编辑器党”一个很舒服的过渡方式——保留IDE的实时代码高亮和断点调试能力,同时把Agent工作流放在一个可见的侧面板里,不用来回切换窗口,也不破坏原来的编辑节奏。
使用上有一个值得注意的细节:在VS Code插件模式下,opencode读取“当前打开的文件”的能力是通过插件桥接的,也就是它能知道你正聚焦在哪个文件上,并据此让上下文更有针对性。但这个能力在纯终端启动的情况下是没有的。所以如果你的主战场是VS Code,建议直接装插件而不是开独立终端。
6.2 JetBrains IDEA插件:配置链路与常见问题
JetBrains全家桶的用户同样有官方插件可装,在插件市场搜索opencode即可,安装完成之后重启IDE,会新增一个opencode的工具窗口。IDEA插件的核心体验和VS Code版本接近,但对Java/Kotlin项目有更好的项目上下文识别——它能自动把当前模块、运行配置、框架信息传递给会话。
IDEA插件初次使用时会遇到几个小问题:一是提示找不到opencode二进制,这时候需要手动指定opencode可执行文件的路径;二是Windows下IDEA本身的Shell环境和PowerShell权限设置可能导致插件无法自动调用opencode,解决方法是在IDEA的“设置 → 工具 → 终端”里更改Shell路径为cmd.exe或powershell.exe并重启IDE再试。
6.3 桌面版:终端恐惧者的最后防线
如果你觉得“命令行客户端大冷,编辑器插件也太挤”,opencode还有桌面版应用,本质是TUI的图形壳套了个窗口。它的交互跟终端版本完全一致,不需要你记任何命令,点开即用。对有“看到黑窗口就紧张”的团队新人来说,桌面版是第一个推荐的入口。这个版本的定位就是降低上手成本,实际开发时我还是推荐回到终端或IDE插件工作流,效率和灵活性更高。
7. 高级玩法:Playwright浏览器自动化与前端Bug排查
搜索热词里频繁出现了 “opencode playwright 怎么测试前端bug”,这是opencode很惊艳的一个扩展能力:你可以让它通过Playwright打开浏览器,自己去操作页面、观察渲染结果、捕获console报错,然后根据真实运行状态来修Bug。
我的实战参考步骤是这样的:先确保项目里已经安装了Playwright以及对应浏览器的驱动,在对话中直接对opencode说“帮我在本地启动dev server,然后用Playwright打开首页,检查登录按钮点击后是否有报错”。
opencode会自主完成一串动作:启动服务、写一个临时Playwright脚本、执行、读取浏览器控制台输出、定位报错文件、尝试修复并重新运行。这套循环对前端“偶发性Bug”特别有用——比如某页面只有到特定交互步骤才会抛错,光靠读代码根本定位不到,但机器自己点一点页面就能复现。
当然这个能力对模型的要求很高,免费模型往往会卡在“生成可执行Playwright脚本”这一步。我实测下来,这个场景还是需要中等偏上的模型能力才能比较靠谱地完成全流程。
8. 常见问题与排查技巧实录
8.1 高频报错速查表
我把自己和社区里出现频率较高的问题整理成了下表,全都是实际操作验证过的解决方案:
| 报错/问题 | 根本原因 | 处理方式 |
|---|---|---|
| opencode无法识别为cmdlet… | PATH未配置或终端没重启 | 重启终端;用where opencode定位;检查环境变量Path |
| opencode error: unexpected server error | 服务端内部错误或网络波动 | 检查网络代理设置;稍后重试;查看opencode日志(~/.local/share/opencode/log) |
| This model is not available in your country | 模型服务商地区限制 | 更换不限制地区的模型或服务商;确认代理出口IP所在区域是否合规 |
| 配置文件修改后不生效 | 未用正确的配置路径或格式错误 | 用opencode doctor检查配置加载情况;确认JSON语法无误 |
| 会话历史丢失 | 多设备覆盖了共享的会话存储 | 备份~/.local/share/opencode目录;服务商账号下不要同时用多个配置频繁切换 |
| 终端卡住无输出 | 模型供应商API超时 | 设置更短超时时间;检查API Key额度是否用尽;重启opencode |
其中opencode doctor这个命令非常值得记住——它类似一套自检面板,会显示当前配置文件路径、模型供应商连通性、LSP服务器状态以及日志位置。遇到摸不着头脑的问题,先跑一遍这个命令,基本能定位到七成以上故障。
8.2 我在真实项目中踩过的几个坑
第一个坑是免费模型上下文太长导致宕机。有一次我让它重构一个长文件,对话还没几个来回就把上下文塞满了,结果它不仅没完成重构,还把已有代码改坏了。从那以后我给自己定了一条规矩:做重型重构前先告诉opencode只负责生成方案,经确认后再动手改文件。
第二个坑是全局记忆污染。我在一个项目里告诉opencode“当前项目的API前缀是/api/v2”,结果切换到另一个项目时,它仍然沿用这个前缀生成代码。原因就是全局记忆文件中保留了上个项目的偏好,而新项目又没有AGENTS.md来覆盖。解决办法是每个项目都写AGENTS.md,把“本项目专属的信息”和“通用偏好”明确分开。
第三个坑是忽略LSP依赖导致类型误判。在没配LSP时,让opencode找一个TS类型不匹配的问题,它会反复绕弯子。配置LSP之后,诊断效率明显提升。搜索热词里也有提到“opencode如何用LSP”,如果你还没配置,我建议直接花十几分钟把它配上。
8.3 我现在认为最优的工作流
基于几个月的实操,我目前的生产环境工作流是:主力模型用go订阅里的强模型跑复杂重构,配合直连API的备用服务商;遇到新项目先写一份简洁的AGENTS.md;常用排查经验沉淀成Skills;VS Code插件作为日常主力入口;终端版本用于需要多面板并行时的重度操作。这套配置下,我日常开发中至少有30%到40%的标准化编码工作可以直接交给它处理,包括写单元测试、修lint报错、补充类型定义、小范围重构等。
9. 写在最后:一点比较个人的体会
如果你还没有把opencode跑起来,我建议今天就去装一个,用一个免费模型体验一遍“让AI帮你写一个脚本并执行”,不要一步到位追求最强模型——工具链走通带来的正反馈,远比一开始就跑最强模型但到处报错要好得多。
我个人在opencode上得到的最大收获并不是“代码写得快了”,而是它让我重新审视了“开发流程里哪些部分是真正值得我花精力的”。像跑测试、查lint、补文档这些环节交给Agent后,我腾出了大量时间去做架构决策、代码评审和功能设计。这也是我最推荐你去实践的方向——不要只把它当一个补全工具,而是试着把你的工作流逐步“交接”给它。
以后如果你搭好了自己的Skills和记忆体系,再来给我分享你的玩法。这个工具进化得很快,过几个月再来看,可能又有新的惊喜。