1. 为什么第一次用 opencode 总卡在 settings 这一步
opencode 是一个跑在终端里的 AI 编程助手,能读你本地仓库、按自然语言改代码、执行命令,适合习惯命令行、又想让模型直接参与编码流程的开发者。它本身只是个客户端,真正决定“能不能用、用哪个模型”的,是那份 settings 配置。很多人下载完敲opencode能进界面,一提问就报错,问题几乎都出在配置没接对。
我见过最多的场景是这样:装完 opencode,默认指向某个官方端点,结果要么网络不通,要么没有对应模型的访问权限,终端里刷出一行local proxy failed或者401,然后就不知道从哪改了。其实 opencode 的配置逻辑很直白——它需要一个兼容 OpenAI 风格的 Base URL、一个 Key、一个 Model ID,这三样填对,通道就通了。
这篇就按“下载 → 安装 → 改 settings → 发一次最小请求验证”的顺序走一遍,把 settings 片段直接给你,Key 填哪里、模型 ID 写什么、怎么确认生效,全部落到可复制的操作上。适合第一次接触 opencode、想把它接到统一模型通道上的开发者。读完你能自己完成一次完整配置,并知道报错时先看哪一行。
2. TaoToken 前置准备:拿到 Base URL、Key 和 Model ID
opencode 要连的通道,我用的是 TaoToken。它提供 OpenAI 兼容接口,所以 opencode 这种按 OpenAI 协议发请求的客户端可以直接对接,不用改源码。你要准备的就三样东西,缺一不可。
第一是 Base URL。opencode 走 API 协议,填的是https://taotoken.net/api。注意这里不要带任何查询参数,就是干净的接口根地址,opencode 会自己在后面拼/v1/chat/completions这类路径。
第二是 API Key。登录后在控制台的 API Keys 页面创建,形如sk-开头的一串。这个 Key 就是身份凭证,opencode 每次请求都带着它。创建后立刻复制保存,页面刷新后一般不再完整显示。
第三是 Model ID。这个必须和你账号里可用的模型对上,写错会直接报模型不存在。常见的是 Claude 系列和 GPT 系列的标识,具体以你控制台里列出的为准。opencode 配置里模型名要一字不差。
提示:Base URL、Key、Model ID 这三件套是后面所有配置的核心,建议先在一个文本文件里记好,改 settings 时直接粘贴,避免手打出错。
如果你还没创建 Key,进控制台的 API Keys 页面新建一个即可。整个准备过程不涉及任何网络工具,就是正常登录、点按钮、复制字符串。准备好这三样,下面直接进配置文件。
3. 可复制配置:把 opencode 的 settings 改到 TaoToken
opencode 的配置分两层:一层是全局配置,放在用户目录下;一层是项目级配置,放在仓库根目录。第一次用建议先改全局,这样所有项目都能用同一套通道。全局配置文件路径通常是~/.config/opencode/opencode.json,Windows 下在%USERPROFILE%\.config\opencode\opencode.json。如果目录不存在,手动建一下。
配置文件是 JSON 格式,核心就是 provider 段。下面这份可以直接复制,把 Key 和 Model ID 换成你自己的:
{ "$schema": "https://opencode.ai/config.json", "provider": { "taotoken": { "npm": "@ai-sdk/openai-compatible", "name": "TaoToken", "options": { "baseURL": "https://taotoken.net/api", "apiKey": "sk-你的Key粘贴在这里" }, "models": { "claude-sonnet-4-5": { "name": "Claude Sonnet 4.5" } } } }, "model": "taotoken/claude-sonnet-4-5" }几个关键点解释一下。npm字段声明用 OpenAI 兼容的适配器,TaoToken 是 OpenAI 风格接口,所以选这个。baseURL就是上一步的 API 地址,结尾不要加斜杠。apiKey填你创建的 Key。models里键名是实际发给接口的 Model ID,值只是显示名,可以随便写。最后的model字段指定默认用哪个,格式是provider名/模型键名。
如果你更习惯用环境变量管理 Key,可以把apiKey那行换成读取环境变量,避免明文写在文件里:
"apiKey": "{env:TAOTOKEN_API_KEY}"然后在 shell 里export TAOTOKEN_API_KEY=sk-你的Key。这样配置文件可以安全地提交到仓库或分享。
项目级配置同理,在仓库根目录建opencode.json,结构一样,会覆盖全局设置。团队协作时把项目级配置提交上去,每个人只需本地设好自己的 Key 环境变量,模型和地址就统一了。
改完保存,回到终端。opencode 启动时会读这份配置,如果 JSON 有语法错误,它会直接报解析失败,所以改完最好用编辑器检查一下括号和逗号。
4. 验证请求:发一次最小对话确认通道生效
配置写完不代表通了,必须发一次真实请求验证。最直接的方式是在终端里跑 opencode 的非交互模式,让它回答一句话。进入你的项目目录,执行:
opencode run "用一句话说明这个仓库是做什么的"如果配置正确,你会看到模型开始流式输出回答,终端里逐字打印。这就说明 Base URL、Key、Model ID 三样都对上了,请求成功到达 TaoToken 并返回了结果。
想更纯粹地验证通道、不牵扯仓库内容,可以直接用 curl 打一次接口,排除 opencode 本身的干扰:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "回复两个字:通了"}] }'正常会返回一段 JSON,choices[0].message.content里就是模型的话。如果这一步通了,说明通道没问题,opencode 那边再报错就是配置格式的事;如果这一步就失败,那就是 Key 或模型 ID 的问题,先解决这里。
实测下来,最容易出问题的是 Model ID 写错。比如把claude-sonnet-4-5写成claude-sonnet-4.5,接口会返回模型不存在的错误。以控制台里列出的标识为准,复制粘贴最稳。
验证通过后,你就可以正常用 opencode 的交互模式了,直接敲opencode进界面,让它读代码、改文件、跑命令。通道已经打通,后面就是正常使用。
5. 常见报错排查:401、local proxy failed、reading choices
配置过程中会碰到几类典型报错,这里按真实终端输出对照着排。
401 Unauthorized。这是 Key 的问题。要么 Key 复制时漏了字符,要么 Key 已失效或被删。先检查配置文件里apiKey那行有没有多余空格,再确认 Key 在控制台里还是启用状态。用上面那条 curl 单独测一下,能快速定位是 Key 本身的问题还是 opencode 读取配置的问题。
local proxy failed。这个报错通常出现在 opencode 尝试连接但地址不对的时候。检查baseURL是不是写成了https://taotoken.net/api/带了结尾斜杠,或者误加了别的路径。正确值就是https://taotoken.net/api,让客户端自己拼后续路径。另外确认配置文件路径没放错,opencode 读的是~/.config/opencode/opencode.json,放错目录等于没配。
reading choices 相关报错,比如解析响应时读不到choices字段。这多半是返回体不是预期的 OpenAI 格式,常见原因是 Base URL 指到了错误的端点,或者 Model ID 对应的模型不支持当前调用方式。先确认baseURL正确,再用 curl 看原始返回长什么样,对比choices是否存在。
OAuth 相关报错。opencode 某些 provider 走 OAuth 登录流程,如果你混用了配置,可能触发它去走 OAuth 而不是用你的 Key。确认 provider 段用的是@ai-sdk/openai-compatible适配器加apiKey字段,而不是 OAuth 类型的配置。把 provider 配置保持成第 3 节给的那份,就不会走到 OAuth 分支。
排查顺序建议固定下来:先 curl 测通道,再查配置文件路径和 JSON 语法,最后核对 Model ID。三步走完,绝大多数报错都能定位。踩过的坑基本都在这几类里,按这个顺序查比盲目改配置快得多。
6. 把通道固定下来:后续使用与 Key 管理
配置一次通过后,日常使用就没什么额外动作了。opencode 每次启动读同一份 settings,通道稳定。你要做的只是偶尔管理 Key,比如轮换或给不同项目分配不同 Key。
Key 的管理在控制台的 API Keys 页面,可以新建、删除、查看创建时间。建议一个用途一个 Key,比如个人开发一个、CI 环境一个,出问题时能快速定位和单独吊销。删除旧 Key 后记得同步更新配置文件或环境变量,否则下次请求就是 401。
如果团队多人协作,把项目级opencode.json提交到仓库,Key 用环境变量注入,这样配置统一、凭证不泄露。新成员拉下代码,设好自己的环境变量就能直接用,不用每人手改一遍模型和地址。
模型切换也很简单,改配置文件里model字段的值,指向models里另一个键名即可。想临时换模型,也可以在 opencode 交互界面里用命令切换,不用改文件。长期编码或跑 Agent 任务的话,可以了解下 Coding Plan 这类方案,按用量规划更省心。
到这里,从下载安装到 settings 配置、再到验证和排错,整条链路就闭环了。核心就三件套:Base URL 填https://taotoken.net/api,Key 填你创建的,Model ID 和控制台对齐。把这三样填进opencode.json,跑一次opencode run看到输出,通道就算真正生效了。后面遇到问题,回到第 5 节的三步排查法,基本都能自己解决。