<!-- title: 终端里白嫖2.5 Pro：Gemini CLI隐藏玩法 -->
<!-- domain: tips-tricks -->

如果你还在为 Claude、Cursor 每月 20 美元订阅犹豫，那你大概率漏掉了一个 2025 年由 Google 开源、至今国内热度严重不匹配其价值的工具——**Gemini CLI**。一句话概括它的信息差：**用 Google 账号登录（无需绑卡），就能在终端免费跑 Gemini 2.5 Pro，配额是每分钟约 60 次请求、每天 1000 次，外加 100 万 token 的上下文窗口**。对个人开发者和小团队来说，这几乎等于一个"无限量"的旗舰模型终端 agent。

但真正的问题不在于"它免费"，而在于**90% 的人装上之后只把它当聊天框用**——`gemini` 启动、问问题、复制答案、关掉。Gemini CLI 实际上内置了一套堪比 Claude Code 的工程化能力：检查点时光机、自定义斜杠命令、可热替换的系统提示词、多仓库工作区、会话存档续聊、扩展市场……这些能力藏在斜杠命令和配置文件里，文档散落各处。本文拆解 **8 个国内几乎没人讲、但能立刻改变你用法的隐藏开关**，每个都附具体命令和适用场景。

---

## 一、`/restore`：给 agent 装一个时光机

这是被严重低估的第一神技。Claude Code 用户要靠 git 手动回滚，Cursor 要靠 checkpoint 历史，而 Gemini CLI 把"撤销"做成了一个一等公民命令。

**怎么开**：启动时加 `--checkpointing`，或在 `~/.gemini/settings.json` 里写 `"checkpointing": { "enabled": true }`。开启后，**每次 agent 要改文件之前，CLI 会自动拍一个快照**。

**怎么用**：让 agent 干了十分钟活，发现它把一个模块重构坏了，直接：

```bash
/restore            # 列出所有快照，带时间戳和触发动作
/restore 0          # 回滚到第 0 号快照
```

输出长这样：

```
0: [2025-09-22 10:30:15] Before running 'apply_patch'
1: [2025-09-22 10:45:02] Before running 'write_file'
```

**预期效果**：连文件带对话状态一起回到那个时间点，相当于 `git reset --hard` 但粒度细到"每一次工具调用"。**适用场景**：长链路重构、不确定方向的试验性修改、半夜让 agent 跑批。注意它**不能撤销外部副作用**（比如已经跑过的数据库迁移），所以关键项目仍要以 git 为主，`/restore` 当快速撤销用。

## 二、自定义斜杠命令：把复杂提示词压成一枚"子弹"

很多团队在 Notion 里维护"提示词模板"，每次复制粘贴。Gemini CLI 让你把提示词直接做成命令。

**操作**：在 `~/.gemini/commands/`（全局）或项目 `.gemini/commands/`（项目级）下建一个 TOML 文件，文件名即命令名。比如 `~/.gemini/commands/test/gen.toml` 定义 `/test:gen`：

```markdown
description = "根据需求生成 Jest 单测"
prompt = """
你是一位资深测试工程师。基于以下需求，写一份覆盖边界条件的 Jest 单测。
需求: {{args}}
"""
```

之后在会话里：

```bash
/test:gen "登录成功后跳转到 dashboard"
```

`{{args}}` 会被替换成你传入的参数。**预期效果**：把"角色设定 + 框架约束 + 输出格式"固化成团队标准，新人不用记提示词。**适用场景**：代码评审（`/review:security`）、SQL 生成、commit message、按团队规范生成 API 文档。把 `.gemini/commands` 提交进仓库，全队自动共享。

## 三、`GEMINI_SYSTEM_MD`：给 agent 换一颗"脑子"

绝大多数人不知道，Gemini CLI 的系统提示词（决定 agent 行为准则的那段底层指令）是可以**整体替换**的。设一个环境变量即可：

```bash
export GEMINI_SYSTEM_MD="/path/to/custom_system.md"
gemini -p "用最高谨慎度完成任务 X"
```

