解锁 Google 官方终端 AI 助手,直接在命令行重构你整个工程
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
一、Gemini CLI 是什么
Gemini CLI 是 Google 官方推出的命令行 AI 助手。
它可以:
阅读整个工程
分析代码
修改代码
生成代码
解释报错
帮助重构
编写文档
与 Git 配合工作
…
例如:
gemini
进入交互模式:
> 解释 native_bridge.cpp
或者:
> 帮我找 JNI 注册函数
甚至:
> 帮我分析整个 Android 工程
二、安装 Node.js
Gemini CLI 基于 Node.js。
官方下载:https://nodejs.org/
安装完成后打开 PowerShell:
node -v
例如:
v24.18.0
再检查 npm:
npm -v
例如:
11.16.0
说明环境正常。
三、安装 Gemini CLI
打开 PowerShell:
npm install -g @google/gemini-cli
等待安装。
检查:
gemini --version
例如:
0.50.0
说明安装成功。
四、第一次运行
输入:
gemini
第一次会提示:
Sign in with Google
浏览器自动打开:
Google 登录
选择自己的 Google 账号。
授权完成后返回 PowerShell。
>
这就是 Gemini CLI。
五、使用 API Key
除了 Google 登录,还可以使用 Gemini API Key。
获取 API 密钥:https://aistudio.google.com/
复制 API Key 密钥
粘贴 API Key 到 Gemini CLI
如何想修改 API Key,可以执行下面的命令:
/auth
终端会弹出一个交互菜单,列出几种身份验证方法。通过方向键选择 “ Use Gemini API Key” 设置新的 API Key。
六、退出 Gemini CLI
按两次快捷键退出:
Ctrl + C
输入退出命令退出:
/exit
或者:
/quit
六、升级 Gemini CLI
升级:
npm update -g @google/gemini-cli
或者:
npm install -g @google/gemini-cli@latest
查看版本:
gemini --version
七、卸载
npm uninstall -g @google/gemini-cli
八、进入工程目录
例如:
D:\Projects\TestApp
PowerShell:
cd D:\Projects\TestApp
然后:
gemini
Trust folder
Gemini 就能看到工程中的所有文件,可以直接分析整个工程。
九、设置代理
执行下面命令设置代理,比如代理软件端口是 16888:
setx HTTPS_PROXY "http://127.0.0.1:16888"
setx HTTP_PROXY "http://127.0.0.1:16888"
查看当前代理
echo $env:HTTPS_PROXY
echo $env:HTTP_PROXY
移除代理
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "User")
注意:当前 PowerShell 不会自动刷新,所以设置或者删除代理后需要:
关闭 PowerShell
重新打开
十、.geminiignore
.geminiignore 文件的作用类似于 .gitignore,它专门用于向 Gemini CLI 指示在扫描、搜索和读取代码库时需要忽略/排除哪些文件或目录。
它的主要作用包括:
提高 Token 效率:避免 AI 在读取文件树、检索代码时,扫描无关的大型文件夹(如依赖包、编译产物、本地缓存等),从而大幅节省 Token 消耗并加快响应速度。
保护隐私与安全:可以配置忽略包含敏感数据、API 密钥、个人凭证或私密配置的文件,防止这些内容被意外读入 AI 的上下文。
减少搜索噪点:在进行全局代码搜索时,自动过滤掉二进制文件、第三方库、日志文件等,确保 AI 能够专注于您自己的核心源代码。
比如,可以在工程根目录新建一个 .geminiignore,添加如下内容:
# Git
.git/
# Python
__pycache__/
*.pyc
.venv/
# Build
build/
dist/
# Android
.gradle/
.idea/
*.apk
*.aab
*.dex
# Native build
cmake-build-*/
obj/
libs/
十一、GEMINI.md
GEMINI.md 是在使用 Google Gemini 相关的开发者工具(如 Gemini CLI 或 IDE 插件)时,用来给 AI 提供局部上下文、特定规则和作业指示 的上下文配置文件。
它的核心逻辑类似于项目开发中的 README.md,但 README.md 是写给人类开发者看的,而 GEMINI.md 是写给 Gemini 看的指令书。
Android 工程 GEMINI.md 示例
# Gemini Context & Rules for Android Project
你当前正在作为高级 Android 架构师,协助开发一个现代化的 Android 应用。请在所有的代码生成、重构和审查中严格遵守以下团队规范。
## 1. 核心技术栈与版本约束
- **编程语言**: 100% Kotlin。禁用 Java,除非是遗留类迁移。
- **UI 框架**: Jetpack Compose。严禁使用传统 XML Layouts / ViewBinding。
- **异步处理**: Kotlin Coroutines & Flow。全面替代 RxJava 或 Handler。
- **依赖注入**: Hilt (Dagger-Hilt)。
- **网络层**: Retrofit2 + Serialization (禁用 Gson)。
## 2. 架构模式 (Architecture Style)
项目严格采用基于 Jetpack 组件的 **MVVM (Model-View-ViewModel)** 架构,结合单向数据流 (UDF) 模式:
- **View (Compose)**: 必须是无状态的 (Stateless)。所有的点击事件和 UI 状态必须通过 Lambda 向上抛给 ViewModel,禁止在 Composable 中直接修改状态。
- **ViewModel**: 使用 `MutableStateFlow` 管理 UI 状态,并暴露为只读的 `StateFlow` 给 UI 监听。必须通过 `viewModelScope` 启动协程。
- **Repository**: 作为单一数据源 (SSOT),负责封装网络请求和本地数据库 (Room),严禁在 ViewModel 中直接进行网络请求。
## 3. 代码编写与命名规范
- **Compose 命名**: 所有 `@Composable` 函数必须使用 **大驼峰命名法 (PascalCase)** (例如: `HomeScreen`, `OrderListItem`)。
- **状态管理**: 统一使用 `uiState` 命名 ViewModel 的状态流:
```kotlin
private val _uiState = MutableStateFlow<UserUiState>(UserUiState.Loading)
val uiState: StateFlow<UserUiState> = _uiState.asStateFlow()
你可以将它放置在 Android 项目的根目录 下。当你通过 Gemini 聊天、生成代码或重构时,AI 就会自动遵循这里定义的架构、命名规范和第三方库选择,从而避免写出过时的代码。
补充:与 AGENTS.md 的关系
在 Google 的一些特定生态(如 Android Studio 中的 Gemini 助手)中,你会看到一个非常类似的文件叫 AGENTS.md。它们的作用几乎完全相同,如果同一个目录下同时存在这两个文件,通常云端工具或 IDE 会优先读取 GEMINI.md 。
十二、user location is not supported for the API use
当请求提示如下:
✕ [API Error: {"error":{"message":"{\n \"error\": {\n \"code\": 400,\n \"message\": \"User location is not supported for the
API use.\",\n \"status\": \"FAILED_PRECONDITION\"\n }\n}\n","code":400,"status":"Bad Request"}}]
也就是说,API 服务根据你的请求来源判断你的地理位置(通常通过 IP、账号地区等),发现该地区不在支持列表中,因此拒绝请求。
首先确认自己的 IP 地址是否在可用地区,比如可以在 https://gemini.google.com/app 设置中看到当前自己的 IP 地址所在的地区
或者 google 搜索 where am i
如果不是就切换到支持的节点再刷新一下看看。
再看看自己的账号关联地址,点击账号头像,点击右下角的服务条款。
可以看到账号的关联地区
另外如何你的账号还没做年龄认证也会拒绝请求,点击下面链接扫脸认证一下就行了。
https://myaccount.google.com/age-verification/selfie/privateid/init?hl=en&utm_source=p0
十三、会话管理
进入 Gemini:
gemini
打开会话列表:
/resume
上下选择会话,Enter 进入会话,x 删除会话,q 退出
恢复最近一次会话
gemini -r
或者:
gemini --resume
命令行查看会话列表
gemini --list-sessions
例如:
1 Android Hook
2 OpenSSL
3 Test
删除第2个会话:
gemini --delete-session 2
Session 存储位置:
C:\Users\<用户名>\.gemini\tmp\
十四、切换 Gemini 模型
Gemini CLI 支持:
Auto 自动选择
Pro 高质量推理
Flash 高速度
方法 1:启动时指定模型
例如:
gemini --model gemini-3.1-flash-lite
或者:
gemini -m gemini-3.1-flash-lite
方法 2:配置文件
编辑:
~/.gemini/settings.json
例如:
{
"model": {
"name": "gemini-2.5-pro"
}
}
方法 3:会话中动态切换模型
进入 Gemini:
gemini
输入:
/model
出现选择:
十五、Google AI 模型选型
彻底免费的开源模型(可本地下载或在平台免费跑)
gemma-4-31b-it
gemma-4-26b-a4b-it
这两款是 Google 发布的 Gemma 4 开源大模型。由于采用了 Apache 2.0 开源协议,它们的模型权重是完全公开且免费的。你可以通过 Ollama 或 Hugging Face 免费下载到自己的本地电脑/服务器上运行,或者在 Kaggle、Hugging Face Spaces 等平台上免费在线试用。
以下模型在免费层级(Free Tier)下是可以免费调用的(有每分钟/每日请求次数限制,通常不可用于高并发商用):
gemini-3.1-flash-lite(在 AI Studio 中提供免费 API 额度,非常适合轻量、快速的对话)
gemini-3-flash-preview / gemini-3.5-flash(Flash 系列在测试和预览阶段通常都有非常宽裕的免费测试额度)
gemini-3.1-pro-preview / gemini-2.5-pro(Pro 系列的预览版一般也提供免费限额,但正式商用后 Pro 级别通常需要付费)
如果你只是日常对话、写代码或测试,选 gemini-3.1-flash-lite 或者切换到 gemini-3.5-flash 即可,它们在云端端调用最省心且有免费额度;
