两个环境变量,把 Google 官方的 Gemini CLI 指向 apimodels,用你的余额跑 gemini-3 系列 —— 读写文件、跑命令、多轮 agent 任务全在本机执行。大约 2 分钟。
| 变量 | 值 |
|---|---|
| GOOGLE_GEMINI_BASE_URL | https://api.apimodels.app |
| GEMINI_API_KEY | 你的 apimodels API Key(sk_ 开头,原样填) |
| -m / --model | gemini-3-flash-preview(便宜快)或 gemini-3.1-pro-preview(最强) |
重要: base URL 只填到 https://api.apimodels.app —— 不要加 /v1beta 或任何路径,SDK 自己会拼 /v1beta/models/…。我们同时支持 generateContent 与 streamGenerateContent(SSE 流式),CLI 的两种调用都能接住。
npm install -g @google/gemini-cli
# 或临时试用 / or try it without installing:
npx @google/gemini-cli需要 Node.js 20+。装完跑 gemini --version 看到版本号即成功。
macOS / Linux
# ~/.zshrc
echo 'export GOOGLE_GEMINI_BASE_URL="https://api.apimodels.app"' >> ~/.zshrc
echo 'export GEMINI_API_KEY="sk_…your_apimodels_key…"' >> ~/.zshrc
source ~/.zshrcWindows (PowerShell)
# PowerShell
[Environment]::SetEnvironmentVariable("GOOGLE_GEMINI_BASE_URL", "https://api.apimodels.app", "User")
[Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "sk_…your_apimodels_key…", "User")首次启动会问登录方式 —— 选「Use Gemini API key」,不要选 Google 账号登录(那会绕过 base URL 走 Google 官方)。
curl -s "https://api.apimodels.app/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "contents": [{ "role": "user", "parts": [{ "text": "Reply with exactly: ok" }] }] }'返回里有 "text": "ok" 即通。这条 curl 用的 x-goog-api-key 头正是 Gemini CLI 实际发送的鉴权方式 —— 它通了,CLI 就通了。
cd your-project
gemini -m gemini-3-flash-preview| 模型 ID | 说明 |
|---|---|
| gemini-3.1-pro-preview | 最强,复杂重构/长任务 |
| gemini-3-pro-preview | 强推理 |
| gemini-3-flash-preview | 快且便宜,日常首选 |
| gemini-2.5-pro / gemini-2.5-flash | 上一代,更低价 |
工具调用(读写文件、跑命令依赖的 functionCall)在这批模型上都已实测可用。
| 401 / Invalid API key | GEMINI_API_KEY 没生效(重开终端或 source ~/.zshrc),或 key 填错。用上面的 curl 单独验证。 |
| 走了 Google 官方而不是 apimodels | 登录方式选成了 Google 账号。重新启动并选「Use Gemini API key」;确认 GOOGLE_GEMINI_BASE_URL 已导出。 |
| 沙箱模式下 401 | Gemini CLI 的沙箱可能不继承环境变量(上游已知问题)。先用非沙箱模式,或在沙箱配置里显式透传这两个变量。 |
| 模型名报错 | 只用上表列出的 id;带 -thinking 后缀的变体是给 API 深度推理用的,CLI 里不需要。 |