你每个月花20美元订阅Claude Pro或Cursor,但Google旗下那个开源的终端AI Agent——Gemini CLI——个人Google账号登录就能每分钟60次请求、每天1000次请求免费白嫖,底层还是Gemini 3系列模型、100万token上下文窗口,Apache 2.0开源协议。
这不是什么小道消息,是它GitHub仓库(github.com/google-gemini/gemini-cli)README里白纸黑字写的官方承诺。但更离谱的是信息差的第二层:绝大多数人装完之后只会敲gemini然后开始聊天,完全不知道这个工具的文档角落里埋着一堆能改变工作流的狠功能。
我这两天把它的官方文档翻了个底朝天,挖出7个国内中文社区几乎没人系统讲过的隐藏技巧。每一个都有具体操作步骤,看完就能用。
安装只需要一行:
npx @google/gemini-cli,无需安装直接跑。
这是我认为Gemini CLI最被低估的功能:影子Git仓库快照。
它做什么:开启后,每次你批准AI修改文件的工具调用(比如write_file、replace),CLI会自动在你的家目录~/.gemini/history/下创建一个独立的"影子Git仓库"并提交快照——完全不影响你自己项目的git仓库。快照包含三样东西:当时的完整文件状态、到那一刻为止的全部对话历史、以及那条即将执行的工具调用。
踩坑警告(重点):这个功能默认关闭,而且网上大量老教程教你用--checkpointing命令行参数开启——这个flag在v0.11.0版本已经被移除了,现在只能通过配置文件开启。在项目的.gemini/settings.json(或全局~/.gemini/settings.json)里加:
{
"general": {
"checkpointing": {
"enabled": true
}
}
}
怎么用:开启后输入/restore列出所有检查点(文件名格式是时间戳-被改文件名-工具名),选中一个执行/restore <checkpoint文件名>,会同时回滚文件、恢复对话,还把原来那条工具调用重新摆到你面前——你可以改改参数再跑一次,或者直接忽略。
适用场景:让AI大刀阔斧重构时,任何一步翻车都能一键回到改之前。相当于给整个Agent过程上了版本控制。
很多人知道Claude Code有Esc-Esc回退,但不知道Gemini CLI也有对等物:/rewind命令,快捷键是连按两次Esc。
它会弹出一个交互界面,让你浏览之前所有的交互节点,然后提供三种回退粒度:只回退对话(文件保留)、只回退文件(对话保留)、两者都回退。这个"部分回退"的细粒度控制,在你想保留AI已经改好的代码、但想换个思路重新讨论时特别好用。
预期效果:和杀招1配合,形成"对话级+文件级"双层保险。杀招1管"改文件之前"的自动快照,杀招2管"任意对话节点"的手动回溯。
这是Gemini CLI和Claude Code差异最大的地方,也是它更"工程化"的证据:自定义命令用的是TOML文件,而且支持shell命令注入。
存放位置与优先级:
- 全局:~/.gemini/commands/(所有项目可用)
- 项目级:.gemini/commands/(可以提交进git,团队共享——同名时项目级覆盖全局)
命名空间:子目录自动变成冒号命名空间。git/commit.toml就是/git:commit。
三个核心语法(这是精髓):
1. {{args}}——把你在命令后面敲的参数注入prompt
2. !{shell命令}——执行shell命令并把输出直接注入prompt,{{args}}在!{}内会自动做shell转义,防注入攻击
3. @{文件路径}——把文件内容直接注入prompt,支持PNG/JPEG/PDF/音频/视频等多模态格式
官方文档里的/git:commit例子值得直接抄:
# 放在 .gemini/commands/git/commit.toml
description = "Generates a Git commit message based on staged changes."
prompt = """
Please generate a Conventional Commit message based on the following git diff:
```diff
!{git diff --staged}
"""
敲`/git:commit`,CLI先执行`git diff --staged`,把diff塞进prompt再发给模型,一条命令生成规范commit message。执行shell前会弹确认框展示最终命令,安全性有兜底。
**适用场景**:把你们团队的代码评审清单、changelog规范、发版流程全部固化成`.gemini/commands/`下的TOML文件,新人clone仓库就继承整套AI工作流。
---
## 杀招4:Agent Skills——直接兼容Claude的技能生态
这是最新鲜的情报:Gemini CLI已经支持**Agent Skills**,而且是基于**agentskills.io开放标准**——和Anthropic的Claude Skills是**同一个标准**。它甚至提供了一个通用别名目录`.agents/skills/`(优先级高于`.gemini/skills/`),摆明了要跨工具通用。
**三级技能发现**:工作区(`.gemini/skills/`或`.agents/skills/`)> 用户级(`~/.gemini/skills/`)> 扩展内置,同名高优先级覆盖。
**最狠的一条命令**:
```bash
# 直接从GitHub仓库安装技能
gemini skills install https://github.com/user/repo.git
# 从monorepo里装单个技能
gemini skills install https://github.com/my-org/my-skills.git --path skills/frontend-design
# 从本地目录软链
gemini skills link /path/to/my-skills-repo
工作原理(也是它省token的关键):会话开始时只把每个技能的名称和描述注入系统提示词(渐进式披露),当Gemini判断你的任务匹配某个技能时,才调用activate_skill工具加载完整指令——你确认后技能目录才获得读取权限。整个技能库挂在后台,却几乎不占上下文窗口。
对中国用户的实际意义:Claude生态里海量现成的Skills仓库(代码评审、安全审计、部署流程……),大部分可以原样搬进Gemini CLI用。白嫖1000次/天额度 + Claude生态的技能资产,等于用免费的模型跑付费社区沉淀的方法论。
/chat是一套完整的对话状态管理:
/chat save <标签>——保存当前对话为检查点,存在~/.gemini/tmp/<项目哈希>/下,按项目隔离/chat resume <标签>——恢复,甚至可以跨会话恢复/chat list——列出当前项目所有存档/chat share file.md——把整个对话导出成Markdown或JSON(写教程、留档、给同事复盘神器)叠加另一条命令/compress:把整个聊天上下文替换成一份摘要,保留全局认知的同时大幅降低后续token消耗。长会话做到一半上下文快满了,先/compress再继续,不用推倒重来。
大部分教程只教交互模式,但Gemini CLI的命令行参数才是自动化玩家的入口:
# 非交互:直接输出纯文本
gemini -p "Explain the architecture of this codebase"
# 结构化输出:拿到JSON,方便程序解析
gemini -p "分析这个目录的依赖关系" --output-format json
# 流式JSON:实时监控长任务
gemini -p "Run tests and deploy" --output-format stream-json
# 多目录工作区
gemini --include-directories ../lib,../docs
配合@命令的git感知过滤——@src/注入整个目录时会自动排除node_modules/、.env、.git/等gitignore内容——你可以放心写cron任务和CI脚本,不怕把垃圾文件或敏感信息塞进上下文。
还有个冷门细节:通过!执行shell命令时,子进程环境里会自动设置GEMINI_CLI=1环境变量,你的脚本可以据此检测自己是否运行在Gemini CLI内部,做出不同行为。另外/vim可以开启vim键位编辑输入框,hjkl、dd、cw全支持,vim党狂喜。
最后这条是成本玄学的解药。Gemini CLI会自动做token缓存(复用之前的系统指令和上下文,降低后续请求的计费token),但有一个绝大多数人不知道的坑:
| 认证方式 | 免费额度 | Token缓存 |
|---|---|---|
| Google账号OAuth登录 | 60次/分钟 + 1000次/天 | ❌ 不支持 |
| Gemini API Key(aistudio.google.com/apikey申请) | 1000次/天 | ✅ 支持 |
| Vertex AI(企业) | 按量计费 | ✅ 支持 |
也就是说:OAuth白嫖党用不了token缓存(官方文档原话:Code Assist API暂不支持缓存内容创建),而API Key用户能在/stats里直接看到"cached token savings"(缓存节省)。如果你的用量已经超过免费额度开始按token付费,切换到API Key认证 + 每次会话敲一下/stats盯账本,是实打实的降本动作。
顺带一提,/stats还能看会话时长、token总用量,配合/compress形成完整的上下文成本控制闭环。
flowchart LR
A[开始任务] --> B{需要注入上下文?}
B -- 是 --> C["@命令/git感知过滤<br/>或 @{file} 多模态注入"]
B -- 否 --> D[直接对话]
C --> D
D --> E{高频操作?}
E -- 是 --> F["自定义TOML命令<br/>!{shell} + {{args}}"]
E -- 否 --> G[直接提问]
F --> H[Agent执行修改]
G --> H
H --> I["Checkpointing自动快照<br/>翻车就 /restore"]
I --> J{上下文快满?}
J -- 是 --> K[/compress 压缩/]
J -- 否 --> L[继续任务]
K --> L
L --> M["/stats 查看缓存节省<br/>API Key用户专属"]
M --> N["/chat share 导出md复盘"]
H -.任意节点.-> O["双击Esc /rewind<br/>对话/文件分别回退"]
| 维度 | 你以为的 | 实际情况 |
|---|---|---|
| 价格 | 编程Agent都要$20/月 | Gemini CLI个人账号每天免费1000次请求 |
| 安全网 | AI改代码只能靠git手动兜底 | 影子Git仓库自动快照,/restore一键回滚(但默认关闭,且老教程的--checkpointing flag已失效) |
| 自定义 | 只能写prompt模板 | TOML命令支持shell输出注入+多模态文件注入+团队git共享 |
| 技能生态 | Skills是Claude专属 | 基于agentskills.io开放标准,gemini skills install可直接装GitHub仓库 |
| 成本优化 | 缓存自动生效 | OAuth登录没有token缓存,API Key才有,/stats可查节省量 |
| 自动化 | 只能人工交互 | --output-format json/stream-json接入脚本和CI |
npx @google/gemini-cli跑起来,选"Sign in with Google"拿免费额度.gemini/settings.json里加checkpointing配置,把后悔药装上.gemini/commands/提交到团队仓库gemini skills install装2个试试/stats监控,需要付费时对比OAuth与API Key两条路线的真实成本本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!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 等场景全覆盖。
