这份指南汇总了约 28 条进阶技巧,帮助你更高效地以“代理式”方式使用 Gemini CLI 进行编码。
Gemini CLI 是一个开源 AI 助手,把 Google 的 Gemini 模型直接带入你的终端。它以对话式、“代理式”命令行工具的形态工作——能理解你的请求、选择合适的工具(例如运行 Shell 命令或编辑文件),并执行多步计划,协助你的开发工作流。
实操上看,Gemini CLI 就像一位“超级加强版”的结对程序员与命令行助手。它在编码任务、调试、内容生成,乃至系统自动化上表现出色——全部通过自然语言驱动。进入进阶技巧之前,先快速回顾如何安装并跑起来。
入门
安装: 可以通过 npm 安装。进行全局安装:
1npm install -g @google/gemini-cli
或者无需安装直接使用 npx 运行:
1npx @google/gemini-cli
Gemini CLI 在所有主流平台可用(它由 Node.js/TypeScript 构建)。安装后,在终端运行 gemini 即可启动交互式 CLI。
认证: 首次使用时需要与 Gemini 服务进行认证。有两种选项:(1)Google 账号登录(免费层)——允许免费使用 Gemini 2.5 Pro,且配额较为宽松(约每分钟 60 次、每天 1,000 次)。首次启动时,CLI 会提示用 Google 账号登录(不需要绑定账单)。(2)API Key(付费或更高层级访问)——你可以在 Google AI Studio 获取 API 密钥,并通过环境变量 `GEMINI_API_KEY` 配置使用。
通过 API Key 使用通常能获得更高配额和企业级数据使用保护;在付费/计费场景下,提示内容不会用于训练,但日志可能为安全目的而保留。
例如,把以下内容加入你的 shell 配置文件:
1export GEMINI_API_KEY="YOUR_KEY_HERE"
基础用法: 不带参数直接运行 gemini 会进入交互会话,看到 gemini> 提示符,你可以在这里输入请求或命令。例如:
1$ gemini23gemini> 使用 SQLite 创建一个 React 菜谱管理应用
你会看到 Gemini CLI 按计划创建文件、安装依赖、运行测试等以实现你的请求。如果你偏好一次性调用(非交互),使用 -p 参数传入提示,例如:
1gemini -p "请总结所附文件的要点。@./report.txt"
这会输出一次响应后退出。你也可以通过管道把输入喂给 Gemini CLI:例如 echo "Count to 10" | gemini 会通过标准输入传入提示。
CLI 交互界面: Gemini CLI 提供一个类 REPL 的界面,支持以 / 开头的斜杠命令(用于控制会话、工具及设置),以及以 ! 开头的bang 命令(直接执行 Shell 命令)。默认情况下,Gemini CLI 在安全模式运行:任何会修改系统的动作(写文件、运行命令等)都会先征得你的确认。当工具提出一个动作,你会看到差异或命令,并收到(Y/n)的批准/拒绝提示,确保 AI 不会在未经许可的情况下做出不希望的更改。
基础梳理完成后,我们进入一系列进阶技巧与隐藏特性,帮助你榨干 Gemini CLI 的价值。每条技巧先用简单示例引入,再展开更深的细节与注意点。这些技巧综合了工具作者(如 Taylor Mullen)、Google 开发者关系团队,以及更广泛社区的建议与洞见,旨在成为 Gemini CLI 高阶用户的权威指南。
技巧 1:用 `GEMINI.md` 构建持久上下文
快速场景: 不再在提示里重复背景;在项目中创建 `GEMINI.md` 提供项目特定的上下文或指令,让 AI 持久携带关键背景。
在项目工作中,你往往有一些整体性的细节——例如代码风格指南、项目架构、关键事实——希望 AI 始终牢记。Gemini CLI 允许你把这些信息写入一个或多个 GEMINI.md 文件。只需在项目中(若不存在则先创建)建立 .gemini 文件夹,并添加名为 GEMINI.md 的 Markdown 文件,写入你希望 AI 持久记住的笔记或指令。例如:
1# Project Phoenix - AI Assistant23- 所有 Python 代码必须遵循 PEP 8 风格。4- 使用 4 个空格缩进。5- 用户正在构建数据管道;优先采用函数式编程范式。
将这个文件放在项目根目录(或者在子目录放置以获得更细粒度的上下文)。此后,只要你在这个项目中运行 gemini,CLI 就会自动把这些指令加载进上下文。这意味着模型会始终带着这些信息,不必在每次提示前手动附加。
工作机制: Gemini CLI 使用分层的上下文加载系统。它会合并全局上下文(来自 ~/.gemini/GEMINI.md,适合作为跨项目默认),以及你的项目级 GEMINI.md,还包括子文件夹中的上下文文件。越具体的文件会覆盖越一般的文件。你可以随时用以下命令查看加载的上下文:
1/memory show
这会展示 AI 当前可见的完整合并上下文。如果你修改了 GEMINI.md,使用 /memory refresh 即可在不重启会话的情况下重新加载上下文。
进阶提示: 使用 /init 斜杠命令可以快速生成一个初始版 GEMINI.md。在新项目运行 /init会创建一个模板上下文文件,其中包含如自动检测到的技术栈、项目摘要等信息。然后你可以对其编辑和扩展。对于大型项目,考虑把上下文拆分到多个文件,并在主 GEMINI.md 中使用 @include 语法进行导入。例如在主 GEMINI.md 中写 @./docs/prompt-guidelines.md 来引入其他上下文文件。这能让你的指令组织更有序。
一个经过精心编写的 `GEMINI.md` 就像给 Gemini CLI 一个“项目记忆”,记录项目的要求与约定。这样能显著提升回答的贴切性,减少反复的提示工程。
技巧 2:创建自定义斜杠命令
快速场景: 用自定义斜杠命令加速重复任务。例如你可以做一个 /test:gen 命令根据描述生成单元测试,或者 /db:reset 清空并重建测试数据库。让 CLI 以“一句话”执行贴合你流程的动作。
Gemini CLI 支持在简易配置文件中定义自定义斜杠命令。本质上,这是预定义的提示模板。要创建一个命令,在 ~/.gemini/(用于全局命令)或项目的 `.gemini/` 文件夹(用于项目命令)下新建 commands/ 目录。在 commands/ 里为每个命令创建一个 TOML 文件。文件名决定命令名:例如 test/gen.toml 定义的是 /test:gen。
示例:假设你想要一个命令根据需求描述生成单元测试。可以创建 ~/.gemini/commands/test/gen.toml,内容如下:
1# 调用方式:/test:gen "测试的描述"23description = "Generates a unit test based on a requirement."4prompt = """5You are an expert test engineer. Based on the following requirement, please write a comprehensive unit test using the Jest framework.6Requirement: {{args}}7"""
重新加载或重启 Gemini CLI 后,你就可以直接输入:
1/test:gen "确保登录按钮在成功后跳转到仪表盘"
Gemini CLI 会识别 /test:gen 并把你提供的参数(这里是需求)替换到模板里的 {{args}},随后 AI 会生成相应的 Jest 单元测试。description 字段可选,但它会在你运行 /help 或 /tools 时用作命令列表中的说明。
这个机制非常强大——你实际上是在用自然语言“脚本化”AI。社区已经创造了很多有用的自定义命令。例如,Google 的 DevRel 团队分享了一组“10 个实用工作流命令”(在一个开源仓库中),演示如何脚本化常见流程,如创建 API 文档、清洗数据、搭建样板代码等。通过定义一个自定义命令,你把复杂的提示(或一系列提示)打包成一个可复用的捷径。
进阶提示: 自定义命令也可以用于强制输出格式或为某些任务应用“角色”。例如你可能有一个 /review:security 命令,它总是以“你是一名安全审计员…”起手,让 AI 从安全漏洞角度审查代码。这样可以确保某类任务的响应始终保持一致标准。
要与团队分享这些命令,你可以把 TOML 文件提交到项目仓库(放在 .gemini/commands目录)。团队成员安装了 Gemini CLI 后,在项目中会自动拾取这些命令。这是标准化 AI 辅助工作流的绝佳方式。
技巧 3:通过自定义 MCP 服务器扩展 Gemini
快速场景: 如果你希望 Gemini 与外部系统或未内建的自定义工具交互——例如查询专有数据库,或整合 Figma 设计——可以运行一个自定义 Model Context Protocol(MCP) 服务器并接到 Gemini CLI。MCP 服务器可以为 Gemini 提供新的工具与能力,本质上是扩展代理。
Gemini CLI 开箱即带有几个 MCP 服务器(例如支持 Google 搜索、代码执行沙箱等),你也可以新增自己的。MCP 服务器本质是一个外部进程(可以是本地脚本、微服务、甚至云端端点),通过一套简单协议为 Gemini 处理任务。这种架构让 Gemini CLI 非常易于扩展。
MCP 服务器示例: 社区与 Google 提供过一些 MCP 集成,包括 Figma MCP(从 Figma 拉取设计细节)、Clipboard MCP(读写系统剪贴板)等。实际上,在一个内部演示中,Gemini CLI 团队展示了一个“Google Docs MCP”服务器,允许把内容直接保存到 Google Docs——这也意味着它可以读取文档内容。
如何添加: 可以通过 `settings.json` 或 CLI 命令进行配置。快速设置示例:
1gemini mcp add myserver --command "python3 my_mcp_server.py" --port 8080
这会注册一个名为 “myserver” 的服务器,Gemini CLI 会通过运行指定命令(此处是一个 Python 模块)在 8080 端口启动。在 ~/.gemini/settings.json 中,会添加一个 mcpServers 项。例如:
1 "mcpServers": {2 "myserver": {3 "command": "python3",4 "args": ["-m", "my_mcp_server", "--port", "8080"],5 "cwd": "./mcp_tools/python",6 "timeout": 150007 }8 }
这个配置(基于官方文档)告诉 Gemini 如何启动 MCP 服务器以及工作目录位置。服务器运行后,它提供的工具就会对 Gemini CLI 可用。你可以用以下斜杠命令列出所有 MCP 服务器及其工具:
1/mcp
它会显示注册的服务器以及这些服务器所暴露的工具。
MCP 的能力: MCP 服务器可以提供丰富的多模态结果。例如,某个 MCP 的工具可以返回一张图片或一个格式化的表格作为响应的一部分。它们也支持 OAuth 2.0,这样你可以安全地把 API(像 Google APIs、GitHub 等)接进一个 MCP 工具而不暴露凭据。本质上,只要你能编码,就能把它包装成 MCP 工具——让 Gemini CLI 成为一个编排众多服务的枢纽。
默认 vs 自定义: 默认情况下,Gemini CLI 的内建工具能覆盖许多任务(读文件、网页搜索、执行 Shell 命令等),但 MCP 能让你走得更远。一些进阶用户创建了 MCP 服务器来对接内部系统或进行专门的数据处理。例如,你可以做一个 database-mcp 提供一个 /query_db 工具在公司数据库上跑 SQL,或者一个 jira-mcp 通过自然语言创建工单。
安全注意: 当你创建自己的 MCP 工具时,要注意安全:默认自定义 MCP 工具需要用户确认,除非你把它标记为可信。你可以通过设置控制安全,例如为某个服务器设置 trust: true(自动批准其工具动作),或者为特定安全工具设白名单并对危险工具设黑名单。
简而言之,MCP 服务器可以解锁几乎无限的集成能力。这是一个让你把 Gemini CLI 变成连接任意系统的专业功能。如果你想构建一个,参考官方 MCP 指南与社区示例即可。
技巧 4:使用记忆添加与回忆
快速场景: 把重要事实放进 AI 的长期记忆,确保随手可用。例如,在确定了数据库端口或拿到一个 API 令牌后,你可以执行:
1/memory add "我们的 Staging RabbitMQ 在端口 5673"
这会把该事实存起来,确保以后不会忘记。你可以用 /memory show随时回忆全部记忆。
/memory 命令提供一个简洁却强大的持久记忆机制。当你使用 /memory add <text> 时,给出的文本会追加到你的全局项目上下文(技术上,它保存到全局 ~/.gemini/GEMINI.md 或项目的 GEMINI.md)。这很像写一张便条并把它钉到 AI 的虚拟公告板上。一旦添加,AI 会在未来交互中始终看到这条便签,跨会话有效。
举例:你在调试一个问题时发现一个不容易察觉的洞见(“配置标志 X_ENABLE 必须设为 `true`,否则服务无法启动”)。如果你把这点加入记忆,之后当你或 AI 讨论相关问题时,它就不会忽略这条关键细节——因为它在上下文里。
使用 /memory:
/memory add "<text>"——把事实或笔记加入记忆(持久上下文)。这会立即更新 GEMINI.md。/memory show——显示记忆完整内容(即当前加载的合并上下文)。/memory refresh——从磁盘重载上下文(当你手动编辑过 GEMINI.md 或多人协作时尤其有用)。
由于记忆以 Markdown 保存,你也可以手动编辑 GEMINI.md 来整理或组织信息。/memory 命令只是为了在对话中方便,不必每次都打开编辑器。
进阶提示: 这是做“决策日志”的好工具。如果你在聊天中定下某个方案或规则(例如选用某个库,或达成一个代码风格约定),把它加入记忆。AI 之后就会记住这个决定,避免自相矛盾。尤其适用于持续数小时或数天的长会话——通过保存关键点,你可以缓解模型在对话很长时遗忘早期上下文的倾向。
另一个用途是个人偏好。由于 ~/.gemini/GEMINI.md(全局记忆)会加载到所有会话里,你可以把一般性的偏好或信息放进去。例如,“用户的名字是 Alice。请说话礼貌,避免俚语。”这就像为 AI 设置一个全局角色或知识。需要注意的是,全局记忆适用于所有项目,因此不要用它存放项目特定的信息。
总之,记忆添加与回忆帮助 Gemini CLI 维护状态。把它看成一个随着项目成长的知识库。用它来避免重复表达或提醒 AI 一些否则需要每次重新发现的事实。
技巧 5:使用检查点与 /restore 作为撤销按钮
快速场景: 如果 Gemini CLI 对你的文件做了一系列你不满意的改动,你可以瞬间回滚到先前状态。启动时开启检查点功能(或在设置中开启),然后使用 /restore 命令像一个轻量级 Git revert 一样撤销改动。/restore 会把你的工作区回滚到保存的检查点;会话状态也可能受影响,这取决于检查点的捕获方式。
Gemini CLI 的检查点功能可充当安全网。当启用时,CLI 会在每次会修改文件的工具执行之前对你的项目文件作快照。如果出了问题,你可以回退到最后一个已知的良好状态。这本质上是为 AI 的行为提供版本控制,无需你每次都手动做 Git 提交。
如何使用: 你可以通过启动参数开启检查点:
1gemini --checkpointing
或者在配置中设为默认(例如在 settings.json 写 "checkpointing": { "enabled": true })。启用后,你会注意到每次 Gemini 要写文件时,它会提示类似“已保存检查点”。
如果你随后发现 AI 做的编辑有问题,你有两种选择:
- 运行
/restore list(或者不带参数直接/restore)查看最近的检查点列表,包含时间戳和描述。 - 运行
/restore <id>回滚到特定检查点。如果不提供 id 且只有一个待恢复的检查点,则默认恢复它。
例如:
1/restore
Gemini CLI 可能输出:
10: [2025-09-22 10:30:15] Before running ‘apply_patch’21: [2025-09-22 10:45:02] Before running ‘write_file’
你可以执行 /restore 0把所有文件改动(以及会话上下文)回退到该检查点。这样就能“撤销”一个错误的代码重构或 AI 所做的其他变更。
恢复范围: 检查点捕获的是你的工作目录状态(所有 Gemini CLI 允许修改的文件)以及工作区文件(根据捕获方式,会话状态也可能回滚)。当你恢复时,它会将文件覆盖回旧版本并重置会话上下文到那个快照。这就像把 AI 代理带回到它走错路之前。注意它不会撤销外部的副作用(例如 AI 运行了数据库迁移,就没法回滚),但文件系统与聊天上下文都在回滚范围内。
最佳实践: 对非琐碎任务,建议保持检查点开着。开销很小,却能提供安心。如果你发现这次不需要检查点(一切顺利完成),可以清理它或留给下一次覆盖。开发团队建议在进行多步代码编辑前尤其打开检查点。对于关键项目,当然仍应以真正的版本控制(Git)为主保护——把检查点视为快速撤销的便利工具,而不是完整的版本控制系统。
本质上,/restore 让你更有信心使用 Gemini CLI。你可以放心地让 AI尝试大胆的变更,因为你有一个**“糟了按钮”**可以倒回。
技巧 6:读取 Google Docs、Sheets 等(配置 Workspace MCP 后可用)
快速场景: 设想你有一份包含规格或数据的 Google 文档或表格,希望 AI 使用它。无需复制粘贴内容,提供链接即可;在配置了 Workspace MCP 服务器后,Gemini CLI 可以拉取并读取它。
例如:
1总结这份设计文档的需求: https://docs.google.com/document/d/<id>
Gemini 能抓取这份文档的内容并纳入回答。同样,它也能按链接读取 Google Sheets 或 Drive 文件。
工作原理: 这些能力通常是通过MCP 集成启用的。Gemini CLI 团队已经构建(或正在开发)Google Workspace 的连接器。一个做法是运行一个使用 Google APIs(Docs API、Sheets API 等)的小型 MCP 服务器,当提供一个 URL 或 ID 时检索文档内容。在配置后,你可能拥有一些斜杠命令或工具,如 /read_google_doc,或者是自动检测到 Google Docs 链接后调用相应工具进行拉取。
例如,在一次 Agent Factory 播客演示中,团队使用了一个Google Docs MCP 来把摘要直接保存到 Google 文档——这意味着它也能读取文档的内容。实践中,你可能这样做:
1@https://docs.google.com/document/d/XYZ12345
在提示中包含带 @ 的 URL(上下文引用语法)会让 Gemini CLI去拉取该资源。配置好 Google 文档集成后,文档的内容会像本地文件一样被拉入上下文。接下来,AI 可以对其做摘要、回答相关问题,或在对话中使用它。
类似地,如果你贴的是 Google Drive文件链接,一个配置正确的 Drive 工具可以下载或打开该文件(前提是配置了相应的权限和 API 访问)。Google Sheets也可以通过一个 MCP运行查询或读取指定单元格范围,你可以像这样提出问题:“这张表的预算列总和是多少?”然后让 AI 给出求和结果。
如何设置: 在写作时,Google Workspace 集成可能需要一些折腾(获取 API 凭据、运行类似 Kanshi Tanaike 所描述的 MCP 服务器等)。关注官方 Gemini CLI 仓库和社区论坛中的现成扩展——例如,一个正式的 Google Docs MCP 可能会以插件/扩展形式提供。如果你着急,也可以按如何在 MCP 服务器中使用 Google APIs 的指南自己写一个。通常涉及处理 OAuth(Gemini CLI 对 MCP 支持 OAuth)然后暴露如 read_google_doc 这样的工具。
使用提示: 有了这些工具后,使用起来可能只需要在提示里提供链接(AI 可能自动调用工具进行拉取),或者使用类似 /doc open <URL> 的斜杠命令。查看 /tools 了解可用命令——Gemini CLI 会在这里列出所有工具和自定义命令。
总之,Gemini CLI 不仅能访问你的本地文件系统。无论是 Google Docs、Sheets、Drive,还是其他外部内容,你都可以通过引用来拉入数据。这条技巧节省了手动复制粘贴,保持上下文使用的自然流——只需引用你需要的文档或数据集,让 AI 自动抓取所需。这让 Gemini CLI 成为你能够访问的全部信息的真正知识助手,而不仅是你磁盘上的文件。
(注意:访问私有文档当然需要 CLI 拥有相应权限。务必确保任何集成都遵守安全与隐私要求。在企业环境中,搭建此类集成可能需要额外的认证步骤。)
技巧 7:用 @ 引用文件与图片,明确提供上下文
快速场景: 与其用语言描述文件或图片的内容,不如直接把它们指给 Gemini CLI。使用 @ 语法,你可以在提示里“附上”文件、目录或图片。这保证 AI 看到的就是这些文件的真实内容作为上下文。例如:
1解释这段代码: @./src/main.js
这会把 src/main.js 的内容纳入提示上下文(在模型的上下文大小限制内),以便 AI 阅读并解释。
@ 文件引用是开发者最强大的功能之一。它消除了歧义——你不是在让模型依赖记忆或揣测,而是“把文件递给它看”。这可用于源代码、文本文档、日志等。同样,你可以引用整个目录:
1把 @./utils/ 中的代码重构为 async/await。
只要路径以斜杠结尾,Gemini CLI 就会递归引入该目录下的文件(在合理的范围内,遵守忽略文件与大小限制)。这对多文件的重构或分析非常方便,因为 AI 能同时考虑所有相关模块。
更令人称赞的是,你还能在提示中引用二进制文件,如图片。Gemini CLI(借助 Gemini 模型的多模态能力)能理解图片。例如:
1描述这个截图: @./design/mockup.png
图片会被送进模型,AI可能回复类似:“这是一个登录页:有一个蓝色的登录按钮和一个头图”,等。你可以想象很多用途:审阅 UI 设计稿、整理图片(我们会在后面技巧中看到)、从图片中提取文字(Gemini 能做 OCR)。
关于有效使用 @ 引用的几点注意:
- 文件限制: Gemini 2.5 Pro 有一个非常大的上下文窗口(最高 100 万 token),可以容纳很大的文件或很多文件。但极其庞大的文件可能会被截断。如果文件巨大(比如几十万行),考虑先做摘要或把它分块。
- 自动忽略: 默认情况下,Gemini CLI 在拉取目录上下文时会遵守你的
.gitignore和.geminiignore,因此如果你用 @./ 引用项目根目录,它不会把体量巨大的被忽略目录(例如 node_modules)都塞进上下文。你可以像使用 .gitignore 那样,用 .geminiignore 自定义忽略规则。 - 显式 vs 隐式上下文: Gemini CLI 的作者 Taylor Mullen 强调,尽量使用 @ 进行“显式上下文注入”,而不是依赖模型记忆或自行概述。这更精确,也能避免臆测。能给出“事实来源”(代码、配置、文档)时,就用 @ 引到原始文件。
- 多引用组合: 你可以在一次提示中包含多个文件,比如:
比较 @./foo.py 和 @./bar.py 的差异并说明不同点。CLI 会同时引入这两个文件。注意上下文大小;多个大文件会快速消耗窗口。
简而言之,@ 是你在会话中“喂知识”的主力方式,让 CLI 变成能读文本与图片的多模态“阅读器”。对进阶用户而言,这是比“让 AI自己去打开某文件”更可靠的做法——你直接把文件递上桌。
技巧 8:现场造工具(让 Gemini 现写现用)
快速场景: 如果某个任务需要一个小脚本或实用程序,可以让 Gemini CLI在会话内直接生成并执行。比如:“写一个 Python 脚本,解析这个文件夹所有 JSON 并提取 error 字段。”它会生成脚本,你审阅后即可运行。相当于动态扩展工具箱。
Gemini CLI 不受限于“预置工具”;它可以用自己的编程能力临时造一个工具来解决问题。这常常是隐式发生的:你提出复杂任务时,AI会建议写一个临时文件(含代码)并运行。你也可以显式引导:
- 创建脚本: 你可以要求用某语言生成脚本。CLI 通常会用
write_file工具写文件,并在你批准后落盘。例如:生成一个 Node.js 脚本,读取当前目录所有 '.log' 文件并报告每个文件的行数,之后你可以用!node script.js或让 Gemini 通过 `run_shell_command` 执行。 - 用 MCP 做临时工具: 在更高级的场景里,AI 甚至可能建议起一个 MCP 服务器做专门任务。比如文本处理适合用 Python,它会写一个简单的 Python MCP 并运行。虽不常见,但体现出 AI可以“自我增援”。
关键收益是自动化:你不必停下手写辅助脚本,AI会把它作为流程的一部分生成与运行。尤其适合数据变换、批量操作或内建工具没有的“缺口”。
安全细节: 在批准写入与执行前一定查看 diff,确认逻辑符合预期且无破坏性动作(删除、大规模改动等)。像所有 AI 代码一样,保持基本的代码审查。
示例: 你有一个 CSV,需要复杂过滤。AI提议:“我会写一个 Python 脚本过滤 CSV。”它创建 filter_data.py,你批准写入并运行得到结果。脚本或许只用一次,但节省了你的时间。
进阶提示: 如果脚本有复用价值,把它“升格”为自定义斜杠命令(见技巧 2),让工具箱随使用不断扩充。
技巧 9:用 Gemini CLI 做系统排障与配置
快速场景: 在任何目录下都能使用它为操作系统层面的任务出力:把它当“智能终端助理”。比如,“修修我的 .bashrc,它有错误。”Gemini 会读取并提出修复方案。
常见用法:
- 编辑点文件: 引用
@~/.bashrc或@~/.zshrc,让 AI优化/排障。比如 PATH 没包含 Go 的 bin,它会插入正确的export PATH=...行。变更会先以 diff 形式展示,等你批准。 - 诊断错误: 把终端或应用日志中的错误贴给它。它会分析报错并建议解决步骤。如
npm install的EACCES权限错误,它可能提示修复目录所有权或改用 node 版本管理器。 - 非项目运行: 在无
.gemini的目录也能全功能运作。把 CLI 当成“有动作能力的智能终端”,并不需要项目上下文。 - 工作站定制: 让它安装工具、配置系统或 Git。它可能通过搜索获取说明并构造命令,逐条请求你批准。示例:用
defaults write命令调整 macOS Dock 行为。
把 CLI 当聪明 Shell使用,必要时结合技巧 16(Shell 直通)。你可以在 `!` 模式验证某些事,再回到 AI 模式分析输出。
注意: 系统级命令影响面广,保持谨慎。CLI 通常会征求确认,但你仍需要理解命令含义。若不确定,先让它解释命令再执行。
排障加分项: 用它扫描日志或配置寻找问题。例如,“检查这份 Apache 配置是否有错误”(@httpd.conf),或“查看昨天下午 2 点 syslog 的错误”(如果可访问 @/var/log/syslog)。它能提出崩溃原因或修复建议。
技巧 10:YOLO 模式——自动批准工具动作(谨慎开启)
快速场景: --yolo 或会话中按 Ctrl+Y 开启后,AI 选定工具动作会直接执行,不再提示(y/n)。适合大量“已知安全”的重复操作。
启动:
1gemini --yolo
或短选项 gemini -y。会话中可用 Ctrl+Y 快速开/关。
风险预警: YOLO 强力但有风险。正常模式下,如果 AI 拟执行危险命令,你会拒绝;YOLO 下会直接跑。虽然极端情况少见,但确认提示本来就是安全网。绕过它等于拆网。
最佳实践:
- 用“允许列表”替代全局 YOLO:在设置中对某些模式的命令自动批准(如仅 git 或只读操作),减少手动确认但保留护栏。
- 在沙箱里 YOLO:
--sandbox让工具在容器中执行,即便出现误操作也隔离。 - 频繁切换:大批安全编辑时开;关键动作前关。
技巧 11:无头与脚本模式(在后台运行)
快速场景: 在脚本或自动化中以无头模式使用。通过命令行参数或环境变量提供提示,CLI 输出后直接退出,便于集成或定时。
- 一次性输出: gemini -p "...提示..." 已是无头用法:打印响应并返回 shell。
- 覆盖系统提示: 用环境变量
GEMINI_SYSTEM_MD指向你的系统提示文件,替换内置系统人格与规则。例如:
1export GEMINI_SYSTEM_MD="/path/to/custom_system.md"2gemini -p "执行任务 X,务必谨慎"
若设为 true,CLI 会在项目的 .gemini 中寻找 system.md。谨慎使用,内置系统提示包含工具使用的重要规则。
- 交互启动即问:
gemini -i "你好,让我们开始调试"会在打开 REPL 的同时先发一句问候或初始问题。 - 管道/重定向: 可把文件或命令输出喂给 CLI,例如:
gemini -p "总结这份日志:" < big_log.txt,或 some_command | gemini -p "基于以上输出,问题在哪?" - CI/CD 集成: 在流水线中用 -p 和认证环境,自动分析失败测试并发表评论。
- JSON 输出:
--format=json便于程序化消费;可解析工具动作与结构化答案。 - 会话摘要落盘:
--session-summary usage.json将会话统计写入文件,适合预算与报表。
无头模式把 CLI 从“交互助手”变成可编排的后端组件。你可以 cron 定时跑任务,或在 IDE 按钮触发一次性分析。
技巧 12:保存并恢复聊天会话
快速场景: 长时间调试需要暂停,用 /chat save <name> 保存会话;之后用 /chat resume <name> 继续,完整上下文无缝延续。
命令一览:
/chat save <tag>保存当前会话到你提供的标签;/chat list列出已保存的会话标签;/chat resume <tag>恢复该会话;/chat share导出会话到文件,便于他人接续。
典型用法:
1/chat save api-upgrade2/quit3# 之后再次打开4$ gemini5gemini> /chat list6gemini> /chat resume api-upgrade
建议用语义化标签,例如 memory-leak-bug,方便多线程并行工作。
技巧 13:多目录工作区——一个 Gemini,覆盖多个文件夹
快速场景: 前端/后端分仓?让 CLI 同时访问两者,构建统一工作区,跨目录读写与推理。
两种打开方式:
- 启动标志:
gemini --include-directories "../backend:../frontend" - 持久设置: 在
settings.json中写"includeDirectories": ["path1", "path2"],支持相对/绝对路径与环境变量。
会话中可用 /directory show 查看工作区目录;用 /directory add <path> 动态添加。这样 AI 可以同时打开后端 API 定义与前端调用代码,进行联动修改。
若误加目录,可用 `/directory remove <path>` 移除。
技巧 14:用 AI 帮你整理与清理文件
快速场景: 让 CLI 扫描目录、分类文件并移动到子文件夹(经你批准)。例如,
1“整理我的 Downloads:把图片移到 Images、PDF 移到 Documents、临时文件移到 Trash。”
一个参考流程:
- 盘点与初分: 让 Gemini 列出并初步按扩展名分类(images、videos、documents、archives、others),必要时打开文件窥视内容。
- 拟定结构: 要它根据盘点提出文件夹结构与移动计划,同时识别疑似重复或无用文件。
- 执行且确认: 让它先打印将要执行的
mkdir/mv命令(干跑),你审核后再批准批量执行。删除操作尽量改为移至“Trash/待审”文件夹。
特别好用的是按内容重命名图片:AI 会看图后把 IMG_1234.jpg 变成 login_screen.jpg 等更有语义的名称,极大提高素材可用性。
安全建议:保留可撤销手段(见技巧 5),且先干跑后执行。
技巧 15:压缩长会话以留出上下文空间
快速场景: 会话过长接近上下文上限时,用 /compress 生成摘要并替换详细历史,保留关键点继续推进。
执行 /compress后,CLI 会显示“已压缩”并给出摘要文本。此后模型只看到摘要(加上新的消息),通常足够维持连贯性。你可以多次压缩,但太频繁会丢失细节。若有绝不能丢的事实,考虑写入持久记忆(技巧 4);记忆会在任何压缩后继续注入上下文。
技巧 16:用 ! 直通 Shell(和终端“合一”)
快速场景: 在会话中随时执行 Shell 命令,并把输出直接纳入上下文。例如:!ls -lh src/
两种用法:
- 单条命令模式: 前缀
!执行一次命令,输出就地展示,回到gemini>。 - 持久 Shell 子模式: 单独输入
!进入shell>子模式,连续执行多条命令;再次输入空行的!或exit返回聊天模式。
这让开发与分析无缝结合:跑测试、编译、curl 抓数据,随后直接让 AI解读输出。
技巧 17:把系统中的每个 CLI 工具都视为 Gemini 的“外接工具”
快速场景: 你的 $PATH 就是 AI 的工具箱。只要装了,它就能调用:curl、ImageMagick、git、Docker、ffmpeg 等等。
示例:
- “把这个文件夹所有 PNG 转为 WebP”:AI 可能用 ImageMagick 的 convert 循环。
- “部署到 Docker”:用 docker build、docker run。
- “从 video.mp4 中提取音频”:构造 ffmpeg 命令。
它能读 --help 或直觉掌握常见用法。若调用不存在的命令或错参,你会看到错误并可纠正。为安全起见,可使用白名单、黑名单或沙箱(见技巧 10、19)。
技巧 18:用多模态能力——让 Gemini“看见”图片与更多
快速场景: Gemini CLI 不只处理文本——它能理解图片、图示,乃至 PDF(经工具转换)。例如,
1“这是错误弹窗截图 @./error.png,帮我排查。”
更多创意用法:
- UI/UX 反馈与生成代码: 贴设计图 @mockup.png,让它产出 React 组件结构草案。
- 按主题整理图片: 让它看每张照片并按主题分拣(夕阳、山脉、人物)。
- OCR 与结构化抽取: 从发票图片提取编号、日期、金额并汇总为表格;这在 GCP 的示例中已有实践。
- 解读图表: 让它解释轴、趋势与关键洞见(准确度视图而定)。
非图片模态:PDF、音频、视频可通过内置/外部工具转换为可分析的文本或数据(PDF-to-text、语音转写等),再由模型处理。
CLI 是文本界面,因此不会直接显示图片,但可把图片内容作为上下文,并可生成文件或链接形式的输出。
技巧 19:定制 $PATH(与工具可用性)以提升稳定性
快速场景: 如果发现 AI 调错程序或版本混乱,考虑用定制的 $PATH 运行 CLI,限制或排序可调用的可执行文件,避免混淆或递归调用自身。
最简单的做法是启动时设置:
1PATH=/usr/bin:/usr/local/bin gemini
也可以在设置中排除某些工具、或干脆禁用 Shell 工具(极端情况下 excludeTools: ["run_shell_command"] 让 CLI 只读)。更稳妥的是 --sandbox 在容器里执行,让环境与工具集完全受控。
在多版本工具链场景(如 gcc-10 与 gcc-12 并存),通过 $PATH 或环境变量(如 CC)确保 AI 选择正确版本。
技巧 20:用 Token 缓存与统计,降低成本与延迟
如果你进行长会话或反复附加大文件,开启缓存并监控使用能降低花费与响应时间。使用 API Key 或 Vertex AI 认证时,Gemini CLI 会自动复用已发送的系统指令与上下文,使后续请求更省 token。你可以:
- 在会话中用
/stats查看总 token 与cached字段(缓存命中)。 - 在无头模式输出 JSON 并解析
stats(如 `tokens.cached),例如:` gemini -p "总结 README" --output-format json - 用
--session-summary usage.json将会话摘要写盘,适合 CI 或预算跟踪。
保持 GEMINI.md 与大文件引用在会话内稳定,有助于提高缓存命中率。
技巧 21:用 /copy 快速复制到剪贴板
快速场景: 一条命令把上一条 AI 输出或代码片段干净复制到系统剪贴板,不带行号或杂项,便于直接粘贴到编辑器或分享。
实现依赖平台剪贴板工具:macOS 用 pbcopy,Windows 用 clip,Linux 需安装 xclip 或 xsel。执行 /copy 后会提示复制成功。
技巧 22:熟练使用 Ctrl+C 中断与退出
快速场景: 单击 Ctrl+C 中断当前动作或清空输入;在 Shell 子模式下也可退出并返回聊天。连续按两次 Ctrl+C 退出 CLI。Shell 模式下按 Esc 也可返回聊天;正式退出可用 /quit,Unix 下空行按 Ctrl+D(EOF)也能退出。
技巧 23:通过 settings.json 定制 Gemini CLI
快速场景: 在用户目录 ~/.gemini/ 或项目 .gemini/ 中编辑 settings.json,以适配你的习惯或项目约定,替换“统一默认值”。
设置是分层合并的:系统默认 < 用户设置 < 项目设置(项目级覆盖用户级)。示例片段:
1{2 "theme": "GitHub",3 "autoAccept": false,4 "vimMode": true,5 "sandbox": "docker",6 "includeDirectories": ["../shared-library", "~/common-utils"],7 "usageStatisticsEnabled": true8}
你也可以运行 /settings 打开交互式设置界面,浏览带描述的选项并避免 JSON 语法错误。视觉主题可用 /theme 快速切换,满意后写入 settings.json 固化。
团队项目建议更严格策略(例如 "sandbox": "docker"、"excludeTools": ["run_shell_command"]),个人项目则可更自由。
技巧 24:使用 IDE 集成(VS Code)获取上下文与自动打开差异
快速场景: 给 VS Code 安装 “Gemini CLI Companion” 扩展并连接,CLI 能自动感知你在编辑器中打开的文件、选区、光标位置;当 AI提出代码变更时,它还能在 VS Code 的 diff 视图中自动打开。
在 VS Code 的集成终端中启动 CLI,通常会提示安装与连接扩展;你也可以在 CLI 中运行 `/ide install` 进行安装,随后 /ide enable 建立连接。用 /ide status 查看连接状态与可感知的文件。集成后,AI 的建议会通过 VS Code 的差异视图呈现,你可以在熟悉的界面里审阅与接受。
目前官方以 VS Code 为主(其他编辑器未来可能通过扩展规范接入)。连接后,你也可以用 VS Code 的命令面板(Ctrl/Cmd+Shift+P)快速执行 “Gemini CLI: Run”“Gemini CLI: Accept Diff”“Gemini CLI: Close Diff Editor”等命令。
技巧 25:使用 Gemini CLI GitHub Action 自动化仓库任务
快速场景: 在 GitHub 上部署 Gemini ——用 Gemini CLI GitHub Action 自动分拣新 Issue 与评审 Pull Request,让它充当“AI 队友”处理例行开发任务。
设置步骤:
- 本地 CLI 版本 0.1.18 或更高;
- 在 CLI 中运行
/setup-github生成必要工作流文件并引导认证; - 在仓库 Secret 中添加
GEMINI_API_KEY; - 提交
.github/workflows/下的 YAML 工作流(默认提供 Issue 分拣、PR 评审、@提及触发助手三套流程),它们都是开源可编辑的。
之后,Action 会在新 Issue 或 PR 打开时自动运行:为 Issue 打标签、优先级、查重;为 PR 输出 AI 评审意见。团队成员也可以在 Issue/PR 评论里 @gemini-cli 并提出请求(如“请为这段代码写单测”),Action 会尝试执行(甚至添加提交)。
建议在 Actions 日志中观察透明度与行为,必要时使用“允许列表”来限制工作流中的命令执行。
技巧 26:开启遥测以获得洞察与可观测性
快速场景: 打开内置的 OpenTelemetry(OTEL),监控会话的指标、日志与追踪,分析使用模式或排障。
默认关闭,可在 settings.json 设 "telemetry.enabled": true 或用 --telemetry 启用。目标可设为本地文件(outfile)或云端(如 GCP Cloud Logging/Monitoring),也可对接兼容 OTEL 的平台(Jaeger、Datadog、Prometheus 等)。遥测记录工具执行、错误、响应时延、token 用量等事件与指标。团队可以据此做使用分析与性能监控,甚至设置告警(例如错误率飙升或 Token 使用达阈值)。
若只需轻量视图,用 /stats 查看当前会话的基础数据。
技巧 27:关注路线图(背景代理等)
快速场景: 关注公开的 Gemini CLI 路线图,了解即将发布的重大特性(例如用于长任务的“背景代理”),提前规划并反馈。
Gemini CLI 迭代很快,路线图在 GitHub 上公开维护,按“领域”(如 Extensibility、Model、Background 等)与里程碑组织。背景代理旨在让你启动一个在后台长期运行的代理,处理持续或异步任务,不占用交互会话。它可能在本地或云端(如 Cloud Run)运行,实现“长任务与主动协作”。
关注路线图能让你提前了解工具集成、新模型支持、交互改进等,并参与相关 Issue 的设计讨论或测试。
技巧 28:用“扩展(Extensions)”扩充 Gemini CLI
快速场景: 通过安装即用的扩展为 CLI 增加新能力——例如接入你常用的数据库或云服务——无需大改动就能把 AI 的工具箱扩大。就像给 CLI 安装“应用”,教它新本事。
扩展在 2025 年末推出,它以模块化方式定制并扩展 Gemini CLI 功能。扩展是一个配置(可附带代码)包,把外部工具或服务接入 CLI。Google 发布了一系列面向 Google Cloud 的扩展(如部署到 Cloud Run、管理 BigQuery、应用安全分析),合作伙伴与社区也在构建针对 Dynatrace、Elastic、Figma、Shopify、Snyk、Stripe 等的扩展。安装扩展后,AI 即刻获得该领域的工具与“使用剧本”,知道如何正确调用相关 API 或命令。
使用非常直接:用 CLI 管理命令安装,例如:
1gemini extensions install https://github.com/google-gemini/gemini-cli-extension-cloud-run
几秒后扩展会被安装到 ~/.gemini/extensions/ 或项目的 .gemini/extensions/。用 /extensions 查看已启用扩展。从此,如果是 Cloud Run 扩展,你可以直接说“把我的应用部署到 Cloud Run”,Gemini CLI 将按扩展提供的工具与流程执行(调用底层 gcloud 命令)。扩展是首类能力扩充,按需选择,保持 CLI 轻量又可无限加能。
生态是开放的:官方维护“扩展列表”,任何人都可创建并分享自己的扩展。自建扩展并不困难:建立一个目录(如 my-extension/)与 gemini-extension.json 描述新增的工具或上下文,定义斜杠命令或远程 API。你无需改动 CLI 核心,扩展在运行时加载。很多扩展会通过增加自定义 MCP 工具来工作。例如,一个扩展可以新增 /translate 命令并接入外部翻译 API;安装后 AI 就会用它。
你可以更新或移除扩展(命令或删除目录)。建议不时检查更新,获得改进。将来可能会有“扩展市场”式的界面;目前通过 GitHub 与官方目录探索即可。热门扩展包括 GenAI 的 Genkit 扩展、各种 Google Cloud 扩展(覆盖 CI/CD、数据库管理等)。
进阶提示: 自建扩展时先参考现有示例,阅读官方“扩展指南”的 schema 与能力说明。一个简易路线是先用 GEMINI.md 的 @include 注入脚本或上下文,但完整扩展能打包工具与命令,能力更强。扩展也能包含领域知识上下文——比如公司内部 API 的摘要与调用工具——让 AI 自然掌握该领域的工作方法。关注扩展生态并把你构建的好扩展分享出去,能帮助更多开发者。
彩蛋:柯基模式 🐕
最后,来点趣味——试试 /corgi 命令,开启 “柯基模式”,一只可爱的柯基会在你的终端里跑来跑去!再次 /corgi 可关闭。
这纯属娱乐,但也显示了团队的幽默感。在漫长编码时刻,来一只柯基放松一下也不错。
结语
我们完整覆盖了 Gemini CLI 的进阶技巧与功能。从用 GEMINI.md 提供持久上下文、编写自定义命令与 MCP 扩展,到发挥多模态输入与自动化工作流,这个 AI 命令行助手能做的远比“回答问题”更多。你可以把它深度嵌入日常开发:处理繁琐任务、提供洞见、甚至维护你的工作环境。
Gemini CLI 在快速演进(开源与社区共建),新特性持续上线。掌握本指南中的技巧,你就能充分释放它的潜力。这不只是在用一个模型——而是在把 AI 深度融入你的软件开发方式。
祝你用 Gemini CLI 顺利编码,也愿它让你更高效、更愉快。
原文:Gemini Cli Tips & Tricks, Addy Osmani