设成 `GEMINI_SYSTEM_MD=true` 时，CLI 会去当前项目的 `.gemini/system.md` 找。**预期效果**：你不再受默认 agent 性格限制——可以让它变成一个"只读、绝不写文件"的安全审计员，或一个"永远先输出计划、等确认再执行"的保守型助手。**适用场景**：CI 里跑无人值守任务时锁死权限、给特定项目定制专属人格、做多 agent 角色分工。⚠️ 提醒：默认系统提示词里包含工具调用的重要约束，整段替换可能影响工具使用的稳定性，替换后务必先小范围验证。

## 四、多目录工作区 `-I`：一个 agent 同时看前后端

微服务、前后端分仓是常态。默认 `gemini` 只认当前目录，于是你只能在前端仓改完，手动把后端接口定义复制过去。多目录模式直接破掉这个限制：

```bash
gemini --include-directories "../backend:../frontend"
# 简写: gemini -I "../backend:../frontend"
```

或在 `settings.json` 里写 `"includeDirectories": ["../shared-lib"]`。会话中还能动态加：

```bash
/directory add ../common-utils
```

**预期效果**：agent 能同时读后端路由定义和前端 API 客户端，一句话"把 `/users/create` 改成 `/users/register`，前后端一起改"就能跨仓执行。**适用场景**：polyrepo 项目、共享库 + 业务仓、跨服务重构。`/directory show` 可随时查看当前工作区包含哪些目录。

## 五、`/chat save` + `/chat resume`：长任务跨天续命

调试一个诡异 bug，聊了一小时没解决，得下班了——大多数 AI 工具关掉就丢上下文。Gemini CLI 内置了会话管理器：

```bash
/chat save memory-leak-bug   # 用语义化名字存档
/quit
# 第二天
/chat list                   # 看所有存档
/chat resume memory-leak-bug # 接着昨天的上下文继续
```

**预期效果**：可以同时维护多条并行的工作线——一条改 API、一条写文档、一条追 bug，各自独立存档、互不污染。**适用场景**：跨天的复杂任务、需要"带着昨天的思路继续"的研究型工作、团队交接（`/chat share` 可导出会话文件）。

## 六、`@` 引用：目录、图片、PDF 直接喂进去

很多人知道 `@文件` 能引用单个文件，但低估了两件事：**它能引用整个目录**，以及**它能喂图片**。

```bash
# 引用整个目录（自动遵守 .gitignore / .geminiignore，不会把 node_modules 灌进去）
重构 @./utils/ 下所有代码，改成 async/await

# 多文件对比
对比 @./foo.py 和 @./bar.py 的差异

# 喂图片，触发多模态
看这张报错截图，帮我排查 @./error.png
```

**预期效果**：图片会被模型真正"看到"，可以 OCR 发票、识别 UI 截图、给设计稿生成组件代码。配合 100 万 token 上下文，把整个中型项目的核心目录 `@` 进去也不容易爆。**适用场景**：批量给图片按内容重命名（`IMG_1234.jpg` → `login_screen.jpg`）、从设计稿反推代码、解析扫描件表格。

## 七、选择性 YOLO：只对安全命令免确认

`--yolo`（全量自动批准）很爽也很危险——agent 万一跑个 `rm -rf` 就完了。进阶玩法是**只白名单安全命令**，在 `settings.json` 里：

```json
{
  "tools": {
    "shell": {
      "autoApprove": ["git ", "npm test", "pytest", "ls ", "cat "]
    }
  }
}
```

**预期效果**：`git status`、跑测试这类只读/低风险命令不再每次问 `Y/n`，但删除、部署、迁移这类仍要你确认。**适用场景**：你想加速日常流、又不放心全自动的场景。搭配 `--sandbox` 让工具在 Docker 容器里执行，相当于给 YOLO 加一层保险。会话中 `Ctrl+Y` 可随时切换全局 YOLO 开关。

## 八、Extensions 扩展市场：一行命令装新能力

这是 Gemini CLI 最新、也最容易被忽略的能力——它有了**官方扩展（Extensions）体系**，把"提示词 + MCP server + 自定义命令 + 主题 + hooks + 子 agent"打包成可分发、可一键安装的插件。

```bash
gemini extensions install https://github.com/gemini-cli-extensions/workspace
/extensions list          # 会话里查看已装扩展
```

