AI大模型与CLI应用系列:本系列聚焦于AI大模型在命令行界面(CLI)中的应用,探索如何通过CLI工具高效利用AI能力,提升开发与工作效率。

此文以Google Gemini cli为例…


一、Gemini CLI 简介

Gemini CLIGoogle 推出的基于 Gemini 大模型 的命令行工具,它能将强大的 AI 能力无缝集成到你的终端,通过自然语言对话帮你写代码、梳理项目、自动化任务等。

主要特性

  • 超大代码库理解与编辑(支持 1M+ Token 上下文)
  • 多模态输入(文本、图片、PDF 等)
  • 自动化开发运维任务:一句话即可完成如“查询昨天所有合并的 pull requests”、“复杂分支变基”等操作。
  • 强大工具生态:可接入 Google 最新的文生图、文生视频、文生音乐等模型,支持多媒体生成。
  • 内置 Google 搜索,遇到问题可直接在终端查找资料。

二、安装与认证

1、安装

前置要求:Node.js ≥ 20

安装命令

npm install -g @google/gemini-cli

2、认证和使用

方式1:Google账户

注意:可能会因为npm缓存或者版本问题,导致登录过程一直loading。登录成功后,按照以下方式操作:

在项目目录或任意目录下运行:

cd your-project/
gemini

首次启动会引导你在浏览器登录 Google 账号,以授权使用 Gemini 2.5 Pro 模型

方式2:GEMINI_API_KEY (推荐)

注意:Google账号登录可能受到网络环境影响,建议直接使用API密钥方式。避免复杂的OAuth认证流程,更加稳定可靠。

# 1. 访问 Google AI Studio
open https://aistudio.google.com/

# 2. 登录后创建API密钥
# AI Studio 界面的左侧或右上角,寻找 "Get API key"(获取 API 密钥)或 "API key"(API 密钥)的选项

# 3. 设置环境变量
export GEMINI_API_KEY="your_api_key_here"

# 4. 验证设置
echo $GEMINI_API_KEY

# 5. 运行CLI
gemini

遇到终端代理问题(如:访问Google超时),查看 BackEndDevelopment/Shell解决。


三、常见问题与注意事项

  • 免费额度:个人 Google 账号每分钟 60 次、每天 1000 次请求。
  • Google Workspace 账号: 如遇认证问题,需在终端设置 GOOGLE_CLOUD_PROJECT 环境变量
  • 429 错误/降级: 高峰期可能遇到“Too Many Requests”或自动降级为 flash 模型,属正常现象
  • 安全提示: 涉及本地文件操作时,Gemini CLI 会请求确认。
  • gemini chat API 调用失败: ✕ [API Error: exception TypeError: fetch failed sending request]

1、gemini chat 时遇到了 API 调用失败

使用gemini chat 时遇到了 API 调用失败的问题,核心错误如下:

[API Error: exception TypeError: fetch failed sending request]

1.1 问题分析

网络环境( Clash Pro/VPN/代理)成功拦截了 gemini CLI 发出的请求,但在尝试将请求转发到 Google 的 API 服务器时失败了。可能因为:

  • 代理配置不正确:代理规则未将 Google API的域名(如 generativelanguage.googleapis.com正确加入转发规则。
  • 代理协议不兼容: CLI 或其底层的 fetch 调用,无法通过当前的代理协议(例如 SOCKS5)成功发送请求。

1.2 解决方案

方案一:配置 CLI 使用系统代理(推荐)
Gemini CLI 会尝试使用 HTTP/HTTPS 环境变量来配置代理

  1. 代理地址: 确定代理(Clash Pro)正在本地监听HTTP 代理端口(如:7890 端口)。
  2. 设置 HTTP/HTTPS 代理环境变量: 在终端中设置环境变量(仅对当前会话有效):
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"

注意:若代理为 SOCKS5 协议,需安装 connect-proxy 等工具处理 SOCKS5 隧道。对多数Node.js/CLI 应用,HTTP 代理更简单。

  1. 再次运行:
gemini

方案二:配置代理软件绕过
如果你的网络不需要全局代理就能访问 Google 服务,可以让代理软件 忽略 Google API 的请求。

  1. 检查代理配置文件
  • 找到 Clash Pro 的配置文件(通常是 config.yaml)。
  • 确保将 Google API 的域名(如 *.googleapis.comai.google.dev)设置为 DIRECT(直连)或REJECT(拒绝代理,让流量走系统默认)。

2、解决 gemini cli 无法唤起编辑器的问题

 │ ...                                                                               
 │ Apply this change?                 
 │ ● 1. Yes, allow once 
 │   2. Yes, allow always
 │   3. Modify with external editor 
 │   4. No, suggest changes (esc)     

2.1 问题描述

macOS 上,当 gemini cli 提出代码修改建议并选择选项 3. Edit 时,可能无法自动唤起默认的文本编辑器(如 nanovim),导致无法预览和修改变更。

2.2 解决方案:配置 VS Code 作为外部编辑器

推荐使用 Visual Studio Code 作为外部编辑器,因为它与命令行集成良好。

第一步:安装 code 命令行工具

  1. 打开 VS Code 应用程序。
  2. 按下快捷键 Command (⌘) + Shift + P,打开命令面板。
  3. 输入 shell command,选择并执行 “Shell Command: Install ‘code’ command in PATH”
  4. 完成后,重新启动终端,输入 code -v,如果看到版本号,则表示安装成功。

第二步:设置环境变量

gemini cli 通过 EDITORVISUAL 环境变量来确定使用哪个编辑器。

  1. 在终端中执行以下命令,设置环境变量:

    export EDITOR="code --wait"
    export VISUAL="code --wait"
    

    重要--wait 参数会告诉终端等待 VS Code 关闭文件后才继续执行,这是确保 gemini cli 能成功接收修改的关键。

  2. (推荐)永久保存配置:将以上两行命令添加到您 Shell 的配置文件中(如 ~/.zshrc~/.bash_profile),然后执行 source ~/.zshrc 使其立即生效。

配置完成后,再次运行 gemini 并选择编辑选项,VS Code 应该会自动打开。在 VS Code 中保存并关闭文件后,gemini cli 会继续执行后续操作。

2.3 备用方案

如果以上方法仍然无效,可以采用以下方式处理变更:

  • 直接应用:选择 1. Yes, allow once 直接应用修改,然后手动在编辑器中检查。
  • 复制代码块:选择 4. No, suggest changes,然后要求 Gemini 以代码块形式输出完整代码,再手动复制粘贴。

参考

  • 官方仓库:https://github.com/google-gemini/gemini-cli

最后, 希望大家早日实现:成为编程高手的伟大梦想!
欢迎交流~

微信公众号

本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!