先聊个现象。最近我朋友圈里好几个写代码的朋友,不约而同地把终端工具从Claude Code切到了一款叫opencode的工具上。一开始我以为是谁又炒了个新概念,直到自己也花了一个周末把主力开发流程迁过去,才发现这东西确实有点东西。简单说,opencode是一个开源、终端优先的AI编程代理(AI coding agent),它能直接在你的项目仓库里干活——读代码、改多个文件、执行命令、跑测试、修Bug,而你只需要在终端里用自然语言告诉它你想干什么。它不是某家公司的"官方客户端",而是一个基于开源协议的独立项目,底层可以自由接入各种模型服务商,本地数据完全可控,所以特别适合那些既想享受AI结对编程的爽感,又不想被单一厂商生态绑死的开发者。
这篇文章我不会给你念官方文档,我会把我从安装、配置、模型接入,到用它在真实项目里排查前端Bug、接手老项目、配合VSCode和IDEA使用的完整经验全部分享出来。包括踩过的一些坑,比如Windows下提示无法识别命令、配置好模型却报unexpected server error、以及某个免费模型服务突然下线导致工作区直接瘫痪这类问题,都会一点点拆开讲。如果你也正在犹豫要不要把开发工具链换成opencode,或者已经装了但还没玩明白,这篇文章应该能帮你少走不少弯路。
1. OpenCode是什么,为什么值得认真试试
1.1 先把这个名字说清楚
"opencode"这名字乍一听像哪个大厂出的产品,实际上它是个开源社区项目,代码就挂在GitHub上,谁都能看、能改、能提Issue。它的核心定位是"终端里的AI编程代理",注意是"代理"不是"补全插件"。
补全类工具你肯定见过,比如各种AI代码补全插件,本质是"你说一句,它接一句",它不负责通盘理解你的项目,也不关心这个函数被谁调用了、改完会不会把别的地方搞爆。而opencode这类代理工具,它的工作方式更像是你雇了一个能看懂整个仓库的实习生:你跟它说"帮我把登录模块的token刷新逻辑重构一下",它会自己去看登录模块相关的文件,理解现有逻辑,列出改动方案,然后跨文件修改代码,跑一遍测试确认没破坏现有功能,最后把改动总结给你看。整个过程不是一次性的提示词生成,而是一个多轮次的"读代码-思考-动手-验证"循环。
所以它的核心价值不是"生成代码更快",而是"把一个具体的小任务完整交出去"。对个人开发者来说,这等于多了一个不需要休息的结对编程搭子;对团队来说,它可以把很多重复性的重构、补测试、排错工作自动化,让大家把精力放在真正需要判断力的事情上。
1.2 它和Claude Code、Codex这类工具到底啥关系
讨论opencode,绕不开Claude Code和Codex。这三者现在经常被放在一起比较,很多人问到底哪个Agent好用。我的看法是:
- Claude Code是Anthropic官方出的,闭源,深度绑定自家模型,体验非常顺滑,因为模型和工具是同一家做的,配合度最高。缺点也明显——你不太可能拿它去接别的模型,定制空间有限。
- Codex是OpenAI的类似产品,绑定GPT系列模型,同样闭源。
- opencode是开源的,它本身只是个"壳",模型随便接,可以连Anthropic的、OpenAI的,也可以连本地模型或者各种兼容OpenAI接口的服务商。
这意味着什么?意味着你今天可以用Claude Sonnet,明天换成GPT,后天想试试本地跑的模型,在opencode里只是改配置的事,不需要换工具。还有一点对注重代码隐私的团队很重要:因为它是开源的,你可以清楚看到它把数据发到哪里、不发到哪里。如果你要求代码不出内网,完全可以配置成只连内网部署的模型服务,这种情况下Claude Code和Codex是做不到的。
1.3 什么样的开发者适合用它
不是所有人都需要立刻换到opencode,但以下几类人我非常推荐试一下:
第一类,长期在终端里工作的人。习惯用vim、tmux、各种CLI工具的开发者,会非常适应opencode的操作方式,它就是一个终端程序,不占IDE的内存,不弹一堆UI,一个终端页面就能完成从提问到改动再到验证的全流程。第二类,经常接"新项目"和"老仓库"的人。不管是入职接手别人的代码,还是自己几个月没碰的老项目,opencode在理解项目结构、梳理调用关系方面的能力非常强,能帮你快速建立全局认知。第三类,对模型选择有自主需求的人。想对比不同模型的编码能力,想控制API成本,想用更便宜的模型完成简单任务、用更强模型处理复杂任务,opencode的灵活配置机制会让你很舒服。
当然,如果你只是想要编辑器里的行级补全,那VSCode里装个插件就够了,没必要上opencode,两者定位完全不同。
2. 安装到跑通:一份能直接抄的部署笔记
2.1 三种安装方式选哪个
opencode的安装方式比较灵活,我试过两种,还有一种是社区常用的方式,放个对比表给你们参考:
| 安装方式 | 命令 | 适用平台 | 我的评价 |
|---|---|---|---|
| npm全局安装 | npm install -g opencode-ai | 全平台(需Node.js) | 最常规,升级方便,推荐 |
| Homebrew安装 | brew install sst/tap/opencode | macOS / Linux | 依赖Homebrew,适合本来就用它管理软件的人 |
| Go源码安装 | go install github.com/sst/opencode@latest | 全平台(需Go环境) | 适合想体验最新版/参与开发的用户,编译需要几十秒 |
这里有个值得聊的技术细节:opencode这个项目曾经主要用TypeScript编写,后来核心重写为Go语言实现。所以你会发现网上有些文章还在提npm包名,有些文章说用go install,其实都没错,只是对应了不同时期的构建方式。Go重写带来的好处很直接——启动速度快、内存占用低、单二进制分发。我在一台配置一般的旧MacBook上实测,启动opencode的TUI界面基本是秒开,比某些大型IDE插件轻太多了。所以如果你是性能敏感型用户,我推荐优先考虑Go版本。
2.2 Windows用户的第一个大坑:提示无法识别
热词里有一条很扎眼的报错:"无法将'opencode'项识别为 cmdlet、函数、脚本文件或可运行程序的名"。这个错误我相信很多Windows用户都遇到过,不只是opencode,安装任何npm全局工具都可能碰见。
这个问题的原因很明确:npm安装全局包时,可执行文件被放到了npm的全局bin目录,但Windows系统的PATH环境变量里没有包含这个目录。解决方案有两种:
第一种,找到npm全局bin目录加进PATH。在PowerShell里依次执行:
npm config get prefix输出结果通常类似C:\Users\你的用户名\AppData\Roaming\npm,然后把完整路径加到系统环境变量的PATH里,重启终端,问题就解决了。
第二种,如果你不想动系统环境变量,也可以直接用npx方式调用:
npx opencode-ainpx会自动找到临时目录里的包执行。不过这种方式的缺点很明显——每次调用的解析路径不同,如果你在shell脚本里调用opencode,可能不稳定。我还是建议老老实实配好PATH,一劳永逸。
2.3 初次启动:认识这个交互界面
安装完成后,在项目根目录运行opencode,会进入一个TUI(终端交互界面)。我第一次进去的时候稍微愣了几秒,因为这个界面不像普通聊天窗口那样只有一个输入框,它分成几个面板:
- 主对话区:显示你和opencode的对话历史,以及它每步操作的输出。
- 输入框:在底部,直接输入自然语言指令。
- 消息流中会显示工具调用:比如"读取文件""编辑文件""运行命令",每一步都带状态,你能清楚看到它正在干什么。
初次启动它会问你要不要登录模型服务商。如果你只想快速试试,可以先选一个提供商并填入API Key;如果你还没想好用哪家,也可以直接退出配置,稍后再用/login命令重新进入。我个人建议第一步先把模型问题解决,因为接不通模型,后面全是空中楼阁。这个配置的细节,下面单独开一节详细讲。
3. 模型接入与自由配置
3.1 为什么模型配置是opencode的灵魂
opencode作为"壳"型工具,最大的优势就是模型自由。但自由也意味着你需要自己操心配置,这恰恰是新手最容易卡住的地方。很多人在网上看到别人用opencode很爽,自己一运行却发现一直报错、不输出内容,十有八九是模型没配好。
模型接入的核心就两个东西:接口地址(BaseURL)和认证密钥(API Key)。opencode默认会读取一组标准的模型提供商配置,同时支持通过环境变量或配置文件自定义。
环境变量的格式一般是这样的(以Anthropic为例):
export ANTHROPIC_API_KEY="sk-ant-..."如果你用的是OpenAI格式的兼容接口,则可能需要:
export OPENAI_API_KEY="sk-..."3.2 通过配置文件管理多个模型
环境变量适合快速测试,但如果你要同时在多个模型之间切换,我更推荐写配置文件。opencode的配置文件一般位于:
- macOS / Linux:
~/.config/opencode/opencode.json - Windows:
%USERPROFILE%\.config\opencode\opencode.json
一个典型的配置文件长这样:
{ "$schema": "https://opencode.ai/config.json", "model": "anthropic/claude-sonnet-4-20250514", "provider": { "my-ollama": { "npm": "@ai-sdk/ollama", "name": "本地Ollama", "options": { "baseURL": "http://localhost:11434/api" }, "models": { "qwen2.5-coder:14b": { "name": "Qwen Coder 14B" } } } } }这里有个关键细节:model字段的命名规则是"提供商/模型名"的格式,比如用Anthropic就是anthropic/claude-sonnet-...,用OpenAI就是openai/gpt-...,自定义的提供商就用你在配置里定义的名字。
3.3 接本地模型和"免费模型"的现实问题
热词里出现了"opencode免费模型"以及"hy3-free下线了吗"这类搜索词,说明很多人都在找免费的或低成本的模型接入方式。我理解这种需求,毕竟API费用确实不低。这里我分享两个思路:
第一个思路,本地模型。通过Ollama这类工具跑开源模型,比如Qwen Coder系列、DeepSeek Coder系列,本地模型的优势是免费、数据不出机器、离线可用。缺点是受限于你的显卡和内存,中等规模的模型(7B~14B)在普通消费级显卡上响应速度还行,但复杂推理能力跟云端大模型还是有差距。opencode接Ollama的方式就是上面配置文件里那样,只需要设置baseURL指向本地的Ollama服务即可。
第二个思路,使用第三方兼容接口的免费额度或低价服务。这里我要提醒大家一个现实问题:免费或超低价的服务往往不稳定。热词里提到的"hy3-free下线了吗",就是典型的例子——依赖这类服务的用户在某一天突然发现模型不可用了,所有依赖它的自动化流程全部中断。我个人的建议是:免费模型可以拿来尝鲜或跑一些不重要的任务,但生产环境一定要配置至少一个稳定可靠的付费模型作为兜底。更聪明的做法是结合opencode的多模型配置,把简单的任务(比如格式化、补注释)路由到低成本模型,把复杂的重构任务交给强模型,这样成本和稳定性可以取得平衡。
3.4 为什么我推荐用配置切换工具管理API Key
当你手上的API Key越来越多,环境变量管理就变成了新的麻烦。老实说,现在不少人都用环境变量切换工具集中管理各家模型的API Key和BaseURL,比如网上常提到的CC Switch,它本身做的事情就是把不同模型服务商的认证信息集中在一个地方,一键切换导出到全局环境变量。opencode之所以能"配合 CC Switch 等工具",是因为这类切换工具最终暴露给你的仍然是一组标准的API环境和Key,opencode只是按照约定的环境变量名去读取而已。
说实话,我之前也踩过坑:手动改配置文件太慢,环境变量太多容易搞混,一会是这个Key一会是那个Key,导致模型请求一直401。后来我学会了把切换工具和opencode的配置文件配合使用——切换工具负责提供密钥,opencode配置文件负责声明模型和接口地址。两件事拆开,出了故障排查起来也会更快。
4. 核心使用技巧:让它真正成为你的编程搭子
4.1 Plan / Act 双模式,先想清楚再动手
用过AI编程工具的人应该都有这种经历:让它改个代码,结果它啰啰嗦嗦直接改了十来个文件,改完你还得挨个检查,反而更累。opencode中的Plan/Act双模式就是来解决这个问题的。
在Plan(计划)模式下,你发出指令后,它不会直接改代码,而是先阅读相关代码,搜索调用关系,最后输出一份详细的改动计划,包括要改哪些文件、每个文件改什么、可能影响哪些模块、有没有风险。你确认计划没问题之后,再切换到Act(执行)模式让它动手。这个机制在工作上给了我非常大的安全感,尤其是在改核心模块的时候。我自己的习惯是命令行的开头加上/plan命令开Turn。
说句实话,刚上手的朋友很容易忽略这个模式,拿到工具就直接说"帮我改XXX",结果代码被改得面目全非,然后骂工具不行。其实工具给了你一个"刹车"机制,是你自己冲太快了。
4.2 Skills:给opencode装上"领域知识"
热词里有"opencode skills"和"opencode 安装 superpowers",这个skills机制我越用越觉得香,值得单独拿出来聊。
简单理解,skills就是一种可复用的"技能包"。你可以把某个团队、某个项目特定的规范、工作流程、常用代码模板打包成一份Markdown文件,放到skills目录下,之后opencode在处理相关任务时就会自动加载这些知识。
举个例子。我之前在一个团队里,后端接口的错误响应格式有严格规范:{ code: number, message: string, data: any },并且错误码每个区间有特定含义。以前每次让AI写接口,都要在提示词里反复强调,后来我把这些规则写成一个skill文件:
描述: 项目后端接口错误响应规范 规则: - 所有接口错误必须返回 { code, message, data } 结构 - code为0表示成功,1xxx表示参数错误,2xxx表示业务逻辑错误 - 业务异常必须记录WARN级别日志 示例: - 参数错误: throw new BizError(1001, "参数不合法")放进去之后,opencode在写接口代码时基本不会再犯格式错误,因为它会把skill内容当成长时记忆去遵守。这类玩法非常适合团队内部沉淀经验,新人来了也不用一遍遍口头交代。
4.3 Memory:让AI记住你的项目约定
大多数AI编程工具的问题在于"对话结束即失忆"——你这次让它遵循的约定,下次对话它全忘了。opencode做得比较好的一点是引入了memory机制,你可以在对话里告诉它"记住这个项目的测试命令是npm run test:unit,以后每次跑测试都用这个",它会把这些信息写入项目级别的memory文件,后续新会话也会自动读到。
实际使用中,我一般会在项目一开始就花两分钟做一次"项目交接说明":
- 项目启动命令是什么
- 测试命令是什么
- 代码风格偏好(分号/不带分号、单引号/双引号)
- 目录结构的特殊约定
- 哪些目录不要动
做完这套初始化,后面所有对话它都会自动带上这些上下文,出错的概率会大幅下降。这个习惯我强烈建议每个团队都建立起来,相当于给AI做一次入职培训。
4.4 权限控制:别让它乱跑命令
AI代理能执行命令,既是优点也是风险。opencode执行命令前默认会先征求你的同意,但如果你开了全自动模式,就相当于给了它"拿着你电脑的钥匙随便跑"的权力,一旦模型抽风执行了危险命令,比如删库、覆盖配置、爬取内网信息,后果不堪设想。
我的建议是三步走:
- 第一步,非必要不开全自动权限,让它每步操作前都确认一遍。
- 第二步,利用配置文件的权限规则,把高频且安全的命令列入白名单,比如
npm run test、git status这类。 - 第三步,重要操作(比如删除文件、修改git历史)永远保留手动确认。
另外提醒一句,如果你在公司的生产环境或者有数据合规要求的项目里用opencode,一定要先跟安全团队确认工具的数据处理范围,不要自己拍脑袋就把敏感代码库交给AI代理,这个风险意识要有。
4.5 接手老项目的正确姿势
热词里有"opencode接手开发项目",这个我太有共鸣了。上个月我临时接手一个别人写到一半的前端项目,有400多个文件,技术栈虽然是我熟悉的Vue3,但项目里有一堆自定义目录结构和历史遗留的奇怪写法。要是以前,我至少得花半天梳理项目,才能开始改需求。这次我直接把项目根目录丢给opencode,让它帮我做三件事:
第一件事,概括项目整体架构,理清核心模块的依赖关系;第二件事,找到我要改的那个功能相关的所有代码文件,梳理数据流转链路;第三件事,按我的需求拟定改动方案。
整个过程大概20分钟,它给出的模块关系图和改动方案,基本覆盖了我原本要花大半天才能摸清的信息。当然它也有不全的地方,比如某些业务逻辑它理解得比较浅,需要我补充上下文,但整体效率提升是显而易见的。
所以我的建议是:不要一上来就让opencode帮你改老项目的代码,先让它当"项目讲解员",你了解了全局之后,再让它当"改代码执行者",这样出错率会低很多。
5. 多端集成与生态:从终端走向GUI
5.1 VSCode里用opencode
尽管opencode主打终端体验,但很多人还是习惯在编辑器里干活。好消息是它有官方和社区维护的VSCode插件(热词里"vscode opencode插件"指的就是这个)。安装方法很简单,直接在VSCode的扩展市场搜索opencode,装好之后左侧边栏会出现一个opencode面板,可以在不离开编辑器的情况下跟AI代理交互。
这个插件最大的价值是"代码定位无缝衔接"——当opencode修改了某个文件,你在面板里点击改动记录,VSCode会直接跳转到对应文件和行号,省去了终端和编辑器之间来回切换的割裂感。我还注意到它支持把编辑器当前打开的文件作为上下文发送给opencode,这个在做单文件问题分析时非常方便。
5.2 JetBrains IDEA插件
如果你主力IDE是IntelliJ IDEA,网上同样能找到opencode的插件(热词里有"idea opencode插件"和"opencode jetbrains idea 插件")。不过我个人的使用感受是,JetBrains插件目前的完善程度比VSCode插件稍逊一筹,可能存在同步不及时或者某些交互不顺手的情况。如果你用的是IDEA且对终端不排斥,我建议可以试试它的内置终端跑opencode,体验反而更稳定。
5.3 桌面版客户端
热词里"opencode desktop"和"opencode桌面版"说明关注桌面GUI的人不少。桌面版说白了就是把终端版的opencode包了一层图形界面,把复制粘贴、查看文件改动、对比差异这些操作做得更直观。对于不习惯终端操作、或者想在iPad这类设备上远程使用的人来说,桌面版确实更友好一点。但我个人仍然认为,opencode的主战场是终端,桌面版更适合演示或轻度使用,重度开发还是终端效率最高。
5.4 关于Superpowers这类扩展
热词里有"opencode 安装 superpowers"以及"opencode oh-my-claudecode"。这里我分享一个理解:它们本质上都是"技能包集合"或"预设配置集"。okay说白了,superpowers就是把一系列常用的skill、规则、工作流打包到一起,装完以后opencode就会拥有一堆预设技能,比如自动写单元测试、自动生成提交信息、自动整理CHANGELOG等。对新手来说,装这类扩展可以快速体验到opencode的高阶能力,省得自己动手写skill。不过我要提醒一句:任何外部扩展代码都有风险,安装前最好瞄一眼作者的GitHub仓库star数和更新频率,别装来路不明的包。
5.5 OpenCode Go是什么
热词里出现了"opencode go"和"opencode go 需要配合 cc switch 等工具"这样的搜索词。这里我猜测"opencode go"大概率不是指某个独立产品,而是指Opencode的Go语言版本(毕竟项目核心用Go重写了),也可能是用户在搜"怎么用Go安装/运行opencode"。至于"配合cc switch等工具",就是之前提到的环境变量管理工具与opencode配合的场景。如果你用Windows或macOS上多个模型服务商来回切换,你会发现这种"API凭据管理工具 + opencode配置"的组合是最高效的。
6. 实战案例:用OpenCode修复一个真实的前端Bug
6.1 任务背景与准备工作
为了让前面的内容更有实感,我拿一个上周实际处理过的案例讲讲。场景是这样的:一个内部后台系统的列表页,用户反馈在Chrome下点击"导出"按钮后,偶尔会没有任何反应,但控制台里也没有报错。这种"偶发性、无明显日志"的问题,以前调起来非常费劲,我可能要先复现、抓网络请求、加日志,一步步来。
这次我决定用opencode来处理。准备工作是这样的:项目本身已经能本地跑起来,开发服务地址是http://localhost:5173,测试框架用的是Vitest+Playwright。
我在项目根目录启动opencode,然后给了它一段描述:
我在这个前端项目里发现一个Bug:列表页点击"导出"按钮,偶发无反应。请帮我分析可能的原因,并用Playwright写一个自动化脚本尝试稳定复现。复现后定位根因,给出修复方案。
6.2 OpenCode的分析与自动化复现
opencode启动后的过程其实比我想象的还要完整。它先搜索了列表页相关组件,找到了"导出"按钮的点击事件处理函数,很快发现一个可疑点:导出按钮绑定的click事件里有一个前置判断,检查某个dateRange参数是否合法,如果参数不合法就直接return,并且没有任何用户提示。结合用户反馈的"偶发无反应",它初步怀疑是日期参数在某些情况下取不到值,导致点击事件被静默拦截。
仅靠静态分析还不够,它接着用Playwright写了一小段自动化脚本,模拟在不同日期选择操作顺序下反复点击导出按钮,并记录按钮点击后是否发起了网络请求。脚本跑了大约几分钟,成功在几十次点击中触发了几次无反应的情况。
然后它把进一步的日志输出整合起来,定位到根因:日期范围组件在初始化时存在竞态条件,如果用户快速点击导出按钮时日期范围尚未完全初始化,组件内部的dateRange会是一个空对象,导致校验函数通过不了,事件直接return。这个Bug藏得确实够深,纯靠人肉看逻辑很难一眼看出来。
6.3 修复与验证
定位到根因后,我切换到Act模式,让opencode给出修复方案。它提出两种:一是在校验逻辑里把空对象也视为非法并给出用户提示;二是优化日期组件的初始化时序,保证dateRange一定能在点击事件触发前就位。我选了方案一,因为它更稳妥,改动面最小。
opencode修改了对应文件,加上了空值判断,同时在页面上增加了一个简单的Toast提示"请先选择日期范围",接着自动跑了一遍相关的单元测试和Playwright回归脚本。最终结果是:原本偶发无响应的场景被稳定地拦截下来,并给出了明确提示。
这个案例里我感受最深的不是它多聪明,而是它把"定位Bug-写复现脚本-修复-回归验证"这个完整闭环在一个会话里串起来了。以前做这种事,我要在IDE、浏览器、终端、测试脚本之间来回切,现在只需要在终端里跟opencode说清楚目标,它自己就会安排后续步骤。
6.4 这个案例给我的教训
案例讲完了,我必须说两句公道话:不要指望每个Bug都能这么顺利。这次成功的前提是项目测试基础设施尚可、编译启动快、而且Bug的根因有迹可循。如果你的项目连安装依赖都要半小时,或者没有任何自动化测试,"AI修Bug"的体验会大打折扣。所以,想用好这类工具的团队,先把项目的可测试性和可观测性做好,不然工具再强也使不上劲。
7. 常见问题速查与经验沉淀
7.1 高频错误速查表
| 报错信息 / 现象 | 根本原因 | 解决办法 |
|---|---|---|
| 无法将“opencode”项识别为 cmdlet、函数... | npm全局目录没加入PATH | 执行npm config get prefix,把输出的目录加入系统PATH |
unexpected server error. check server log | 模型服务端返回异常,可能是Key失效、配错了接口地址或服务商过载 | 先用curl测试接口连通性,再检查API Key和BaseURL配置 |
| 模型能聊但工具调用全部失败 | 模型不支持function calling,或provider配置漏了工具声明 | 换用支持工具调用的模型,检查provider配置是否完整 |
| 对话超过一定长度后开始胡说 | 上下文窗口溢出或记忆混淆 | 用/new开启新会话,用memory机制保留关键约定 |
| 免费模型突然不可用 | 第三方免费服务下线或变更规则 | 配置多模型fallback,重要任务使用付费稳定模型 |
| 权限太多导致每次操作都弹确认 | 默认权限策略过于严格 | 在配置中给安全命令添加白名单,保留危险命令的手动确认 |
7.2 我的使用心得:从"玩具"到"生产力"
写到这里,我想说说更深一层的体会。很多人第一次用opencode这类工具,会觉得它很笨——不是理解错需求,就是改出来的代码风格不对。没错,它确实不是万能的,那些把它吹上天的帖子会害了你。但如果你愿意花一两天时间做"调教",效果完全是两个世界。
怎么调教?我的方法就三条。
第一条,先让它读再让它改。任何改动任务,都要求它先列出涉及的文件和改动计划,你确认后再动手。第二条,项目约定一次性说清。启动每个新项目时,花两分钟做项目交接说明,把启动命令、测试命令、代码规范、禁改目录都写清楚。第三条,学会看操作日志。opencode的每一步操作都可以展开看,当结果不对时,往上翻日志能找到是哪个环节出了问题,而不是一味地重新生成。
我相信随着Agent类工具的持续更新,未来它接管的工作会越来越多。但不管工具怎么变,善用AI的人和一个随便玩玩的人,差距就在于愿不愿意把上下文喂清楚、把验证闭环建起来。
7.3 最后再分享一个小技巧
很多新手不知道opencode是可以"带指令启动"的,也就是不用先进交互式界面再输入。你完全可以在终端里直接写:
opencode "给项目根目录写一个标准的README.md,内容包括项目简介、安装步骤、开发命令和目录结构说明"它会直接开始执行并输出结果,然后退出。这个模式下可以把它当"命令行AI助手"用。跟shell脚本组合起来,就是一套很顺手的自动化工作流。比如我电脑上有一个脚本,一键进入某个项目、拉起开发服务、让opencode自动做一轮code review,跑完再在终端总结问题点。这种自动化能力才是Agent类工具相比传统代码补全最大的优势所在。
以上这些,是我用opencode这段时间比较完整的经验总结。每种工具都有自己的脾气,关键是你愿不愿意花点时间去了解它、配置它、让它适配你的工作方式。如果你也正在评估Agent编程工具,我给的建议就一句话:别光看视频和截图,自己开一个真实项目,给它一个真实任务,用一天时间体验,答案自然会出来。