乔人尹 - opencode
type: channel
link: https://underestimated.cn/tag/opencode/
items: Opencode从入门到放弃

Opencode从入门到放弃
type: item
date: 2026-01-07T12:56:00+00:00
description: 写在前面：一个工具囤积癖患者的自我救赎作为一个AI系统的架构师，我的日常就是和YOLO模型、分布式系统、以及各种妖魔鬼怪般的Bug打交道。为了提高生产力（其实是为了早点下班），我尝试过市面上几乎所有的AI编程工具：timeline title 我的AI编程工具血泪史 2023年初 : GitHub Copilot : "这玩意儿怎么老是补全错误的代码" 2024年底 : Cursor : "真香！但是钱包在哭泣" 2025年初 : Deepseek Coder : "便宜是便宜，但是..." 2025年中 : Claude Code : "更香了！钱包哭得更大声了" 2025年底 : Opencode : "等等，这个开源的好像可以"今天这篇文章，我不是来吹Opencode多牛逼的。我是来告诉你：在什么场景下用它，什么场景下放弃它。毕竟，"从入门到放弃"系列的精髓就是——知道何时该放弃，也是一种智慧。第一章：为什么我要再折腾一个新工具？1.1 先说说那些年我用过的"前任"们工具优点让我想分手的理由月成本CursorUI漂亮，集成度高，Composer很强订阅制绑架，离线就废了$10+Claude Code终端原生，上下文理解强也是订阅制，而且只能用Claude$20+Deepseek Coder便宜，中文理解好复杂任务容易翻车，速度玄学¥很少GitHub Copilot补全快，集成好只会补全，不会思考$0你看出问题了吗？要么贵，要么能力不够，要么被厂商锁定。作为一个经历过某云厂商跑路的人，我对"被锁定"有着深深的PTSD。1.2 Opencode凭什么入选？mindmap root((为什么选Opencode)) 开源自由 MIT协议 可以魔改 不怕跑路 成本可控 用自己的API Key 按量付费 可以用便宜模型 多模型支持 Claude全家桶 GPT全家桶 Gemini 本地模型 终端原生 不用离开vim 管道友好 脚本可集成简单说：Opencode = 开源版Claude Code + 多模型支持 + 你自己的API Key它不是最强的，但它是最可控的。第二章：安装配置——三分钟搞定（如果运气好的话）2.1 安装# macOS / Linux brew tap opencode-ai/opencode brew install opencode # 或者用Go安装（如果你是Go语言信徒） go install github.com/opencode-ai/opencode@latest # Windows用户...建议换Mac（开玩笑的，去GitHub下载exe）2.2 配置文件配置文件在 ~/.config/opencode/config.json，但我建议你这样搞：# 先设置环境变量（安全第一） export ANTHROPIC_API_KEY="sk-ant-xxxxx" export OPENAI_API_KEY="sk-xxxxx" # 然后创建配置 mkdir -p ~/.config/opencode我的配置文件长这样：{ "providers": { "anthropic": { "apiKey": "${ANTHROPIC_API_KEY}" }, "openai": { "apiKey": "${OPENAI_API_KEY}" }, "openrouter": { "apiKey": "${OPENROUTER_API_KEY}" } }, "models": { "default": "anthropic:claude-sonnet-4-20250514", "fast": "anthropic:claude-haiku-3-5-20241022", "powerful": "anthropic:claude-opus-4-20250514" }, "ai": { "autoCompact": true, "contextWindow": 180000 } }2.3 第一个坑：API Key权限症状：配置完运行报错 401 Unauthorized原因：你的API Key可能没开对应模型的权限解决：# 先测试API Key是否有效 curl https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-20250514","max_tokens":10,"messages":[{"role":"user…