谷歌开源神器Gemini CLI

 Gemini CLI 是 Google 推出的一款免费、开源的 AI 命令行助手,基于 Gemini 2.5 Pro 模型,支持百万 Token 超长上下文,每天 1000 次调用额度,集成文本、图像(Imagen)、视频(Veo)多模态能力,支持 MCP协议 连接外部工具,可以极大提升开发和自动化效率。

注意与其他 UI 形式的 Agent 不同,它是一个命令行的 Agent。

1 前置条件

  • 操作系统:支持 Windows、macOS、Linux
  • Node.js:需安装 20 版本或更高(如果你本地有其他 node 需求,可以使用 nvm 管理 Node 版本)

1.1 使用 nvm 安装 Node(以 macOS/Linux 为例)

安装 nvm(Node 版本管理器)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh

1.2 安装 Node.js 22

nvm install 22
# 验证 Node.js 和 npm 版本
node -v   # 应输出 v22.x.x
npm -v

2 安装 Gemini CLI

使用 npm( Node.js 的包管理器,用于安装、管理和共享 Node.js 的代码包)全局安装(“-g” 代表全局安装,意味着安装后该工具在系统的任何目录下都可使用) “@google/gemini-cli” 的软件包

npm install -g @google/gemini-cli

3 启动和认证

  1. 选择主题:根据提示选择喜欢的终端主题。

  2. 登录方式:

    • 推荐【Google 账号登录】,免费额度高(60次/分钟,1000次/天)。

    • 也可使用 API Key,通过环境变量设置:export GEMINI_API_KEY="你的_API_KEY"

  3. 浏览器认证:首次登录会自动弹出浏览器,完成 Google 账号授权。

认证过程的常见问题(如果没有遇到忽略):

  1. 网络问题,解决办法:

    1. 因为默认情况下终端可能没有走代理软件,因此需要复制你代理软件的命令,让终端的网络请求也走代理(命令视代理软件决定)
    2. 比如我本地的使用 export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
    3. 也可以把这个放在 shell 的初始化文件中,比如我使用的是 zsh,那么把上面这段代理命令放到 ~./zshrc 中,可以避免每次启动都需要输出。
  2. 某些情况下可能需要指定 GOOGLE_CLOUD_PROJECT,解决办法:

    1. 搜索  Gemini API 开启 API 调用功能;

  1. 打开 Google Cloud 平台,创建项目(可能之前已经创建过了,则不需要重新创建);

   3. 将项目 ID 指定到环境变量中。
export GOOGLE_CLOUD_PROJECT="xxxx"

4 三大操作符

Gemini CLI 的三大操作符是 /!@,分别对应会话控制、Shell 交互、文件注入功能。以下是详细解析:

4.1 / 内置功能

用于管理 CLI 的交互行为和设置。

  • /help:显示所有可用命令的说明。
  • /chat save/resume/list:保存、恢复或列出对话历史(支持标签管理)。
  • /memory show/refresh:查看或重新加载 GEMINI.md 中的自定义规则记忆。
  • /theme:切换终端主题(如暗黑/亮色模式)。
  • /stats:查看当前会话的 Token 消耗和时长统计。
  • /clear(快捷键 Ctrl+L):清空终端屏幕。适用场景:管理长对话、优化 Token 使用(如 /compress 可压缩上下文节省资源)。

4.2 ! shell 命令

执行系统命令。

  • 单条命令:如 !git status 或 !ls -la
  • Shell 模式:输入 ! 进入临时 Shell 环境(提示符变色),再次输入 ! 返回对话。
  • 自动化整合:例如 git diff | gemini "总结代码变更" 通过管道符结合 AI 分析。

典型用途:快速执行脚本、检查文件系统状态或启动服务。

4.3 @ 引用文件

将本地文件内容作为上下文注入对话,支持精准分析或修改:

  • @文件名:注入单个文件(如 @src/utils.js 优化代码)。
  • @目录名:递归注入目录下所有文本文件(忽略 .gitignore 配置)。
  • 结合提问:例如 @report.md 总结这份文档的核心观点,AI 会基于文件内容生成回答。

5 使用场景示例

5.1 文件批处理

1.创建文件

2.文件重命令

* 文件操作:“创建一个名为 src 的目录,并把所有 .js 文件移动进去。” 或 “把所有以 .txt 结尾的文件后缀名改为 .md。”
* 运行脚本:“运行测试。” 或 “启动开发服务器。”
* 使用系统工具:“查找当前目录下所有大于 1MB 的文件。” 或 “使用 pip 安装 requests 库。”
* 自动化流程:“读取 users.csv 文件中的数据,为每个用户创建一个以其名字命名的文件夹。”

5.2 解释和优化代码

* 解释代码:“解释一下 create_site 这个函数是做什么的。”
* 总结文件:“总结 main.py 这个文件的主要功能。”
* 查找代码:“get_auth_token 函数是在哪个文件里定义的?” 或 “查找所有引用了 requests 库的文件。”
* 项目探索:“列出 tests/ 目录下的所有测试文件。”
* 编写新代码:“创建一个 Python 函数,输入一个数字列表,返回它们的平均值。”
* 添加新功能:“为我的 Express 服务器添加一个处理 /api/users POST 请求的新接口。”
* 重构代码:“将这个函数从使用 Promise 改为使用 async/await。”
* 修复 Bug:“utils.js 里的代码抛出了一个 TypeError,帮我找到并修复它。”
* 编写测试:“为 billing.py 文件里的 calculate_discount 函数编写单元测试。”

5.3 阅读和总结网页内容

5.4 信息检索

Gemini CLI 内置了 Goolge Search,让 Gemini 能够访问并搜索互联网,以获取最新的信息。当我们咨询一些具有时效性的问题时能够有效解答。

5.5 MCP 扩展

Gemini CLI 可以通过 MCP Server 集成 Imagen、Veo、Lyria 等多模态模型。

6 总结

Gemini CLI 像是一个安装在电脑终端里的、拥有超强能力的 AI 开发助手。在交互形式上确实有点“新”。除了需要走代理访问,有点点慢,其他表现还是比较超预期。

コメント

このブログの人気の投稿

Claude Code Hook机制详解