Appearance
Gemini CLI / OpenCode 接入
Gemini 原生协议和 OpenAI Compatible 不是同一套路径。Gemini CLI 使用根地址,OpenCode Gemini provider 使用 /v1beta。
Gemini CLI
bash
export GOOGLE_GEMINI_BASE_URL="https://portdan.com"
export GEMINI_API_KEY="sk-your-api-key"
export GEMINI_MODEL="gemini-2.0-flash"Windows PowerShell:
powershell
$env:GOOGLE_GEMINI_BASE_URL="https://portdan.com"
$env:GEMINI_API_KEY="sk-your-api-key"
$env:GEMINI_MODEL="gemini-2.0-flash"Key 填 Portdan 控制台原始 Key。不要填 Google AI Studio 的 Key,也不要加 #gemini 后缀。
OpenCode Gemini provider
json
{
"provider": {
"gemini": {
"npm": "@ai-sdk/google",
"options": {
"baseURL": "https://portdan.com/v1beta",
"apiKey": "sk-your-api-key"
}
}
},
"$schema": "https://opencode.ai/config.json"
}OpenCode OpenAI provider
如果你在 OpenCode 里使用 OpenAI 平台分组,则写:
json
{
"provider": {
"openai": {
"options": {
"baseURL": "https://portdan.com/v1",
"apiKey": "sk-your-api-key"
}
}
},
"$schema": "https://opencode.ai/config.json"
}OpenCode Anthropic provider
普通 Claude / Anthropic:
json
{
"provider": {
"anthropic": {
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://portdan.com/v1",
"apiKey": "sk-your-api-key"
}
}
},
"$schema": "https://opencode.ai/config.json"
}OpenCode 的 provider 配置按其 SDK 适配层使用 /v1。Claude Code 命令行的 ANTHROPIC_BASE_URL 则使用 https://portdan.com,不要混淆。
Antigravity OpenCode
Claude:
json
{
"provider": {
"antigravity-claude": {
"name": "Antigravity (Claude)",
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://portdan.com/antigravity/v1",
"apiKey": "sk-your-api-key"
}
}
},
"$schema": "https://opencode.ai/config.json"
}Gemini:
json
{
"provider": {
"antigravity-gemini": {
"name": "Antigravity (Gemini)",
"npm": "@ai-sdk/google",
"options": {
"baseURL": "https://portdan.com/antigravity/v1beta",
"apiKey": "sk-your-api-key"
}
}
},
"$schema": "https://opencode.ai/config.json"
}排查
| 现象 | 检查项 |
|---|---|
| 401 | Key 是否原样复制,是否误加后缀 |
| 404 | Gemini CLI 是否误填 /v1beta,OpenCode Gemini 是否误填根地址 |
| model not found | 模型是否属于当前 Key 的 Gemini 或 Antigravity 分组 |
