Gemini CLI 最近很火啊,谷歌大善人啊。但是我今天准备尝试用的时候遇到了一个授权登录的问题。我选择使用个人谷歌账户来进行验证,但我在尝试的时候一直遇到两个问题。
Failed to login. Message: This account requires setting the GOOGLE_CLOUD_PROJECT env var.
它一直要我设置Google Cloud Project 的环境变量,哪怕我已经在网页看到了 Gemini Code Assist 已经获得访问账号的授权也没用。

这条消息说我需要先去设置一下 GOOGLE_CLOUD_PROJECT 的环境变量。我看了一下,果然是我这个账号在 Google Cloud 上有项目。而且蛋疼的是,跟我这个账号关联的账号都会被要求设置这个环境变量。
1. 打开 https://console.cloud.google.com/
2. 选择一个项目,或者创建一个新项目。然后复制项目ID。

3. 将项目ID设置到环境变量中,命名为 GOOGLE_CLOUD_PROJECT。
设置环境变量的方法有很多,你可以直接在命令行工具里设置,也可以自己去系统里设置。
Windows (CMD):
set GOOGLE_CLOUD_PROJECT=你的项目ID
Windows (PowerShell):
$env:GOOGLE_CLOUD_PROJECT="项目ID"
macOS / Linux (Bash/Zsh):
export GOOGLE_CLOUD_PROJECT=你的项目ID
还可以直接去系统里设置,打开高级系统设置 → 高级 → 环境变量,新建即可。
4. 搜索 Gemini for Google Cloud 这个服务并启用。然后回到命令行工具,就可以使用了。如果你是Windows用户,建议使用 Powershell。我用 CMD 的时候有时候会输入之后没有一点反应。

Failed to login. Message: Invalid URL
这个问题一开始也困扰了我很久,不管是设置全局,还是开TUN 模式,都不行。最后发现也是设置环境变量的问题。

你需要设置一个代理的环境变量。
Windows (CMD):
set http_proxy=http://127.0.0.1:7897
Windows (PowerShell):
$env:http_proxy="http://127.0.0.1:7897"
macOS / Linux (Bash/Zsh):
export http_proxy=http://127.0.0.1:7897
设置完成后,记得打开你的代理软件,规则模式就可以了。
Client network socket disconnected before secure TLS connection was established
我还遇到了个问题。后来发现是因为我前面加了 https_proxy 的变量。所以只要删掉 https_proxy 的变量就好了。只保留 http_proxy 的环境变量。
Error: Client network socket disconnected before secure TLS connection was established
at TLSSocket.onConnectEnd (node:_tls_wrap:1732:19)
at TLSSocket.emit (node:events:530:35)
at endReadableNT (node:internal/streams/readable:1698:12)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
Emitted 'error' event on TLSSocket instance at:
at emitErrorNT (node:internal/streams/destroy:170:8)
at emitErrorCloseNT (node:internal/streams/destroy:129:3)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
code: 'ECONNRESET',
path: undefined,
host: '127.0.0.1',
port: 7897,
localAddress: undefined
}
