一键安装与配置:OpenCode + oh-my-opencode 完整教程(TaoToken 统一 Key 接入版)
1. 为什么我要把 OpenCode 和 oh-my-opencode 装在一起
OpenCode 是一个跑在终端里的 AI 编码助手,你可以把它理解成「开源版的 Claude Code」:在项目目录里敲 opencode,它就能读你的代码、改文件、跑命令。而 oh-my-opencode(后面简称 OMO)是它的增强框架,装完之后会多出一批分工明确的子代理,比如专门做架构推理的、专门查资料的、专门做代码审查的,还能按任务类型自动挑模型。
这套组合适合谁?适合想在自己电脑上长期用 AI 写代码、又不想被单一模型绑死的人。你可以今天用这个模型写业务逻辑,明天换另一个模型做重构,配置全在自己手里。
但真正装的时候,坑往往不在 OpenCode 本身,而在「模型接入」这一步:每个模型厂商一个 Key、一个 baseURL、一套模型名,配置文件改到崩溃。这篇教程的做法是:用 TaoToken 的统一 Key 作为唯一入口,OpenCode 和 OMO 都指向它,配置文件只写一份,模型名按需切换。下面从零开始,一步步跑到能对话为止。
2. 装之前先把 TaoToken 的 Key 和地址准备好
TaoToken 在这里扮演的角色是「统一模型入口」:你只需要一个 API Key,就能在 OpenCode 和 OMO 里调用不同厂商的模型,不用为每个模型单独注册、单独配 baseURL。对本地编码工具来说,这能省掉大量重复配置。
第一步,打开官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册账号。注册流程很常规,邮箱加密码即可。
第二步,进控制台创建 API Key。地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,在「API Keys」页面点新建,复制出来的 Key 形如 sk-xxxxxxxx。这个 Key 只显示一次,先粘到记事本里。
第三步,记住两个地址,后面配置要用:
| 用途 | 地址 |
|---|---|
| API 基础地址(baseURL) | https://taotoken.net/api |
| 模型列表 / 文档 | https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite |
注意:baseURL 填
https://taotoken.net/api,不要自己加/v1,OpenCode 的 provider 配置会自动补路径。加了反而容易 404。
如果你还没决定用哪个模型,可以先到模型对话页 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 试几句,确认 Key 能用、模型有响应,再往下装工具。这一步能帮你把「Key 问题」和「工具问题」分开排查。
3. 安装 OpenCode 与 oh-my-opencode
3.1 环境准备
先确认 Node.js 版本,OMO 要求 OpenCode ≥ 1.0.150,Node 建议 18 以上:
node -v
npm -v
如果版本太低,用 nvm 切一个 20.x 的版本。用 nvm 的同学建议先把 npm 全局目录固定下来,避免切版本后全局包丢失:
npm config set prefix ~/.npm-global
npm config set cache ~/.npm-cache
export PATH=~/.npm-global/bin:$PATH
国内下载慢的话换镜像:
npm config set registry https://registry.npmmirror.com
3.2 安装 OpenCode
三种方式选一种。官方脚本最省事:
curl -fsSL https://opencode.ai/install | bash
Node 用户推荐全局安装:
npm install -g opencode-ai
装完验证:
opencode --version
能打印出版本号(比如 1.0.15x)就说明 OpenCode 本体没问题。如果提示 command not found,八成是全局 bin 目录没进 PATH,回到 3.1 检查 npm config get prefix 的输出,把它的 bin 子目录加进 PATH。
3.3 安装 oh-my-opencode
OMO 依赖 OpenCode 已装好。推荐用交互式安装,它会引导你选模型、填 Key:
npx oh-my-opencode install
Bun 用户可以用 bunx oh-my-opencode install,速度更快。安装过程中会问你要接哪个模型,这里先随便选一个跳过也行,因为下一步我们会直接用配置文件覆盖成 TaoToken 的统一入口。
装完验证两件事:
omo --version
opencode --omo status
第一条打印 OMO 版本,第二条打印 OMO 与 OpenCode 的连接状态。两条都正常,说明框架层通了。
4. 用 TaoToken 统一 Key 配置 OpenCode 与 OMO
这一步是整篇的核心。OpenCode 和 OMO 各有一个配置文件,我们把两者都指向 TaoToken。
4.1 配置 OpenCode
配置文件位置:~/.config/opencode/opencode.json(Windows 在 %USERPROFILE%\.config\opencode\opencode.json)。没有就新建。完整骨架如下:
{
"$schema": "https://opencode.ai/config.json",
"model": "taotoken/claude-sonnet-4-5",
"provider": {
"taotoken": {
"npm": "@ai-sdk/openai-compatible",
"name": "TaoToken",
"options": {
"baseURL": "https://taotoken.net/api",
"apiKey": "{env:TAOTOKEN_API_KEY}"
},
"models": {
"claude-sonnet-4-5": {
"name": "Claude Sonnet 4.5",
"limit": { "context": 200000, "output": 16384 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"limit": { "context": 200000, "output": 16384 }
},
"qwen3-coder-plus": {
"name": "Qwen3 Coder Plus",
"limit": { "context": 128000, "output": 8192 }
}
}
}
}
}
几个关键点解释一下。provider 的键名 taotoken 是自定义的,你可以叫任何名字,但 model 字段里的前缀必须和它一致,所以 model 写成了 taotoken/claude-sonnet-4-5。npm 字段指定用 OpenAI 兼容协议,TaoToken 的接口就是这个协议,所以能直接对接。apiKey 用 {env:TAOTOKEN_API_KEY} 从环境变量读,比明文写进文件安全。
设置环境变量:
export TAOTOKEN_API_KEY="sk-你复制的Key"
Windows PowerShell:
$env:TAOTOKEN_API_KEY="sk-你复制的Key"
想永久生效就写进 ~/.bashrc 或 ~/.zshrc。models 里列出的模型名要和 TaoToken 文档里的模型 ID 一致,具体有哪些可以到 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 查,或者直接在模型对话页看可选列表。
4.2 配置 oh-my-opencode
配置文件位置:~/.config/oh-my-opencode/config.json。OMO 的模型名格式是 provider/model,provider 同样用 taotoken:
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json",
"agents": {
"hephaestus": { "model": "taotoken/claude-sonnet-4-5", "temperature": 0.2 },
"oracle": { "model": "taotoken/gpt-5-codex", "temperature": 0.2 },
"librarian": { "model": "taotoken/qwen3-coder-plus", "temperature": 0.3 },
"explore": { "model": "taotoken/qwen3-coder-plus", "temperature": 0.1 },
"prometheus": { "model": "taotoken/claude-sonnet-4-5", "temperature": 0.3 },
"momus": { "model": "taotoken/gpt-5-codex", "temperature": 0.1 }
},
"categories": {
"quick": { "model": "taotoken/qwen3-coder-plus", "temperature": 0.1 },
"deep": { "model": "taotoken/claude-sonnet-4-5", "temperature": 0.3 },
"writing": { "model": "taotoken/claude-sonnet-4-5", "temperature": 0.4 }
}
}
这里只列了部分代理和分类,你可以按需增删。原则是:需要强推理的代理(oracle、prometheus)挂能力强的模型,日常快速任务(quick、explore)挂便宜快的模型。改完运行:
opencode --omo reload
让 OMO 重新加载配置。
4.3 让输出默认说中文
在 ~/.config/opencode/AGENTS.md 里加一段全局规则,所有会话都会遵守:
## 交互要求
1. 所有内部推理过程使用中文。
2. 所有回答内容使用中文,仅代码语法关键词保留英文。
这个文件是 OpenCode 的全局指令入口,写进去的规则优先级高于单次对话里的临时要求。
5. 验证:从启动到模型回显
配置写完不算完,得跑一遍确认链路通。按顺序做这四步。
第一步,启动 OpenCode。进任意项目目录:
cd your-project
opencode
如果配置有语法错误,启动时会直接报 JSON 解析失败,并指出行号。没有报错就说明配置文件格式没问题。
第二步,检查模型是否被识别。在 OpenCode 交互界面里输入 /models,应该能看到 taotoken 下面挂的那几个模型。看不到的话,多半是 provider 键名和 model 前缀不一致,回去核对 4.1。
第三步,发一句测试。直接输入:
用一句话说明这个项目是做什么的
正常情况会流式返回中文回答。如果卡住不动,先看终端有没有报 401 或 404。401 是 Key 问题,404 是 baseURL 问题。
第四步,验证 OMO 子代理。退出后运行:
opencode --omo agents
会列出所有可用代理。挑一个跑一下,比如让它审查当前目录的一个文件,观察是否正常返回。这一步通了,说明 OMO 的模型配置也生效了。
如果你更想先在网页端确认模型可用性,可以到 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 发同样的问题,对比两边的返回,能快速判断问题出在工具侧还是 Key 侧。
6. 常见报错与排查
报错一:401 Unauthorized。 九成是 Key 没读到。先确认环境变量在当前 shell 里存在:
echo $TAOTOKEN_API_KEY
输出为空说明没 export,或者你 export 的终端和运行 opencode 的终端不是同一个。Windows 下注意 PowerShell 和 CMD 的环境变量不互通。
报错二:404 Not Found 或 model not found。 检查 baseURL 是不是写成了 https://taotoken.net/api/v1。正确写法不带 /v1。另外确认 models 里的模型 ID 拼写和文档一致,大小写敏感。
报错三:OMO 报 unknown provider taotoken。 说明 OMO 没读到 OpenCode 的 provider 定义。OMO 的模型解析依赖 OpenCode 的 provider 配置,确认两个配置文件都在 ~/.config 下,且 OpenCode 的 provider 键名确实是 taotoken。改完记得 opencode --omo reload。
报错四:启动就崩,提示 JSON 解析失败。 用 python -m json.tool ~/.config/opencode/opencode.json 校验一下,它会指出具体哪一行多了逗号或少了括号。JSON 不允许尾随逗号,这是最常见的低级错误。
报错五:能对话但特别慢或超时。 先换一个模型试试,排除是单个模型的问题。如果所有模型都慢,检查本机网络到 taotoken.net 的连通性。另外 OMO 的某些代理默认 temperature 偏高,长任务下会显得慢,可以适当调低。
报错六:opencode --omo status 显示未连接。 通常是 OMO 版本和 OpenCode 版本不匹配。用 omo --version 和 opencode --version 对比,必要时重装 OMO:npx oh-my-opencode install 覆盖安装一次。
排查顺序建议固定成:先 echo $TAOTOKEN_API_KEY 确认 Key,再 curl 一下接口确认网络,最后看配置文件。这样能把问题范围快速缩小到某一层。
7. 接下来怎么用得更顺
装好只是起点。日常使用中,我建议把常用模型的 Key 和地址固定成环境变量,配置文件里只留模型名,换模型时改一行 model 字段就行,不用动 provider。OMO 那边也是同理,把代理和模型的映射关系当成一张「分工表」维护,重推理的活给强模型,格式化的活给快模型,成本和质量都能兼顾。
如果你打算长期在终端里用 AI 编码,可以到 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 管理你的 Key,需要新增或轮换时直接在这里操作。接入过程中遇到配置层面的问题,文档页 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 里有各客户端的对接示例,可以对照检查。想把编码任务跑成长期工作流的话,Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 有更完整的方案说明。
最后留一个实用习惯:每次改完配置文件,先跑 opencode --version 和 opencode --omo status 两条命令,确认工具层没坏,再进交互界面测模型。这样出问题时你能立刻知道是配置改坏了还是模型侧的问题,省下大量来回试的时间。
更多推荐

所有评论(0)