编程工具
opencode
在 opencode 中添加 OhMyGPT,用一个 Key 使用模型列表里的所有模型。
opencode 通过它标准的 OpenAI 兼容包把 OhMyGPT 接入为 provider。在 opencode.json 里加一段配置,opencode 就能用你的 OhMyGPT Key 调用 Claude、GPT、GLM 以及模型列表里的其他模型;整套配置可以先用 ohmygpt/mock 免费测试。
配置
把 provider 添加到 ~/.config/opencode/opencode.json 可对所有项目生效;添加到项目根目录的 opencode.json 则只对该项目生效:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ohmygpt": {
"npm": "@ai-sdk/openai-compatible",
"name": "OhMyGPT",
"options": {
"baseURL": "https://api.ohmygpt.com/v1",
"apiKey": "{env:OHMYGPT_API_KEY}"
},
"models": {
"anthropic/claude-sonnet-5-5": {
"limit": { "context": 1000000, "output": 128000 }
},
"anthropic/claude-haiku-5-5": {
"limit": { "context": 1000000, "output": 128000 }
}
}
}
},
"model": "ohmygpt/anthropic/claude-sonnet-5-5",
"small_model": "ohmygpt/anthropic/claude-haiku-5-5"
}baseURL以/v1结尾,这个包会拼上/chat/completions。{env:OHMYGPT_API_KEY}从环境变量读取 Key,配置文件里不存放任何密钥。models下的每个键都是一个 OhMyGPT 模型 ID。limit告诉 opencode 何时压缩对话;数值从哪里来,见选择模型。model和small_model的格式是<provider key>/<model ID>。opencode 用small_model处理生成会话标题之类的轻量任务。
导出 Key 并启动 opencode:
export OHMYGPT_API_KEY="sk-..."
opencode运行 /models 可以在你列出的模型之间切换。
检查连接
opencode 发送的是 Chat Completions 请求。向免费测试模型 ohmygpt/mock 发送一个:
curl https://api.ohmygpt.com/v1/chat/completions \
-H "Authorization: Bearer $OHMYGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "ohmygpt/mock", "messages": [{"role": "user", "content": "ping"}]}'{
"id": "chatcmpl-ohmygpt-mock",
"object": "chat.completion",
"model": "mock",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "This is a mock reply from OhMyGPT. Your integration works; switch to a real model when ready."
},
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 15, "completion_tokens": 17, "total_tokens": 32 }
}想免费试用 opencode 本身,在 models 下添加 "ohmygpt/mock": {},再用 /models 选中它。mock 会调用 opencode 声明的第一个工具,拿到结果后用文本回答。账户完成充值后即可使用 mock 模型。
选择模型
所有对话模型都能在 opencode 中使用。列出它们,连同要填进 limit 的上下文长度和输出长度:
curl -s https://api.ohmygpt.com/v1/models \
| jq -r '.data[] | select(.available and any(.protocols[]?; .id == "openai-completions"))
| "\(.id)\tcontext=\(.context_length)\toutput=\(.limits.max_completion_tokens)"'anthropic/claude-sonnet-5-5 context=1000000 output=128000
openai/gpt-5.5 context=1050000 output=128000
zhipu/glm-5.3 context=1048576 output=131072
...各模型的价格见模型页面。
问题排查
| 现象 | 原因 | 解决办法 |
|---|---|---|
401,提示 Invalid API key | 运行 opencode 的 shell 中没有设置 OHMYGPT_API_KEY,{env:...} 取到的是空值 | 导出该变量并重启 opencode |
所有请求都返回 404 | baseURL 缺少 /v1 | 改为 https://api.ohmygpt.com/v1 |
404,提示模型不存在 | models 下的键不是 OhMyGPT 的模型 ID | 从 GET /v1/models 复制 ID |
/models 里没有这个 provider | opencode 没有加载这个文件,或 JSON 格式有误 | 检查文件路径并校验 JSON |
402 | 余额或 Key 的消费额度已用完 | 到账单页面充值 |
每个响应都带有 X-Request-ID 头,每个请求的费用可以在用量页面查看。