10分钟快速掌握Gemini CLI
一、Gemini CLI 是什么?能干嘛?
Gemini CLI 是 Google 出的一个开源命令行智能体工具,把 Gemini 模型直接搬进你的终端里。你可以在项目目录下打开它,让它:
理解/修改代码、写测试、查 bug
读文件、跑 shell 命令、查 Web 资料
管理自己的“记忆”、模型、配置等 (Gemini CLI)
它内部是一个 REPL:你像聊天一样打一段自然语言,它会按需调用各种工具(文件、shell、Web、MCP server 等)去完成任务。(Gemini CLI)
二、安装 & 启动:把 Gemini CLI 跑起来
1. 环境要求
官方推荐:
Node.js ≥ 20
macOS / Linux / Windows 都支持 (GitHub)
2. 安装方式
常用三种(任选其一即可)(GitHub):
1 | # 方式一:npx 即用即走(适合先试一试) |
安装后直接运行:
1 | gemini |
第一次启动会走一个简易引导。(Gemini CLI)
3. 登录 / 鉴权
第一次启动时,CLI 会问你“如何认证”:
终端里输入:
1
gemini
提示选择认证方式时选:Login with Google
浏览器弹出登录页面,选好账号 → 同意权限即可 (Gemini CLI)
如果你有 Google AI Studio / Vertex AI 的 API key,也可以用 key 的方式配置,不过这属于进阶内容,先略过。
三、基本交互:不加前缀就是“聊天”
开好之后,你就像在 Chat 一样直接打字:
1 | 帮我看下这个仓库的整体结构,下一步该从哪里读代码开始? |
这类“自然语言 + 项目上下文”的用法是最基础的。真正让 Gemini CLI 变强的,是它的命令体系——也就是本文重点。
四、命令体系总览:/、@、! 三剑客
Gemini CLI 的命令分三类:(Gemini CLI)
Slash 命令:
/xxx- 控制 CLI 自身行为,如模型、设置、会话、工具等
At 命令:
@path- 快速把文件/目录内容注入当前问题
Shell 命令:
!- 直接在 CLI 里执行系统 shell 命令
后面我会按场景拆开讲,每个命令配简单示例。
五、Slash 命令 /:控制 Gemini CLI 本身
Slash 命令是“元命令”,控制的是 CLI 而不是模型回答内容。文档里列了一长串内建命令,我们挑核心的逐个说。(Gemini CLI)
1. 会话与上下文相关
1.1 /chat:保存 / 恢复聊天状态
作用:手动给当前对话打一个“存档点”,以后可以恢复,适合做不同思路的分支实验。
常用子命令:
save/resume/list/delete/share(Gemini CLI)
示例:
1 | /chat save refactor-plan |
保存当前对话为 refactor-plan。
1 | /chat list |
列出所有存档 & 恢复某个存档。
1 | /chat share notes.md |
把当前对话导出成 Markdown 文件,方便贴到文档或 PR 描述里。(Gemini CLI)
用法建议:
一个项目多条主线时,用
/chat save <tag>做分支;录课程/写教程时,复用某个“教学对话”非常方便。
1.2 /compress:压缩上下文
- 作用:把当前长对话压缩成一段“总结”,作为新的上下文,节省 token。(Gemini CLI)
示例:
1 | /compress |
压缩后你可以继续在“总结基础上”提问,非常适合长时间迭代后做阶段性收敛。
1.3 /clear 和 /copy
/clear:清屏(类似clear命令),快捷键Ctrl+L。(Gemini CLI)/copy:把刚刚的回答复制到剪贴板(依赖各平台的剪贴板命令)。(Gemini CLI)
示例:
1 | /clear # 清理一下终端界面 |
2. 项目与上下文目录相关
2.1 /directory(或 /dir):管理工作目录
- 作用:让 CLI 一次“看多个目录”,而不是只看当前目录。(Gemini CLI)
常见用法:
1 | /directory add backend,frontend |
在 monorepo 或分前后端的项目里非常好用;
如果你用了沙箱模式,某些受限 profile 下可能不可用,需要用启动参数
--include-directories。(Gemini CLI)
2.2 /init:生成 GEMINI.md
- 作用:扫描当前目录,自动生成一个
GEMINI.md,作为项目说明 & 指导提示。(Gemini CLI)
示例:
1 | /init |
执行后会在当前项目生成 GEMINI.md,内容大致包含:
这个项目是做什么的
重要目录、关键文件
对 AI 的使用注意事项等(可自己修改)
之后 CLI 会自动把 GEMINI.md 作为“持久记忆”加载,对话更符合项目实际。(Gemini CLI)
3. 模型与设置相关
3.1 /model:切换模型
- 作用:选择当前会话使用的 Gemini 模型(如 Gemini 3 Pro / 其他变体)。(Gemini CLI)
示例:
1 | /model |
会弹出一个对话界面,让你选择模型。可以在:
推理/复杂代码重构时 → 选更强的模型
简单生成/草稿时 → 选轻量模型控制成本
3.2 /settings:打开设置面板
- 作用:在 CLI 内打开一个设置编辑器,管理各种配置,如工具启用、Sandbox、快捷键、UI 模式等。(Gemini CLI)
示例:
1 | /settings |
常见会调的东西:
是否启用交互式 shell(支持
vim、htop等)是否显示彩色输出
sandbox 配置(Docker / Podman / macOS seatbelt 等)(Gemini CLI)
建议:
开启 sandbox 时,
!命令和文件操作会在容器/沙箱里执行,更安全;不开 sandbox 时,CLI 会一直红色警告提示,注意不要在不可信仓库里乱用自动命令。(IT Pro)
3.3 /theme /vim /auth /about
这些是个性化和信息类命令:
/theme:切换 CLI 主题(明暗、配色)。(Gemini CLI)/vim:开启/关闭 Vim 输入模式(支持 NORMAL / INSERT、dd、cw等一整套操作)。(Gemini CLI)/auth:切换认证方式,比如从 Google 登录换成 API Key 模式。(Gemini CLI)/about:显示版本信息,提 issue 时很有用。(Gemini CLI)
示例:
1 | /theme |
4. 工具 / 扩展 / MCP 相关
4.1 /tools:查看已启用工具
- 作用:列出当前可用的所有工具(文件读写、shell、web_fetch、web_search、memory 等)。(Gemini CLI)
示例:
1 | /tools # 只看名称 |
当你不确定“它为什么会读文件 / 访问网络 / 执行命令”时,先看 /tools。
4.2 /extensions:查看扩展
- 列出当前 session 所有已激活的扩展(例如 IDE 集成相关扩展)。(Gemini CLI)
1 | /extensions |
4.3 /mcp:管理 MCP 服务器
MCP(Model Context Protocol)是一个上下文/工具插件协议,CLI 可以通过 MCP 接各种外部系统。(Gemini CLI)
常见用法:
1 | /mcp # 等同于 /mcp list |
适合用来接:自建知识库、工单系统、云资源管理等。
5. “记忆”与保护机制
5.1 /memory:管理层级记忆
Gemini CLI 支持分层的 GEMINI.md 文件(全局 + 项目 + 子目录),用来给模型提供长期指令和背景。(Gemini CLI)
命令包括:
1 | /memory add 以后在这个项目里,所有回答都用中文输出 |
add:直接往“记忆”里加一条说明(实际会写入对应的 GEMINI 配置);show:查看当前所有层级记忆拼接后的内容(用于调试“它到底是按什么指令在干活”);refresh:你编辑过GEMINI.md后,用它刷新;list:看有哪些GEMINI.md在生效。
建议:
用
GEMINI.md统一写清楚:项目约定、代码风格、输出格式;录课、做咨询项目时,写清楚“你是谁、面向谁、回答风格”。
5.2 /restore:回滚文件修改(checkpoint)
CLI 在用工具改文件前,可以按配置创建 checkpoint。/restore 用来回滚到某个工具调用前的状态。(Gemini CLI)
示例:
1 | /restore # 列出可恢复的 checkpoint |
适合大规模重构/批量修改前,先确认 checkpoint 机制已打开(通过 /settings)。
5.3 /stats /privacy
/stats:显示当前会话 token 使用情况、缓存节省情况等。(Gemini CLI)/privacy:查看隐私声明,并配置是否允许用于改进服务的数据收集。(Gemini CLI)
1 | /stats |
6. 退出 / 帮助 / 报 bug
/help:列出命令帮助,类似 CLI 版“说明书目录”。(Gemini CLI)/bug:将问题直接提交到 GitHub 仓库(标题就是/bug后面的文本)。(Gemini CLI)/quit//exit:退出 CLI。(Gemini CLI)
示例:
1 | /help |
六、@ 命令:把文件/目录直接“塞”进问题里
@ 命令是 Gemini CLI 中非常关键的一类——用来在提问时附带文件/目录内容。(Gemini CLI)
1. 基本语法
1 | @README.md 这份文档主要讲了什么?帮我写个中文版的简短介绍。 |
行为说明:(Gemini CLI)
@<文件>:读取该文件的文本内容,插入到当前提问上下文;@<目录>:递归读取目录下文件(会有大小/类型限制);默认会遵守
.gitignore/ 常见忽略规则(如node_modules/、dist/等);对于大型/二进制文件可能会自动跳过或截断,并在输出里说明。
路径注意:
有空格的路径需要转义,如:
1
@My\ Documents/spec.md 帮我总结一下
可以把
@README.md放在问题开头、中间、结尾都行。
使用建议:
阅读代码时优先用
@目录+ “帮我概览结构”;定点审查某个模块时,
@某文件+ 具体问题;搭配
/directory把多目录纳入工作空间,再用@精确注入。
七、! 命令:在 CLI 中直接跑 shell
! 前缀让你在 Gemini CLI 中直接执行系统 shell 命令。(Gemini CLI)
1. 单条命令模式
1 | !ls -la |
作用类似在原本终端里执行:
Linux/macOS:用
bash运行;Windows:用
powershell.exe -NoProfile -Command,除非你覆盖了ComSpec环境变量。(Gemini CLI)
CLI 会显示命令输出,你可以继续用自然语言让 Gemini 解读这些输出,比如:
1 | !pytest -q |
2. Shell 模式(连续执行)
输入一个单独的 ! 可以在**“普通模式”和“shell 模式”**之间切换:(Gemini CLI)
1 | ! # 打开 shell 模式 |
特点:
shell 模式下你输入的每一行都当作命令执行;
UI 有明显提示,方便区分当前是“聊天”还是“直接跑命令”;
所有通过
!跑的命令都会带上GEMINI_CLI=1环境变量,方便你的脚本识别自己是“被 Gemini CLI 调用”。(Gemini CLI)
安全提醒:
!执行的命令权限等同于你直接在终端执行;尤其是看陌生仓库时,不要盲目让 CLI 自动执行来自 README 的命令;
建议在 Docker / Podman / macOS sandbox 内运行,减少风险(新版已修复早期白名单漏洞,但习惯上仍应保持谨慎)。(IT Pro)
八、自定义 Slash 命令:把常用提示词封装成“指令”
如果你某些提示词经常用,比如“标准代码评审模板”、“写单元测试模板”等,可以用自定义命令封装成 /review、/plan 之类的指令。(Gemini CLI)
1. 创建一个全局命令 /plan
- 在用户命令目录下创建文件:
1 | mkdir -p ~/.gemini/commands |
- 写入类似如下内容(示意):
1 | prompt = """ |
- 在 CLI 里使用:
1 | /plan 为 user 模块增加用户头像上传功能 |
CLI 会把 /plan 后面的文本作为 {{args}} 注入 prompt,形成一条结构化的请求。
你也可以在项目根目录
.gemini/commands/下放toml,变成“项目级命令”,并且可以直接提交到仓库和团队共享。(Gemini CLI)
九、实战:几套常用工作流套路
最后给几套“命令+自然语言”的组合示例,方便你直接照抄使用。
1. 快速熟悉一个新仓库
1 | cd your-project |
在 CLI 中:
1 | /init |
之后可以:
1 | /memory add 在这个项目里,所有解释请尽量面向有 1~3 年经验的后端工程师,用通俗一点的语言。 |
2. 带着 CLI 做一个小特性
1 | /plan 为这个项目新增「导出报表为 CSV」的功能,需支持筛选条件(时间区间、用户ID) |
看完 plan 后:
1 | 很好,先帮我写出需要修改的文件清单和每个文件的改动要点,不要直接改代码。 |
确认 OK 之后:
1 | 好,现在开始按上述计划逐步修改,修改前请展示你要改的文件内容,改完后给出 diff 摘要。 |
如果发现不对:
1 | /restore |
3. 挂着测试 / CI 输出做问题定位
1 | !pytest -q |
测试失败后:
1 | 刚才 pytest 的输出里有哪些失败用例?分别是什么原因? |
如果是多文件变更:
1 | @tests/test_user.py 帮我分析这个测试文件里的断言逻辑,看看哪里理解错了。 |
必要时:
1 | /stats # 看看 token 用量 |
4. 打造“个人开发环境”体验
进入你最常用的项目目录后:
1 | /settings # 打开设置,开启你需要的工具 & shell 配置 |
日常使用时:
1 | @src/ 今天我想从修复 bug 开始,请帮我找出最近最值得修的三个问题,并给出排查建议。 |
十、总结
如果用一句话来概括:
不带前缀就是“让 AI 帮你思考”,
/是“管理 CLI 自己”,@是“把代码和文件塞给它看”,!是“让它直接动手帮你操作系统”。
作为程序员,你可以先把本文提到的高频命令记住:
/model/settings/tools/memory/chat/restore/stats@README.md、@src/!、!ls、!git status
用 1–2 个项目,把这些命令全部实战过一遍,你基本就算真正掌握 Gemini CLI 的使用方式了。
如果你愿意,下一步我也可以帮你写一份**“Gemini CLI 入门速查表(Cheat Sheet)”**,适合贴在 README 里或者做课时给学员用。