别再给 Claude Code 交租了:OpenCode + oh-my-opencode 实战手册
记录 opencode 实战,配合 oh-my-opencode 深度定制 Agent 架构。揭秘模型调度策略、MCP 数据库扩展及避坑经验,带你摆脱厂商锁死,打造高性价比、全自动的终端编程外脑。
一、 序言:终端编程的新时代
1.1 从 Copilot 到 Claude Code:AI 编程变天了
记得刚开始用 GitHub Copilot 那会儿,我基本把它当成了"高级 Tab 键"。它自顾自地写代码,我按我的思路编程,偶尔它碰巧写出符合逻辑的片段,我才点个赞。
但最近这阵子,风向彻底变了。从 Claude Code 发布开始,AI 编程不再是缩在 IDE 插件里的一个小窗口,而是直接接管了我们的终端(Terminal)。它能自己翻代码库、自己跑测试、看报错信息,然后再回过头来把 Bug 改了。这种感觉就像是你招了个手脚麻利的实习生,你只管下令,他直接在你的地盘上干活。
1.2 为什么我开始寻找 Claude Code 的替代方案?
Claude Code 好用归好用,但用了几天后,我有几个不爽的点:
- 过度依赖单一模型:当前系统仅支持 Anthropic 的 Claude 模型,缺乏灵活性。相比之下,DeepSeek V3/R1 等替代方案不仅更具性价比,逻辑处理能力也毫不逊色,理应提供更多选择空间。
- 定价过高:Claude 3.5 Sonnet 的 API 费用众所周知。即使是中等规模的项目,简单跑一遍代码分析就可能花掉一顿午餐的钱。这简直是在烧钱而不是写代码。
- 不够“极客”:作为搞技术的,总想把工具拆开了揉碎了,换个皮肤、加个插件、调调 Prompt。闭源的东西就像个黑盒,玩起来总觉得隔了一层。
说白了,我想要的是 Claude Code 那种丝滑的终端交互体验,但模型得是我说了算,价格得是白菜价,而且还得能让我随心所欲地魔改。最终我选择了 OpenCode,并通过 oh-my-opencode 配置工具打造了一套得心应手的开发环境。
下面,我将为大家演示这个工具是如何在我的终端里"火力全开"的。
二、 走进 OpenCode:自由主义者的编程利器
2.1 OpenCode 到底是个啥?
简单来说,OpenCode 就是一个让你在终端(Terminal)里直接“调遣”的开源 AI 编程代理。
它不只是一款简单的代码补全插件,而是一个能深度融入本地开发环境的"数字搭档"。如果你像我一样长期驻守在 VS Code 终端或 iTerm2 里,OpenCode 就像为你的 Shell 配备了一个全栈开发智能助手。
最核心的一点:它是 100% 开源 的。在 2026 年这个大厂竞相搞生态闭环的年代,OpenCode 这种“不属于任何巨头、只属于开发者自己”的工具,显得格外难得。
2.2 核心特性:为什么它是我们手里的“趁手兵器”?
OpenCode 能在 GitHub 斩获如此高的 Star 数,连 Anthropic 这样的行业巨头都感受到了压力,靠的绝不是花哨的概念包装。它的核心竞争力在于:实实在在地帮开发者扛下了那些繁琐的"脏活累活":
-
它不需要你“喂饭”:
以前用普通 Chat 编程,你得像个搬运工一样,手动复制几百行代码贴进去,还得费劲解释代码之间的关系。OpenCode 懂行的地方在于,它进场后会自己“溜达”一遍你的项目。你随口丢一句“把所有的登录校验改成 JWT 模式”,它自己会去搜auth文件夹,顺便把相关的middleware和config全找出来。这种“省去 Copy-Paste”的爽感,才是真的解放生产力。 -
它是个“实干派”,不是“懂王”:
很多 AI 助手只会给你写一段看起来很美的代码,运行起来全是 Bug。OpenCode 最骚的操作是它会“自闭环”:它改完代码,会顺手跑个npm test或者go test。如果挂了,它不会尴尬地在那儿道歉,而是盯着报错信息(Traceback)自己琢磨,原地自愈,直到测试跑通。这种“不跑通不收工”的倔强,真能让你省下不少加班费。 -
不当任何大厂的“数字佃农”:
这就是最近闹得沸沸扬扬的“模型自由”。Anthropic 想把开发者锁死在 Claude 的后花园里,但 OpenCode 给了我们选票。你可以白天用 GPT-5 冲那种要命的架构设计,晚上为了省钱切到 DeepSeek V4 跑单元测试。OpenAI 官宣联手后,OpenCode 的模型调度变得更丝滑了。说白了,你才是老板,AI 只是打工人,哪家便宜好用你就调哪家的模型,这才是开源的尊严。
2.3 深层对话:OpenCode 与 Claude Code 的爱恨情仇
说起 OpenCode,就绕不开它和 Claude Code 那段能拍成连续剧的“恩怨情仇”。
2.3.1 到底是谁在“急”?
最近技术圈最炸裂的新闻莫过于 Anthropic 开始封杀 OpenCode 用户。起因很简单:OpenCode 因为太好用,甚至允许用户通过一些“骚操作”接入 Claude 的 Web 端,这直接动了 Anthropic 的奶酪。Anthropic 甚至祭出了“封号大招”,把不少尝试在 OpenCode 里白嫖 Claude 体验的账号给封了。
这一举动彻底惹恼了开源社区,但也侧面印证了一件事:OpenCode 真的威胁到了闭源巨头的利益。
2.3.2 OpenAI 的“神助攻”
更有意思的转折点来了,就在 Anthropic 忙着拔网线的时候,OpenAI 官方竟然公开宣布与 OpenCode 达成深度合作! 这波“敌人的敌人就是朋友”的操作,直接给 OpenCode 送上了最强背书。现在,你可以名正言顺地在 OpenCode 里调用最顶级的 GPT-5 能力,而且享受官方级的 API 优化。
2.3.3 为什么我最终站在了 OpenCode 这边?
| 特性 | Claude Code | OpenCode |
|---|---|---|
| 模型绑定 | 只能用 Claude 系列 (虽然强,但容易被限流) | 模型自由! GPT-5、DeepSeek、本地模型随便切 |
| 钱包压力 | 官方 API 价格依然很硬 | 丰俭由人,配合 DeepSeek 约等于不要钱 |
| 响应速度 | 取决于 Anthropic 的服务器带宽 | 取决于你买的 API 或本地显卡有多猛 |
| 安全策略 | 经常会因为“安全审查”拒绝执行某些复杂脚本 | 绝对服从,哪怕是删库(虽然傻,但够自由) |
| 定制化 | 官方给什么用什么 | 支持 oh-my-opencode,你可以把它魔改成性能怪兽 |
说到底,我们作为开发者,最反感的就是被某个平台“绑架”。 Anthropic 的封杀反而成了一块试金石,证明了 OpenCode 这种不被厂商锁定的工具,才是我们长久搬砖的“避风港”。
一句话总结:
Claude Code 如同一套精装现房,品质卓越但格局固定;
OpenCode 则提供了一套框架完美的毛坯房——
你可以自由安装 GPT-5 引擎,定制专属界面,
赋予最高权限,打造完全听命于你的"终极智能管家"。
三、 实战:从安装到起飞
3.1 基础环境搭建
安装 OpenCode 并不比装个微信难多少,但为了后续能丝滑跑起来,Node.js 的版本建议在 v20 以上。
- 获取二进制文件:
直接去 GitHub Release 页面下载对应系统的原生二进制文件(Win/Mac/Linux),丢进你的环境变量目录即可。当然,你也可以用最传统的命令:
npm install -g opencode-ai@latest
安装完成后,开启一个新的命令行窗口,在命令行输入 opencode,回车就会看到

