# 在 Gemini CLI 中使用 OAIRoute
> Google 官方的命令行 AI 工具
> 支持自定义端点，可指向 OAIRoute
> 适合终端里做文件检索与批量处理
## 第一步：获取 API Key
在 [OAIRoute 控制台](https://api.oairoute.com/keys) 创建。
## 第二步：安装 Gemini CLI
```bash
npm install -g @google/gemini-cli
```
## 第三步：设置环境变量
- `GOOGLE_GEMINI_BASE_URL` (string / 必填) — 填 `https://api.oairoute.com`。不带 `/v1`，CLI 会自己拼路径。
- `GEMINI_API_KEY` (string / 必填) — 你的 OAIRoute Key。
**macOS / Linux：**
```bash
echo 'export GOOGLE_GEMINI_BASE_URL="https://api.oairoute.com"' >> ~/.zshrc
echo 'export GEMINI_API_KEY="sk-xxxxxxxx"' >> ~/.zshrc
source ~/.zshrc
```
**Windows PowerShell：**
```powershell
[Environment]::SetEnvironmentVariable("GOOGLE_GEMINI_BASE_URL", "https://api.oairoute.com", "User")
[Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "sk-xxxxxxxx", "User")
```
## 第四步：验证
```bash
gemini "列出当前目录下所有 Markdown 文件"
```
## 注意事项
Gemini CLI 走的是 Gemini 原生结构，不是 OpenAI 兼容结构。因此：
- 参数名是驼峰式，例如 `maxOutputTokens`
- 角色只有 `user` 与 `model`，没有 `assistant`
- 不支持 OpenAI 的 `tool_calls` 字段
如果 OAIRoute 端该模型返回结构不符，CLI 会报解析错误。此时换用 `gemini-2.5-pro` 试试。
> **Note:** 
> Gemini CLI 的部分功能（如内置的 Google 搜索工具）依赖 Google 侧的服务端能力，经由网关调用时可能不可用。核心的对话与文件读取功能不受影响。
## 常见问题
**提示 API key not valid**
环境变量名写错。Gemini CLI 读的是 `GEMINI_API_KEY`，不是 `GOOGLE_API_KEY`。
**报模型不存在**
CLI 默认用 `gemini-2.5-pro`。如果 OAIRoute 账号没有开通该模型，需要显式指定其他模型。
**输出中文乱码**
Windows 下把终端编码切到 UTF-8：`chcp 65001`。
**macOS / Linux**
```
export GOOGLE_GEMINI_BASE_URL="https://api.oairoute.com"
export GEMINI_API_KEY="sk-xxxxxxxx"
gemini "列出当前目录下所有 Markdown 文件"
```
**Windows PowerShell**
```
[Environment]::SetEnvironmentVariable(
  "GOOGLE_GEMINI_BASE_URL",
  "https://api.oairoute.com",
  "User"
)
[Environment]::SetEnvironmentVariable(
  "GEMINI_API_KEY",
  "sk-xxxxxxxx",
  "User"
)
```
**验证端点{Verify endpoint}**
```
curl 'https://api.oairoute.com/v1beta/models/gemini-2.5-pro:generateContent' \
  -H "Authorization: Bearer YOUR_OAIRoute_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"ping"}]}]}'
```
