用了4个月Claude Code后我换成了OpenCode为什么换工具我从去年11月开始用Claude Code写代码。体验确实好理解能力强多文件重构一气呵成。但用了4个月后两个问题越来越让人烦第一Claude API挂了两次。一次是凌晨2点赶一个线上bug的热修复Claude全球限流我的终端卡在那里转圈。当时项目只能干等。第二费用。Claude Code跑一个大仓库的重构任务一次对话烧掉十几美元是常事。我算了一下一个月光CLI agent就花了400多刀。Sonnet便宜点但复杂任务它经常漏改文件。今年3月初同事丢了一个GitHub链接给我OpenCode。装上试了一周现在它成了我的默认工具。OpenCode是什么一句话一个支持75模型的AI编程CLI工具。你可以接Claude、GPT、Gemini、Llama、DeepSeek甚至本地跑的Ollama模型。核心卖点就是不绑定任何一家。它不是简单的API封装。v1.3.0本周刚发布有几个我觉得值得说的功能双Agent架构。一个Plan Agent负责分析代码、理清依赖关系、出方案一个Build Agent负责改文件、跑测试。Tab键切换。Plan Agent是只读的不会动你的代码适合先看方案再决定改不改。Auto Compact。长对话的token会越来越多越到后面响应越慢、越贵。OpenCode会自动压缩对话历史保留关键信息把冗余上下文丢掉。我在一个持续3天的重构任务里试了这个token消耗比Claude Code低了大概40%。Git集成的Session Review。不用再开另一个终端跑git diff了。TUI里直接能看哪些文件被改了改了什么Agent为什么这么改。安装和配置macOS/Linux用Homebrewbrew install anomalyco/tap/opencodenpm也行npm i -g opencode-ailatest装好之后在项目目录里运行opencode第一次启动会让你配置模型。这里是重点——你可以同时配多个Provider。配置文件示例在项目根目录创建opencode.json{ provider: { default: anthropic, anthropic: { apiKey: ${ANTHROPIC_API_KEY}, model: claude-sonnet-4-20250514 }, openai: { apiKey: ${OPENAI_API_KEY}, model: gpt-4.1 }, ollama: { baseUrl: http://localhost:11434, model: llama3:70b } }, fallback: [openai, ollama], autoCompact: true }fallback字段是关键。如果默认的Anthropic挂了或者限流了OpenCode会自动切到OpenAIOpenAI也不行就用本地Ollama。不用你手动切换不用中断工作流。复用已有订阅如果你已经有ChatGPT Plus或GitHub Copilot的订阅OpenCode可以直接用这些账号的模型。配置方式# 用ChatGPT Plus的额度 opencode auth login --provider openai --method browser # 用GitHub Copilot opencode auth login --provider copilot --method github这个我要说一句用聊天订阅跑CLI agent在技术上可行但可能违反某些Provider的TOS。自己权衡风险。实际使用一个重构案例上周我用OpenCode重构了一个Node.js项目的数据库层从原生pg迁移到Drizzle ORM。项目大概有120个文件30多个数据库查询散落在各处。第一步用Plan Agent分析 /plan 把所有pg原生查询迁移到Drizzle ORM需要分析哪些文件有数据库调用 Plan Agent扫描了整个仓库列出了 - 14个service文件包含直接的pool.query()调用 - 3个middleware里有事务处理 - 2个cron job文件有批量INSERT - 1个migration脚本需要重写这一步完全只读不改任何代码。我花了5分钟过了一遍Plan Agent列出的文件列表和依赖关系确认没有遗漏。第二步切到Build Agent执行 /build 按照plan的结果从service层开始迁移。先处理user-service.ts Build Agent的操作 1. 安装了drizzle-orm和drizzle-kit自动跑npm install 2. 根据现有SQL创建了schema定义文件 3. 把user-service.ts里的6个pool.query改成了Drizzle的链式API 4. 跑了项目的测试套件 5. 测试失败了2个——一个是类型不匹配一个是null处理 6. 自动修了这两个问题重新跑测试全过完了整个过程我就是在TUI里看着它干活。需要我确认的地方它会停下来问。14个service文件我大概花了3个小时全部迁移完。手动做这个活儿我估计至少两天。费用对比这次重构任务我用的是Claude Sonnet作为默认模型。3个小时的对话Auto Compact开着总费用大概8.5美元。同样规模的任务我之前用Claude Code做过类似的另一个项目从Sequelize迁移到Prisma花了大概22美元。差异主要来自Auto Compact省下的token。踩坑记录用了一周多踩了几个坑写出来给后来人1. Ollama本地模型的上下文窗口问题。Llama3 70B默认的上下文窗口是8K。作为fallback模型跑大仓库分析8K完全不够。需要启动Ollama的时候加参数OLLAMA_NUM_CTX32768 ollama serve或者在Modelfile里设置PARAMETER num_ctx 327682. 文件权限。OpenCode会直接用shell命令操作文件。如果你的项目目录有些文件是只读的比如生成的protobuf代码它改不了会报错但不会告诉你是权限问题只会说failed to write file。排查了半天才发现。3. Auto Compact可能丢上下文。我有一次在对话早期提了一个特定的代码风格要求所有数据库错误用自定义Error类包装对话进行到第40多轮的时候Auto Compact把这条信息压缩掉了。后面生成的代码又开始用原生Error。解决办法把重要的约束写到项目根目录的.opencode/rules.md文件里这个文件每次都会被加载不会被Compact掉。4. Node.js运行时的问题。v1.3.0之前OpenCode只支持Bun。如果你公司只允许Node.js之前没法用。这个版本加了Node.js支持但要注意用opencode --runtime node启动否则默认还是找Bun。和Claude Code对比怎么看不想做那种A工具比B工具好的结论。实际情况是各有适合的场景。Claude Code的优势在于Anthropic对自家模型的调优没得说上下文理解能力确实更强。做那种帮我理解这段代码在干什么的分析任务Claude Code的输出质量比OpenCode套一个同模型要好一点。可能是Anthropic在System Prompt层面做了针对性优化。OpenCode的优势在于灵活。不怕单点故障不怕一家涨价。本地模型兜底让你在没有网络的环境也能干活。Auto Compact在长任务上省钱。我现在的用法日常开发用OpenCode默认Claude Sonnetfallback到本地Llama需要做复杂代码分析或者架构设计的时候切回Claude Code用Opus。总结OpenCode不是什么革命性的东西。它解决的问题很具体别把自己绑死在一家模型上。2026年的AI编程工具市场变化太快了。去年此时Cursor还是绝对主流现在大家都在CLI里写代码了。哪家模型明天会降价、哪家会限流、哪家会发布新版本改掉API——你控制不了。但你可以选择一个工具让切换成本接近于零。OpenCode GitHubhttps://github.com/anomalyco/opencode 文档https://opencode.ai/docs 本周v1.3.0更新日志https://github.com/anomalyco/opencode/releases/tag/v1.3.0
用了4个月Claude Code后,我换成了OpenCode
发布时间:2026/6/10 1:13:04
用了4个月Claude Code后我换成了OpenCode为什么换工具我从去年11月开始用Claude Code写代码。体验确实好理解能力强多文件重构一气呵成。但用了4个月后两个问题越来越让人烦第一Claude API挂了两次。一次是凌晨2点赶一个线上bug的热修复Claude全球限流我的终端卡在那里转圈。当时项目只能干等。第二费用。Claude Code跑一个大仓库的重构任务一次对话烧掉十几美元是常事。我算了一下一个月光CLI agent就花了400多刀。Sonnet便宜点但复杂任务它经常漏改文件。今年3月初同事丢了一个GitHub链接给我OpenCode。装上试了一周现在它成了我的默认工具。OpenCode是什么一句话一个支持75模型的AI编程CLI工具。你可以接Claude、GPT、Gemini、Llama、DeepSeek甚至本地跑的Ollama模型。核心卖点就是不绑定任何一家。它不是简单的API封装。v1.3.0本周刚发布有几个我觉得值得说的功能双Agent架构。一个Plan Agent负责分析代码、理清依赖关系、出方案一个Build Agent负责改文件、跑测试。Tab键切换。Plan Agent是只读的不会动你的代码适合先看方案再决定改不改。Auto Compact。长对话的token会越来越多越到后面响应越慢、越贵。OpenCode会自动压缩对话历史保留关键信息把冗余上下文丢掉。我在一个持续3天的重构任务里试了这个token消耗比Claude Code低了大概40%。Git集成的Session Review。不用再开另一个终端跑git diff了。TUI里直接能看哪些文件被改了改了什么Agent为什么这么改。安装和配置macOS/Linux用Homebrewbrew install anomalyco/tap/opencodenpm也行npm i -g opencode-ailatest装好之后在项目目录里运行opencode第一次启动会让你配置模型。这里是重点——你可以同时配多个Provider。配置文件示例在项目根目录创建opencode.json{ provider: { default: anthropic, anthropic: { apiKey: ${ANTHROPIC_API_KEY}, model: claude-sonnet-4-20250514 }, openai: { apiKey: ${OPENAI_API_KEY}, model: gpt-4.1 }, ollama: { baseUrl: http://localhost:11434, model: llama3:70b } }, fallback: [openai, ollama], autoCompact: true }fallback字段是关键。如果默认的Anthropic挂了或者限流了OpenCode会自动切到OpenAIOpenAI也不行就用本地Ollama。不用你手动切换不用中断工作流。复用已有订阅如果你已经有ChatGPT Plus或GitHub Copilot的订阅OpenCode可以直接用这些账号的模型。配置方式# 用ChatGPT Plus的额度 opencode auth login --provider openai --method browser # 用GitHub Copilot opencode auth login --provider copilot --method github这个我要说一句用聊天订阅跑CLI agent在技术上可行但可能违反某些Provider的TOS。自己权衡风险。实际使用一个重构案例上周我用OpenCode重构了一个Node.js项目的数据库层从原生pg迁移到Drizzle ORM。项目大概有120个文件30多个数据库查询散落在各处。第一步用Plan Agent分析 /plan 把所有pg原生查询迁移到Drizzle ORM需要分析哪些文件有数据库调用 Plan Agent扫描了整个仓库列出了 - 14个service文件包含直接的pool.query()调用 - 3个middleware里有事务处理 - 2个cron job文件有批量INSERT - 1个migration脚本需要重写这一步完全只读不改任何代码。我花了5分钟过了一遍Plan Agent列出的文件列表和依赖关系确认没有遗漏。第二步切到Build Agent执行 /build 按照plan的结果从service层开始迁移。先处理user-service.ts Build Agent的操作 1. 安装了drizzle-orm和drizzle-kit自动跑npm install 2. 根据现有SQL创建了schema定义文件 3. 把user-service.ts里的6个pool.query改成了Drizzle的链式API 4. 跑了项目的测试套件 5. 测试失败了2个——一个是类型不匹配一个是null处理 6. 自动修了这两个问题重新跑测试全过完了整个过程我就是在TUI里看着它干活。需要我确认的地方它会停下来问。14个service文件我大概花了3个小时全部迁移完。手动做这个活儿我估计至少两天。费用对比这次重构任务我用的是Claude Sonnet作为默认模型。3个小时的对话Auto Compact开着总费用大概8.5美元。同样规模的任务我之前用Claude Code做过类似的另一个项目从Sequelize迁移到Prisma花了大概22美元。差异主要来自Auto Compact省下的token。踩坑记录用了一周多踩了几个坑写出来给后来人1. Ollama本地模型的上下文窗口问题。Llama3 70B默认的上下文窗口是8K。作为fallback模型跑大仓库分析8K完全不够。需要启动Ollama的时候加参数OLLAMA_NUM_CTX32768 ollama serve或者在Modelfile里设置PARAMETER num_ctx 327682. 文件权限。OpenCode会直接用shell命令操作文件。如果你的项目目录有些文件是只读的比如生成的protobuf代码它改不了会报错但不会告诉你是权限问题只会说failed to write file。排查了半天才发现。3. Auto Compact可能丢上下文。我有一次在对话早期提了一个特定的代码风格要求所有数据库错误用自定义Error类包装对话进行到第40多轮的时候Auto Compact把这条信息压缩掉了。后面生成的代码又开始用原生Error。解决办法把重要的约束写到项目根目录的.opencode/rules.md文件里这个文件每次都会被加载不会被Compact掉。4. Node.js运行时的问题。v1.3.0之前OpenCode只支持Bun。如果你公司只允许Node.js之前没法用。这个版本加了Node.js支持但要注意用opencode --runtime node启动否则默认还是找Bun。和Claude Code对比怎么看不想做那种A工具比B工具好的结论。实际情况是各有适合的场景。Claude Code的优势在于Anthropic对自家模型的调优没得说上下文理解能力确实更强。做那种帮我理解这段代码在干什么的分析任务Claude Code的输出质量比OpenCode套一个同模型要好一点。可能是Anthropic在System Prompt层面做了针对性优化。OpenCode的优势在于灵活。不怕单点故障不怕一家涨价。本地模型兜底让你在没有网络的环境也能干活。Auto Compact在长任务上省钱。我现在的用法日常开发用OpenCode默认Claude Sonnetfallback到本地Llama需要做复杂代码分析或者架构设计的时候切回Claude Code用Opus。总结OpenCode不是什么革命性的东西。它解决的问题很具体别把自己绑死在一家模型上。2026年的AI编程工具市场变化太快了。去年此时Cursor还是绝对主流现在大家都在CLI里写代码了。哪家模型明天会降价、哪家会限流、哪家会发布新版本改掉API——你控制不了。但你可以选择一个工具让切换成本接近于零。OpenCode GitHubhttps://github.com/anomalyco/opencode 文档https://opencode.ai/docs 本周v1.3.0更新日志https://github.com/anomalyco/opencode/releases/tag/v1.3.0