比如官方的 Security 扩展装上后，会多出一个 `/security:analyze` 命令专门做安全审计。在扩展画廊（geminicliextensions.com）里能按分类浏览社区扩展。**预期效果**：你不用从零配 MCP、不用手写命令，别人封装好的工作流直接拿来用。**适用场景**：给 agent 接 Figma、接数据库、接内部系统，或把你团队的私有工作流封装成扩展内部分发。

---

## 这些能力是怎么串成一个完整工作流的

下面这张图展示了把上述 8 个开关组合起来后，一个 Gemini CLI 重度用户的典型一天长什么样：

```text
flowchart TD
    A[启动: gemini --checkpointing -I '../backend:../frontend'] --> B[GEMINI.md 加载项目上下文<br/>GEMINI_SYSTEM_MD 定制人格]
    B --> C{任务类型}
    C -->|新功能| D[自定义命令 /test:gen 生成单测]
    C -->|重构| E[@./utils 整目录喂入<br/>agent 跨前后端改码]
    C -->|调试| F[图片 @error.png 多模态排查]
    D --> G[选择性 YOLO 自动跑 pytest]
    E --> H{改坏了?}
    H -->|是| I['/restore 0' 时光机回滚]
    H -->|否| J[git 提交]
    F --> J
    G --> J
    I --> E
    J --> K[/chat save feature-x 存档]
    K --> L[次日 /chat resume 续聊]
    L --> B
```

---

## 信息差总结：你知道的 vs 别人不知道的

| 维度 | 大多数人以为 | 实际隐藏玩法 |
|------|------------|------------|
| **成本** | 好用的 agent 都要订阅（$20/月） | Google 账号免费用 2.5 Pro，60 次/分钟、1000 次/天 |
| **撤销** | 只能靠 git 手动回滚 | `/restore` 把每次工具调用前的快照都存了 |
| **提示词** | 每次复制粘贴模板 | TOML 文件做成 `/命令`，团队共享 |
| **行为控制** | agent 性格固定 | `GEMINI_SYSTEM_MD` 整段换系统提示词 |
| **多仓库** | 只能在单仓里改 | `-I` 一次挂多个目录，跨仓联动 |
| **会话** | 关掉就丢上下文 | `/chat save/resume` 长任务跨天续 |
| **输入** | 只能贴文本 | `@` 引用目录、图片、PDF，触发多模态 |
| **自动化** | 全有或全无确认 | `autoApprove` 白名单只放行安全命令 |
| **扩展** | 内置功能就那些 | `extensions install` 一行装社区工作流 |

---

## 行动指南：今晚就能跑通的 4 步

1. **装上并锁定免费档**：`npm i -g @google/gemini-cli`，首次用 Google 账号登录（不绑卡）。海外网络/可访问 Google 的环境直接用；若你主要在国内，可用 API key（AI Studio 申请）配合代理，或在可信环境跑。
2. **开两个永久开关**：把 `--checkpointing` 和上文 `autoApprove` 写进 `~/.gemini/settings.json`，一劳永逸拿到"撤销键"和"低摩擦流"。
3. **建你的第一个私有命令**：在 `.gemini/commands/` 下写一个 `review/code.toml`，把团队 Code Review 清单固化成 `/review:code`。
4. **试一次"时光机 + 跨天续聊"组合**：让 agent 做一个稍大的重构，中途用 `/restore` 回滚一次，下班前 `/chat save`，第二天 `/chat resume` 接着干——你会立刻理解为什么这不是个"聊天框"。

一句话收尾：**Gemini CLI 的真正价值，不在那个免费的 2.5 Pro，而在于它把 Claude Code 那套工程化能力开源、免费地搬进了你的终端**——区别只在于，你有没有按下那些藏在斜杠命令里的开关。

---

> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

**参考来源：**
- [Gemini CLI Tips & Tricks（addyosmani，2.4k star，30 条 pro tips）](https://github.com/addyosmani/gemini-cli-tips)
- [Gemini CLI 官方仓库（google-gemini/gemini-cli）](https://github.com/google-gemini/gemini-cli)
- [Gemini CLI Extensions 官方文档](https://google-gemini.github.io/gemini-cli/docs/extensions/)
- [Introducing Gemini CLI（Google 官方博客，含免费额度说明）](https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/)
- [Gemini CLI Cheatsheet（philschmid，斜杠命令速查）](https://www.philschmid.de/gemini-cli-cheatsheet)

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