- 连接 API:
启动后输入/connect。这里建议至少配置两个 Key:一个强力模型(如 GPT-4o/Claude)用于“打底”,一个高性价比模型(如 DeepSeek/GLM)用于“搬砖”。
3.2 重头戏:oh-my-openCode 集成手册
如果说 OpenCode 是发动机,那么 Oh-My-OpenCode 3.0 就是那套让车跑出自动驾驶效果的“操作系统”。3.0 版本的安装不再需要你手敲复杂的 JSON 配置,而是全程交互式引导。
3.2.1 丝滑的安装过程记录
我们需要用到 bun 来驱动这个增强包(没装 bun 的同学先跑 npm i -g bun):
# 使用 bunx 或 npx 均可
npx oh-my-opencode@latest init
或是,直接在 opencode 里输入以下内容
Install and configure oh-my-opencode by following the instructions here:
https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/refs/heads/master/docs/guide/installation.md
这时候你会进入一个交互式安装器界面,它会像安装向导一样问你:

安装完成后,它会自动在 ~/.zshrc 或 ~/.bashrc 里注入环境变量,重启终端后,你的 OpenCode 就已经完成了“脱胎换骨”的改造。
3.2.2 三位一体:让 AI 组团为你打工
集成 3.0 后,你会发现 OpenCode 变更聪明了,因为它背后现在坐着三个角色:
- Prometheus(普罗米修斯):它是你的“需求翻译官”。当你指令模糊时,它会反复确认:“你是要改登录接口的验证逻辑,还是改前端的样式?”方案定不下来,它绝不动手。
- Atlas(阿特拉斯):它是项目经理。你只需要一个
/start-work,它就会把任务拆成 1、2、3 步,盯着执行进度,确保最后交付的东西没跑偏。 - Sisyphus(西西弗斯):它是那个任劳任怨的代码民工。3.0 极大地优化了它的执行 Prompt,现在它写出来的代码不仅能跑通,而且很少出现那种低级的语法错误。
知识补充💡 为什么起这些怪名字?(角色背后的深意)
可能有部分读者觉得这几个名字绕口,其实 oh-my-opencode 的作者挺有情怀,这三个名字精准对应了开发流程里的三个痛点:
- Prometheus(普罗米修斯):神话里他为人类盗取火种,点亮智慧。在 3.0 里,他就是那个“点亮需求”的人。AI 编程最怕“瞎干”,他存在的意义就是通过反复确认,把原本模糊的需求变成清晰的火种,照亮后面的开发路径。
- Atlas(阿特拉斯):神话里那位双肩顶起苍天的巨神。在项目里,他是“抗事儿”的。整个任务的生命周期、复杂的执行链条全压在他肩膀上,他负责顶住压力,确保任务不崩、进度不乱。
- Sisyphus(西西弗斯):那个推石上山的受难者。说白了,写代码、改 Bug、跑测试、失败了再重来……这就是程序员的“推石头”日常。Sisyphus 承担了最枯燥、最重复的体力活,但他现在变聪明了,知道怎么推石头最省力,甚至能帮你把石头稳稳地推上山顶。
3.3 Ultrawork 模式实战:DeepSeek 撸码,GPT-4o 审计
3.0 最让我上头的莫过于 Ultrawork 模式(简称 ulw)。这才是真正的“成本优化黑科技”。
如何实现“模型缝合”?
在配置好自动映射后,我现在的典型工作流是这样的:
-
下达指令:
ulw fix the login error and add unit tests -
后台调度:
- DeepSeek V3 接手了 90% 的重构和单元测试编写任务,因为这部分逻辑清晰且重复性高,用 DeepSeek 几乎不花钱。
- GPT-4o 负责最后的“安全审计”和“逻辑校验”。一旦 DeepSeek 写的测试跑不通,GPT 会立刻介入寻找深层 Bug。
-
成果交付:
整个过程我不需要手动切模型,Oh-My-OpenCode 会根据任务难度自动完成“丝滑切换”。
实战体感:
以前用原生工具,改个 Bug 我得盯着屏幕看它输出,稍微复杂点就得手动切模型。现在用了 ulw 模式,成本降低了 90% 以上,我再也没有过 Token 焦虑,真的实现了“下班前给个指令,明天看结果”的理想状态。
3.4 用 frontend-design 让 AI 生成数据分析 Dashboard
去这个页面下载这个 skills。

