Skip to content

Gemini CLI 启动时间过长,高达 9.77 秒

问题

Gemini CLI 启动时会调用 refreshAuth() 初始化后端客户端,内部串行等待 experimentsPromise(访问内部 API proxy)和 quotaPromise。API proxy 本身需要约 1.42 秒启动 HTTP 服务,多个网络请求串行执行,导致总启动时间高达 9.77 秒。

受影响版本:0.34.0 及更早版本,部分用户在 0.38.x 也有反馈。

解决方案

方案一:升级到最新版本

官方已将此问题列为性能优化方向,升级到最新版本往往有所改善:

bash
npm install -g @google/gemini-cli@latest
# 或
npx @google/gemini-cli@latest

方案二:检查网络连接

启动慢的主要原因是认证初始化过程中的网络请求超时。确保网络畅通,尤其是能正常访问 Google 服务:

  • 使用代理/VPN 时,确认代理配置正确
  • 检查防火墙是否阻止 Gemini CLI 的 API 请求

方案三:使用 API Key 认证替代 OAuth

OAuth 认证(Google 账号登录)需要访问多个 Google 端点完成授权,而直接使用 Gemini API Key 可以跳过部分初始化流程:

bash
export GEMINI_API_KEY=你的APIKey
gemini

获取 API Key:访问 Google AI Studio

方案五:macOS 特有——TypeError fetch failed from undici

如果是 macOS(尤其是 Intel Mac)上出现启动时报 TypeError: fetch failed 错误(来自 Node.js 内置的 undici 网络库),通常是 Node.js 版本与 SSL/TLS 库不兼容导致:

bash
# 检查 Node.js 版本
node --version

# 推荐升级到 Node.js 20 LTS 或 22 LTS
# 用 nvm 管理版本
nvm install 20
nvm use 20

# 重装 Gemini CLI
npm install -g @google/gemini-cli@latest

如果通过 Homebrew 安装的,也可以尝试:

bash
brew upgrade node

方案四:确认是否存在磁盘 I/O 问题

Gemini CLI 启动时会读取本地配置文件(~/.gemini/settings.json)和缓存。检查 ~/.gemini/ 目录大小,如果会话历史文件过大,可以清理旧历史:

bash
# 查看目录大小
du -sh ~/.gemini/

# 清理旧会话(可选)
rm ~/.gemini/tmp/*.json 2>/dev/null