opencode(https://github.com/anomalyco/opencode)在ub...
생성일: 2026년 1월 29일
생성일: 2026년 1월 29일
下面按 Ubuntu 24.04 的常见用法,讲清楚在 OpenCode(anomalyco/opencode)里如何接入第三方“中转站 / 代理站”的 OpenAI 兼容 API(也就是有 baseURL、/v1、/chat/completions 这类接口)。
官方文档给了多种方式,Linux 上最通用的是 npm: (OpenCode)
bash# 需要有 Node/npm(一般用 apt 或 nvm 装) npm install -g opencode-ai # 验证 opencode --version
openai provider,只改 baseURLOpenCode 支持给任何 provider 设置 options.baseURL(代理/自建端点都用这个)。(OpenCode)
如果你的中转站就是 OpenAI 兼容接口,这个方式通常比“自定义 provider”更不容易踩坑。
在你的全局配置(~/.config/opencode/opencode.json)或项目根目录(opencode.json)里写:(OpenCode)
jsonc{ "$schema": "https://opencode.ai/config.json", "provider": { "openai": { "options": { "baseURL": "https://你的中转站域名/v1" } } }, "model": "openai/gpt-5" }
然后在 TUI 里录入 key:
cd /path/to/projectopencode/connect,选择 OpenAI,粘贴你中转站发的 key(或 OpenAI key)~/.local/share/opencode/auth.json)(OpenCode)/models 选模型关键点:
baseURL一般要带/v1,除非你的中转站明确不需要。(OpenCode)
OpenCode 文档给了“Custom provider(Other)”的标准做法:先 /connect 录入一个自定义 provider id,然后在 opencode.json 里声明它使用 @ai-sdk/openai-compatible,并配置 options.baseURL。(OpenCode)
/connect → 选择 Othermyrelayopencode.json:jsonc{ "$schema": "https://opencode.ai/config.json", "provider": { "myrelay": { "npm": "@ai-sdk/openai-compatible", "name": "My Relay", "options": { "baseURL": "https://你的中转站域名/v1", "apiKey": "{env:MYRELAY_API_KEY}" // 或者不写 apiKey,改用 /connect 存到 auth.json }, "models": { "gpt-4.1-mini": { "name": "GPT-4.1 mini (relay)" }, "deepseek-chat": { "name": "DeepSeek Chat (relay)" } } } }, "model": "myrelay/gpt-4.1-mini" }
options.apiKey 支持用 {env:...} 读取环境变量;也支持加自定义 headers。(OpenCode)
如果你用环境变量方式,shell 里加:
bashexport MYRELAY_API_KEY="sk-xxxx" opencode
OpenCode 配置会按优先级合并加载:远程 → 全局 ~/.config/opencode/opencode.json → OPENCODE_CONFIG → 项目根 opencode.json … (OpenCode)
建议:
opencode.jsonbashopencode auth list
文档也建议用它来检查 custom provider 的凭据。(OpenCode)
GitHub 上有一个仍处于 Open 状态的问题:某些版本下,@ai-sdk/openai-compatible 的 options(包括 baseURL/apiKey)可能没有被真正传递,导致请求没走你的中转站而报 404 / NotFound。(GitHub)
如果你按方案 B 配完仍然不走 baseURL:
如果你把“中转站”的信息按下面 3 个点贴出来(脱敏即可),我可以直接给你一份可用的 opencode.json(含正确的 model 命名和 baseURL 形式):
https://xxx.com/v1 还是 https://xxx.com)Authorization: Bearer ... / 自定义 header / query 参数)gpt-4.1-mini / deepseek-chat / qwen 等)randy@randy-CP300Z3:/power-meter-wiring-simulator-backend ls /.config/opencode$/.config/opencode//power-meter-wiring-simulator-backend ls
bun.lock node_modules package.json
randy@randy-CP300Z3:
bun.lock node_modules package.json
randy@randy-CP300Z3:
你现在这个现象其实很正常:~/.config/opencode/ 里看到的 bun.lock / node_modules / package.json,说明你装到的是 JS 包/依赖目录,但 OpenCode 的“配置文件”(opencode.json / opencode.jsonc)并不会自动生成在这里;而且你运行的是 opencode-cli,它也不等同于文档里的官方命令 opencode。官方 CLI 默认就是 opencode,不带参数会直接进 TUI。 (OpenCode)
下面给你一套“最少步骤、能跑通中转站”的做法(Ubuntu 24.04)。
在终端执行:
bashwhich opencode opencode-cli || true opencode --version || true opencode-cli --version || true
opencode(默认启动 TUI)。(OpenCode)opencode-cli,很可能是装了别的包/旧包名,建议直接按官方方式装一次,避免路径/版本混乱。(DeepWiki)bashcurl -fsSL https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | bash
装完后新开一个 shell,再确认:
bashopencode --version
(这是官方 README 推荐方式之一)(DeepWiki)
~/.config/opencode/ 根目录OpenCode 会自动向上查找 项目内的 opencode.json / opencode.jsonc,也会读用户目录里的 ~/.config/opencode/ 作为“搜索目录之一”,但它要找的是 .opencode/ 目录 或 项目根的 opencode.json。(DeepWiki)
最简单:在你的项目根目录(~/power-meter-wiring-simulator-backend)创建 opencode.json:
bashcd ~/power-meter-wiring-simulator-backend nano opencode.json
填入(中转站是 OpenAI 兼容接口时最稳的写法:直接改 openai provider 的 baseURL):
jsonc{ "$schema": "https://opencode.ai/config.json", "provider": { "openai": { "options": { "baseURL": "https://你的中转站域名/v1" } } }, "model": "openai/gpt-4.1-mini" }
baseURL通常要带/v1(除非你的中转站明确要求不带)。(DeepWiki)
在项目根目录运行:
bashopencode
进入后:
/connect凭据管理命令可以用:
bashopencode auth list
(auth list / auth login 是官方 CLI 的一部分)(open-code.ai)
如果你不想在 TUI 里存 key,可以:
bashexport OPENAI_API_KEY="sk-xxxx" opencode
(OpenCode 会自动从环境变量检测 provider keys,这是它的启动流程之一。)(DeepWiki)
可以,但要提醒你:社区里有人遇到过 @ai-sdk/openai-compatible 的 options(如 baseURL)没被正确传递导致不走中转站的问题;这种情况下更建议你用我上面给的“方案:openai provider + baseURL”。(GitHub)
你现在在:
~/power-meter-wiring-simulator-backend
那就直接执行这三步基本能通:
bashcd ~/power-meter-wiring-simulator-backend nano opencode.json # 写入我给的配置(baseURL 改成你的中转站) opencode # 进 TUI 用 /connect 录 key
如果你把中转站这三项(可脱敏)发我:
https://xxx/v1 还是 https://xxxdeepseek-chat、gpt-4.1-mini、qwen2.5 等)我可以把 opencode.json 里 model 和 baseURL 写成你那家站能直接用的版本。