解压后放入 ~/.opencode/skills ,若 skills 目录不存在手动创建个,之后再进入 opencode ,写如下 prompt
设计一个 AI 产品的数据分析 Dashboard。左侧是导航栏,顶部放四个数据卡片显示今日概览(用户数、调用次数、收入、增长率),中间是 7 天趋势折线图,右侧放最近的 API 调用记录列表。
接下来 opencode 就开始工作了。

然后打开 ~/dashboard.html,就能看到成品了。

3.5 移植 claude code / 配置 mcp server
上一篇《从 Stdio 到 HTTP:用 Go 打造按需加载的 SQLite MCP Server》用 golang 写了个 sqlite mcp server,之前也安装过 mcp-server-mysql,如下配置是可以正常在 claude code 启动的
{
"mcpServers": {
"mysql": {
"type": "stdio",
"command": "node",
"args": [
"/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql/dist/index.js"
],
"cwd": "/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql",
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "******",
"MYSQL_DB": "demo"
}
},
"my-go-sqlite": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8080/sse",
"--allow-http"
]
}
}
}
那么这个如何移植到 opencode 中,只需输如如下提示词
创建一个将别的 MCP 的json配置转换为适合 OpenCode 的MCP配置格式,
OpenCode MCP 配置参考:https://open-code.ai/zh/docs/mcp-servers
比如如下的这个
{
"mcpServers": {
"mysql": {
"type": "stdio",
"command": "node",
"args": [
"/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql/dist/index.js"
],
"cwd": "/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql",
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "******",
"MYSQL_DB": "demo"
}
},
"my-go-sqlite": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8080/sse",
"--allow-http"
]
}
}
}
接下来只需等个几分钟,就会自动生成对应的 opencode 版本的配置

