Appearance
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