保存到 ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"oh-my-opencode@latest"
],
"mcp": {
"mysql": {
"enabled": true,
"type": "local",
"command": [
"node",
"/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql/dist/index.js"
],
"environment": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "******",
"MYSQL_DB": "demo"
}
},
"my-go-sqlite": {
"enabled": true,
"type": "remote",
"url": "http://localhost:8080/sse"
}
}
}
接下来重新打开 opencode,就可以用到这两个 mcp server 了。

细心的朋友应该能发现,可以在 opencode 进行闭环了,而不用问大模型或是谷歌了。
3.6 把 mcp 转换成 skill 的模式
接下来,把上一节中的 mcp server 配置让 opencode 转换成 skill 的模式。
1、我本地有两个 mcp server,放在 opencode 中的 ~/.config/opencode/opencode.json,配置如下
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"oh-my-opencode@latest"
],
"mcp": {
"mysql": {
"enabled": true,
"type": "local",
"command": [
"node",
"/opt/homebrew/lib/node_modules/@benborla29/mcp-server-mysql/dist/index.js"
],
"environment": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "******",
"MYSQL_DB": "demo"
}
},
"my-go-sqlite": {
"enabled": true,
"type": "remote",
"url": "http://localhost:8080/sse"
}
}
}
2、接下来,我让你将生成的转换MCP的说明以及Python脚本修改为skill的模式,并放在当前项目的skills目录下
接下来等几分钟,然后会提示已经改好了,第一个就是把 ~/.config/opencode/opencode.json 恢复成原状
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"oh-my-opencode@latest"
]
}
然后在打开 opencode 的目录 skill 目录

然后,再新开个命令行窗口,输入
opencode debug skill
发现已经加载了。
接下来,就再次问下上一小节的问题。

注意:
opencode debug skill默认加载全局的 skill,若当前目录有符合条件的 skill 也会加载出来。当然了,若都想配置到全局,只需在 opencode 中说出来就行,opencode 便会很智能的给你完成。

四、 避坑指南与局限性
4.1 Token 消耗监控:别让 API 欠费
虽然用了 DeepSeek 后便宜了很多,但如果你在 ulw 模式下开启了“全量文件扫描”,Token 消耗依然会像跑表一样跳动。
- 建议:在 oh-my-opencode 里设置一个
max_tokens_per_task的阈值。别让它在死循环里反复纠结,最后账单出来让你肉疼。
4.2 复杂逻辑下的“幻觉”处理技巧
AI 毕竟是 AI,有时候它会一本正经地胡说八道,甚至发明一个根本不存在的 npm 包。
- 对策:善用 Sisyphus(西西弗斯) 的反馈机制。如果它写的代码报错了,别急着骂它,把报错信息直接贴回给它。通常在第二次或第三次“自愈”后,它能找到正确的路。记住,越是复杂的逻辑,越要拆成小任务给它。
4.3 当前版本的不足
OpenCode 虽然猛,但也不是完美的:
- UI 交互:全 CLI 界面对新手还是有门槛。
- 启动速度:在超大型项目(几十万行代码)里,索引建立的速度还有提升空间。
- 生态碎片化:网上的 Skill 质量参差不齐,有些过时的 Skill 可能会导致整个 Agent 崩溃。
五、 结语:开源精神的胜利
5.1 为什么我们依然需要开源的 AI 工具?
在 Anthropic 拔网线、各大厂商试图把用户锁死在自家生态里的时候,OpenCode 的存在就像是一个“避风港”。
它证明了:开发者不应该成为 API 的附庸。我们需要的不是一个高高在上的“上帝模型”,而是一个可以被我们拆解、组装、甚至随心所欲更换“心脏”(模型)的工具。开源不仅是为了省那几块钱,更是为了那份掌控感。
5.2 对 OpenCode 未来生态的展望
随着 OpenAI 与 OpenCode 的官宣合作,以及 oh-my-opencode 这种社区增强包的爆发,未来的终端编程可能会变成一种“声明式开发”:你只负责表达意图,剩下的繁琐执行交给这群“希腊大神”。
开源的火种已经点燃,与其担心被 AI 替代,不如先学会如何指挥这支属于你自己的“数字开发组”。
最后的最后:OpenCode 并非万能灵药,而是一套复杂的工业化模组。它能让你从“搬砖工”变成“监工’”,但合格的监工必须懂行——你如果不具备识别烂代码和排查 MCP 环境的能力,这个 AI 工具可能会让你陷入“修 Bug”的西西弗斯循环中。
更多推荐


所有评论(0)