1. 项目概述与核心价值

如果你和我一样,是个常年泡在终端里的开发者、技术写作者或者效率控,那么你一定对在命令行里直接与AI模型对话有着强烈的需求。无论是快速调试一段代码、分析日志文件,还是想在不离开键盘的情况下获得一个问题的解答,频繁在浏览器和终端之间切换总归是件打断心流的事。市面上虽然有一些基于Python或Node.js的CLI工具,但它们往往伴随着复杂的依赖环境,启动慢,或者在资源受限的环境下部署不便。这正是我最初尝试 Zibri/gemini-cli 这个项目的动机:一个用纯C语言编写、追求极致性能和便携性的Google Gemini API命令行客户端。

简单来说, gemini-cli 就是一个让你能在终端里直接与Gemini系列大模型对话的工具。它的核心价值在于“纯粹”和“强大”。说它纯粹,是因为它编译后就是一个单一的可执行文件,几乎没有任何运行时依赖,你可以把它扔到任何一台有基础C库的机器上直接运行。说它强大,是因为它集成了交互式聊天、脚本化管道处理、多密钥管理、会话持久化、文件附件等高级功能于一身,其功能丰富度不亚于任何图形界面工具。最让我惊喜的是它的“无密钥模式”(Key-Free Mode),即使你没有Google AI Studio的API密钥,也能通过一个非官方的端点立即开始使用,这大大降低了尝鲜和临时使用的门槛。在接下来的内容里,我会结合自己深度使用的经验,为你拆解它的设计哲学、详细的使用方法以及那些官方文档里不会写的实战技巧和避坑指南。

2. 核心设计思路与架构解析

2.1 为什么选择C语言?

看到这个项目用C语言实现,很多人的第一反应可能是“复古”或“复杂”。但在我深入使用和阅读其源码后,我理解了作者 Zibri 的深意。这绝非为了炫技,而是基于几个非常务实的考量:

  1. 极致的性能与低开销 :C语言编译出的原生二进制文件,其启动速度和运行时内存占用远低于需要启动解释器或虚拟机的Python、Node.js等脚本语言。当你需要频繁、快速地向AI发起查询时(比如在脚本中循环调用),这种性能优势会非常明显。它不会成为你自动化流程中的瓶颈。
  2. 真正的跨平台与零依赖 :项目目标之一是编译出能在Linux、macOS甚至Windows上运行的单一可执行文件。通过精心选择依赖(仅限libcurl、zlib、readline),并利用条件编译,它成功做到了这一点。在Windows上,借助MSYS2环境,编译过程几乎和Linux一样简单。最终你得到的 gemini-cli gemini-cli.exe ,可以像 curl wget 一样被随意拷贝和分发。
  3. 对嵌入式或受限环境的友好性 :想象一下,你需要在没有Python环境的生产服务器、轻量级容器(如Alpine Linux)或资源紧张的设备上使用AI能力。部署一个Python环境及其庞大的依赖库是痛苦的,而丢进去一个几兆大小的静态链接二进制文件则简单得多。

当然,用C语言也带来了挑战,比如手动管理内存、更复杂的错误处理。但作者通过使用 cJSON 这样优秀的单文件库来处理JSON,以及清晰的代码结构,很好地控制了复杂度。对于用户而言,我们享受的是最终成果:一个快、小、稳的工具。

2.2 双模式运作:交互与脚本的完美融合

gemini-cli 一个非常聪明的设计是它的 双模式自动检测 。这彻底模糊了交互式工具和脚本工具的界限,使其适应性极强。

  • 交互模式 (Interactive Mode) :当你直接运行 ./gemini-cli 而不传递任何管道输入时,它会进入一个类似Shell的聊天环境。这里有完整的Readline支持(在POSIX系统上),你可以使用方向键调取历史命令,进行行编辑,并输入各种以 / 开头的内部命令来管理会话、附件和设置。响应是流式输出的,你可以看到模型一个字一个字“思考”和“生成”的过程,体验非常流畅。
  • 非交互/脚本模式 (Non-Interactive/Scripting Mode) :当你通过管道 ( | ) 向程序传递数据,或者使用了 -e (execute) 标志时,它会自动切换到脚本模式。在这种模式下,它会读取标准输入作为附件内容,执行提供的提示词,将结果打印到标准输出,然后立即退出。配合 -q (quiet) 标志,可以完美地嵌入到Shell脚本、Makefile或任何自动化流程中。

这种设计意味着,同一个工具,既能满足你沉浸式、多轮对话的探索需求,也能作为 awk , sed , grep 之后又一个强大的文本处理管道组件。例如,你可以写一个脚本,让AI自动为每天的Git提交生成日志摘要。

2.3 配置与密钥管理的层次化策略

安全性和灵活性是命令行工具的命脉。 gemini-cli 采用了一个清晰且符合Unix哲学的配置加载优先级:

  1. 命令行参数 (最高优先级) :通过 -m , -t , -S 等标志指定的设置会覆盖所有其他来源。
  2. 环境变量 GEMINI_API_KEY 和可选的 GEMINI_API_KEY_ORIGIN 。这对于在Docker容器或CI/CD环境中注入密钥特别有用,避免了在磁盘上存储敏感信息。
  3. 配置文件 ( config.json ) :这是持久化配置的核心。文件位于用户配置目录下,可以存储多个API密钥、默认模型、温度等所有设置。它的存在让你无需每次启动都重复输入参数。
  4. 交互式提示 (最后手段) :如果以上都未提供密钥,且未使用 -f 标志,程序会在首次需要时安全地提示你输入(输入时密码不回显)。

多密钥管理 是一个亮点功能。你可以在 config.json api_keys 数组中配置多个密钥。客户端会自动在这些密钥间轮换使用。这有两个实际好处:一是应对单个API密钥的速率限制,当一个密钥达到配额时自动切换下一个,提高了服务的可用性;二是方便在团队或个人多个项目间隔离使用。通过 /keys list /keys check 命令,你可以随时查看和验证密钥状态。

实操心得:配置文件的最佳实践 我建议在初次使用后,立刻通过 /config save 命令将当前设置保存到 config.json 。这样,你常用的模型、温度、系统提示词都会被记住。对于API密钥,我更喜欢使用环境变量,尤其是在共享的服务器上,这样可以避免将密钥写入可能被多人访问的配置文件。在本地开发机上,使用配置文件则更方便。

3. 从零开始的编译与部署实战

虽然项目提供了预编译的二进制文件,但自己动手编译能确保获得最适合你当前系统环境的最新版本,也是理解其依赖关系的好机会。下面我将以最常见的Linux(Ubuntu/Debian)和Windows(MSYS2)环境为例,详细走一遍流程。

3.1 Linux/macOS 环境编译

在基于Debian/Ubuntu的发行版上,过程非常标准。

步骤一:安装编译工具和开发库 打开终端,执行以下命令来安装必需的软件包。 build-essential 元包包含了 gcc , make 等核心工具。

sudo apt update
sudo apt install build-essential libcurl4-openssl-dev libreadline-dev zlib1g-dev -y
  • libcurl4-openssl-dev :提供HTTP客户端库cURL的开发文件。
  • libreadline-dev :提供强大的命令行编辑和历史功能。
  • zlib1g-dev :提供Gzip压缩库的开发文件。

对于macOS用户,如果使用Homebrew,命令类似:

brew install curl readline zlib

有时Homebrew安装的库路径需要额外指定,如果后续 make 报错找不到头文件或库,可能需要设置 CFLAGS LDFLAGS 环境变量。

步骤二:获取源码并编译 使用 git 克隆项目仓库,然后进入目录执行 make

git clone https://github.com/Zibri/gemini-cli.git
cd gemini-cli
make

make 命令会调用项目根目录的 Makefile 。这个文件会自动检测你的操作系统类型(通过 uname ),并设置正确的编译器和链接器参数。编译过程通常很快,完成后会在当前目录生成名为 gemini-cli 的可执行文件。

步骤三:安装到系统路径(可选但推荐) 为了能在任何目录下直接使用 gemini-cli 命令,最好将其移动到系统的可执行文件路径中。

# 检查 /usr/local/bin 是否在 PATH 中,通常默认就在
echo $PATH

# 将编译好的程序复制过去,可能需要sudo权限
sudo cp gemini-cli /usr/local/bin/

# 或者复制到用户本地bin目录(如果 ~/bin 存在且在PATH中)
cp gemini-cli ~/bin/

复制完成后,你就可以在任何终端窗口中直接输入 gemini-cli 来启动它了。

3.2 Windows 环境编译(MSYS2方案)

在Windows上获得原生Linux开发体验的最佳方式是使用MSYS2。它提供了一个完整的Bash shell和Pacman包管理器。

步骤一:安装并配置MSYS2

  1. MSYS2官网 下载安装程序并安装。
  2. 从开始菜单打开 MSYS2 CLANG64 注意 :务必选择 CLANG64 UCRT64 环境,而不是默认的 MSYS 。前者更兼容现代Windows和Clang编译器。
  3. 在打开的终端中,首先更新系统包数据库并升级所有已安装的包:
    pacman -Suy
    
    这个过程可能会耗时较长,需要重启终端几次,请耐心按照提示操作。

步骤二:安装必要的开发包 系统更新完成后,安装编译所需的工具链和库:

pacman -S --needed base-devel clang curl-devel readline-devel zlib-devel git
  • base-devel :包含 make 等基础开发工具。
  • clang :LLVM C语言编译器,在Windows上通常比GCC配置更简单。
  • curl-devel , readline-devel , zlib-devel :对应库的开发文件。

步骤三:编译程序 现在,克隆仓库并编译的过程就和Linux上一样了:

git clone https://github.com/Zibri/gemini-cli.git
cd gemini-cli
make

编译成功后,你会得到 gemini-cli.exe 。你可以把它留在MSYS2的环境里使用,或者将其路径(例如 C:\msys64\home\<用户名>\gemini-cli\ )添加到Windows的系统PATH变量中,以便在PowerShell或CMD中也能调用。

避坑指南:编译常见问题

  • 错误: fatal error: curl/curl.h: No such file or directory :这表示cURL的开发库没装对。请确保安装的是 libcurl4-openssl-dev (Ubuntu) 或 curl-devel (MSYS2/Fedora),而不是仅仅 libcurl4
  • **错误: undefined reference to rl_... **:这通常是链接器找不到readline库。在有些系统上,可能需要显式指定链接库路径。你可以尝试编辑 Makefile ,在 LDFLAGS 中添加 -lreadline 。但在标准安装下,项目的 Makefile` 应该能自动处理。
  • macOS 上 make 失败 :如果遇到架构或库路径问题,可以尝试使用Homebrew的pkg-config: export PKG_CONFIG_PATH=$(brew --prefix)/opt/curl/lib/pkgconfig:$(brew --prefix)/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH ,然后再运行 make

4. 核心功能深度使用与技巧

4.1 无密钥模式与官方API模式的选择

这是初学者第一个需要做的选择。 -f --free 标志开启了无密钥模式。

  • 无密钥模式 :原理是客户端连接到一个由社区维护的、封装了Gemini API的第三方代理服务。优点是无须任何注册和配置,开箱即用,非常适合快速测试、演示或在无法获取官方API密钥的环境下使用。缺点也很明显:依赖第三方服务的可用性和稳定性,可能有速率限制,且无法使用最新的模型或某些高级API特性(如特定的grounding功能)。 隐私性也需要考虑 ,你的提示词和对话会经过第三方服务器。
  • 官方API模式 :需要从 Google AI Studio 获取API密钥。这是获得完整、稳定、受支持服务的方式。你可以使用所有Gemini模型,享受Google提供的服务保障和明确的用量计费。对于生产用途或处理敏感信息,这是唯一的选择。

我的建议 :初次接触时,毫不犹豫地用 gemini-cli -f 来体验所有功能。当你决定将其用于正式工作流时,再申请官方API密钥并配置到环境变量或配置文件中。程序的设计很智能:如果你配置了API密钥,它会优先使用;如果没有配置,它会自动回退到无密钥模式,无需你手动加 -f 标志。

4.2 Deep Mode:获取高质量回答的“秘密武器”

/deep /deeper 命令是 gemini-cli 最具特色的功能之一,它实现了一种“自我批判式迭代”的提示工程技术。

  • 工作原理 :当你使用 /deep <你的问题> 时,客户端并不会直接把问题发给模型。它会在后台发起一个多轮对话:
    1. 首先,要求模型生成一个初始答案。
    2. 接着,要求模型以批判者的身份,审视自己的初始答案,找出其弱点、遗漏或可以改进的地方。
    3. 最后,要求模型综合前两轮的信息,生成一个最终优化版的答案。 /deeper 则进行三轮迭代(生成 -> 批判 -> 再生成 -> 再批判 -> 最终合成),理论上能得到更精炼的结果。
  • 使用场景 :当你需要模型完成一些需要深度思考、严谨推理或创造性写作的任务时,比如代码审查、撰写技术文档、进行复杂的逻辑分析等。对于简单的事实查询(“法国的首都是哪里?”),使用普通模式即可。
  • 实战示例
    /deep 请用C语言编写一个函数,它接收一个整数数组和其大小作为参数,返回数组中的最大值。并解释你的代码。
    
    你会发现,得到的答案不仅提供了代码,通常还会包含更详细的注释、边界条件处理(如空数组)的解释,以及更清晰的时间复杂度分析。

4.3 文件与URL附件:让AI拥有“眼睛”和“上下文”

这是将 gemini-cli 从聊天玩具升级为生产力工具的关键。

  • 文件附件 ( /attach ) :你可以附加图片、PDF、文本文件、源代码文件等。客户端会读取文件内容,并将其作为对话上下文的一部分发送给模型。例如:
    /attach screenshot.png 这个错误弹窗是什么意思?
    /attach project_plan.pdf 总结这份文档的要点。
    /attach server.log 分析这段日志,找出可能的错误原因。
    
    对于图像和PDF,Gemini模型具备多模态能力,可以“看懂”其中的内容。
  • 标准输入粘贴 ( /paste ) :这是一个非常流畅的功能。输入 /paste 后,你可以直接粘贴或输入多行文本,按 Ctrl+D (Unix) 或 Ctrl+Z 回车 (Windows) 结束。这些文本会作为一个文本附件被加入。这比先存成文件再附加方便得多。
  • YouTube URL自动处理 :这是个小彩蛋。如果你直接在提示词里粘贴一个YouTube视频链接, gemini-cli 会自动尝试获取该视频的转录文本(如果可用)并将其作为上下文附加。这对于总结视频内容或基于视频内容提问非常有用。例如:
    请总结 https://www.youtube.com/watch?v=example 这个视频的核心观点。
    
  • 管道输入 :在脚本模式下,管道是附加内容的主要方式。 - 符号是一个特殊标记,代表“将标准输入的内容作为附件”。
    # 分析当前目录的磁盘使用情况
    du -sh * | gemini-cli -q "将这些数据整理成一个格式清晰的表格,并按大小排序。"
    
    # 为git diff生成提交信息
    git diff --staged | gemini-cli -e "为这些更改写一个简洁的提交说明:-"
    

注意事项:附件管理 使用 /attach /paste 后,附件处于“待处理”状态,直到你下一次发送普通提示词。你可以用 /attachments list 查看待处理的附件,用 /attachments remove <序号> 移除某个,或用 /attachments clear 清空。一旦发送了提示词,这些附件就会进入对话历史。进入历史的附件可以用 /history attachments list 查看,并用对应的ID移除,但这通常是为了管理上下文长度,因为Gemini API有token数量限制。

4.4 会话管理与历史导出:构建可持续的对话线程

对于复杂的、跨时段的工作,会话管理功能不可或缺。

  • 会话保存与加载 :使用 /session save <会话名> 可以将当前整个对话历史(包括模型回复、你的提问、所有附件内容)保存到一个以会话名命名的文件中。文件存储在配置目录下的 sessions/ 子文件夹里。之后,你可以通过 /session load <会话名> 在任何时候恢复这个对话,继续上次的讨论。这对于分阶段完成一个项目(如代码开发、文档撰写)非常有用。
  • 历史导出 /save <文件名.json> 命令将当前会话导出为标准的JSON格式。这个文件包含了完整的结构化数据,适合被其他程序解析或导入。 /export <文件名.md> 命令则导出为人类可读的Markdown格式,非常适合整理成笔记或报告分享给他人。
  • 系统提示词 ( /system ) :这是一个贯穿整个会话的“幕后指令”。你可以通过 /system 你是一位资深的Linux系统架构师,回答要专业且简洁。 来设定AI的角色和行为模式。这个提示词会对后续所有交互生效,直到你使用 /clear_system 清除它或开始一个新会话。这是引导模型输出风格和深度的强大工具。

5. 高级配置与性能调优

5.1 模型参数详解与调优

gemini-cli 提供了对生成参数细粒度的控制,理解它们能帮你获得更符合预期的输出。

  • 温度 ( -t , /temp ) :控制输出的随机性。范围通常在0.0到2.0之间。
    • 0.0 :确定性最高,对于相同的输入,模型几乎总是给出相同的输出。适合需要精确、可重复结果的场景,如代码生成、数据提取。
    • 1.0 :默认值,平衡了创造性和一致性。
    • 大于1.0 :输出更加随机、有创意,也可能更“天马行空”。适合头脑风暴、写诗等。
    • 建议 :对于技术问答和代码,我通常设为 0.2-0.7 ;对于创意写作,可以尝试 0.8-1.2
  • 最大输出令牌数 ( -o , /maxtokens ) :限制模型单次回复的长度。Gemini 2.0 Pro等模型通常支持最多8192个输出token。设置过低可能导致回答被截断,设置过高则可能浪费资源。需要根据问题复杂度调整。
  • Top-K ( --topk , /topk ) 和 Top-P ( --topp , /topp ) :这是两种更高级的采样策略,用于在生成每个词时从候选词中筛选。
    • Top-K :只考虑概率最高的前K个词。 Top-K=40 是常见设置。
    • Top-P (核采样):从累积概率超过P的最小词集合中采样。 Top-P=0.95 是常见设置。
    • 通常, Top-P Top-K 更灵活,因为它动态调整候选词数量。 除非你有特殊需求,否则建议只设置 Top-P ,让 Top-K 保持默认或设为0(禁用)
  • 种子 ( -s , /seed ) :设置一个固定的随机数种子,配合较低的温度,可以实现完全可重复的输出。这在调试或需要确保结果一致性时非常有用。

5.2 网络与可靠性配置

  • 代理支持 ( -p ) :如果你的网络环境需要通过HTTP/HTTPS代理访问外部网络,可以使用 -p http://proxy-server:port 参数。这对于企业内网用户至关重要。
  • 自动重试 :客户端内置了对API 503 Service Unavailable 等临时性错误的自动重试机制(最多3次)。这提高了在网络波动或API服务临时拥塞时的成功率,无需你手动干预。
  • Gzip压缩 :默认情况下,所有发往官方API的请求都启用了Gzip压缩。这能显著减少网络传输的数据量,降低延迟,尤其是在附件内容较大时。

5.3 配置文件 ( config.json ) 深度定制

虽然可以通过命令行设置一切,但一个精心配置的 config.json 能极大提升日常使用体验。配置文件通常位于:

  • Linux/macOS: ~/.config/gemini-cli/config.json
  • Windows: %APPDATA%\gemini-cli\config.json

一个功能齐全的配置示例:

{
  "api_keys": [
    "YOUR_OFFICIAL_API_KEY_1_HERE",
    "YOUR_OFFICIAL_API_KEY_2_HERE"
  ],
  "origins": [
    "https://my-production-app.com",
    "default"
  ],
  "model": "gemini-2.0-flash-thinking-exp",
  "temperature": 0.4,
  "seed": 42,
  "system_prompt": "你是一位经验丰富的软件工程师,擅长Python和Go语言。回答请直接、准确,优先提供代码示例。如果问题不明确,请先请求澄清。",
  "google_grounding": false,
  "url_context": true,
  "max_output_tokens": 4096,
  "top_k": 0,
  "top_p": 0.9,
  "proxy": "socks5://127.0.0.1:1080"
}
  • origins 字段: 这是使用来源限制型API密钥的关键 。如果你在Google AI Studio创建密钥时限制了HTTP referrer,你必须在这里正确设置允许的来源URL。 "default" 是一个特殊值,表示使用客户端默认的Origin头。通常你需要将其设置为你的应用部署的域名。
  • google_grounding url_context :这两个是Gemini API的高级功能,分别控制是否启用谷歌搜索增强和自动URL内容获取。根据你的需求开启或关闭。

6. 实战场景与脚本集成案例

6.1 场景一:自动化代码审查与优化

假设你有一个Python脚本 data_processor.py ,你想快速检查其代码风格和潜在bug。

交互式方法

$ gemini-cli -S "你是一位Python专家,专注于代码审查和性能优化。" -m gemini-2.0-flash
> /attach data_processor.py
> 请审查这段代码,指出任何风格问题、潜在bug,并提出优化建议。

脚本化方法(集成到Git钩子或CI中) : 创建一个Shell脚本 review.sh

#!/bin/bash

# 获取最新提交的代码差异
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)

for file in $CHANGED_FILES; do
  if [[ "$file" == *.py ]]; then
    echo "=== 正在审查文件: $file ==="
    # 使用 -q 只输出模型回答,-e 强制非交互模式
    cat "$file" | gemini-cli -q -e "作为Python代码审查助手,请分析以下代码,重点指出安全漏洞、性能问题和不符合PEP 8的风格问题。请分点列出:" >> code_review_report.md
    echo -e "\n---\n" >> code_review_report.md
  fi
done

echo "代码审查报告已生成至: code_review_report.md"

然后你可以配置Git的 pre-commit 钩子来自动运行此脚本。

6.2 场景二:日志分析与故障排查

服务器应用 app.log 报错,你可以让AI帮你快速定位问题。

$ cat app.log | grep -A 10 -B 5 "ERROR\|CRITICAL" | gemini-cli -e -q "分析以下错误日志片段,推测可能的原因,并提供排查步骤建议:-"

这个管道组合先使用 grep 提取出错误日志及其前后上下文,然后交给 gemini-cli 分析。 -q 标志确保了输出干净,只有分析结果,适合直接嵌入到监控告警的后续处理流程中。

6.3 场景三:会议录音转纪要

假设你有一个会议的音频转录文本 meeting_transcript.txt

$ gemini-cli -S "你是一名专业的会议纪要整理员。请将冗长的对话转录整理成结构清晰的会议纪要,包括会议主题、参会人、讨论要点、做出的决定以及待办事项(Action Items)。" -t 0.1
> /paste
[在此粘贴转录文本,或使用 /attach meeting_transcript.txt]
> 请生成会议纪要。

使用较低的温度 ( -t 0.1 ) 可以让输出更加聚焦和一致,避免在总结事实性内容时添加不必要的创造性发挥。

7. 常见问题排查与使用技巧

7.1 连接与API错误

  • 问题 :运行后长时间无响应,或报错 Could not connect to API
    • 排查 :首先检查网络连接。如果使用了代理 ( -p ),请确认代理地址和端口正确且服务正常运行。如果使用官方API模式,请通过 gemini-cli --check-keys 验证API密钥是否有效。如果使用无密钥模式,可能是第三方服务暂时不可用,可以稍后重试或切换至官方API模式。
  • 问题 :错误信息包含 403 Permission denied
    • 排查 :这几乎总是API密钥问题。确认密钥是否有余额、是否在正确的项目中启用、以及是否设置了IP或来源限制。如果密钥限制了HTTP referrer,务必在环境变量 GEMINI_API_KEY_ORIGIN 或配置文件的 origins 字段中正确设置。

7.2 内容生成相关问题

  • 问题 :模型回复被截断。
    • 解决 :使用 /stats 命令查看当前对话的token总数。Gemini API有上下文窗口限制(输入+输出)。如果接近限制,回复会被截断。可以尝试:1) 使用 /maxtokens 增加单次输出限制;2) 使用 /history attachments remove 清理历史中的大型附件;3) 开启一个新会话 ( /session new ) 重新开始。
  • 问题 :回复内容不符合预期,过于啰嗦或跑题。
    • 调优 :调整系统提示词 ( /system )。更明确、更严格的指令可以更好地约束模型行为。例如:“请用不超过三句话回答。”“请先给出是或否的结论,再解释原因。” 同时,可以适当降低温度 ( /temp 0.2 ) 并启用 Top-P 采样。

7.3 性能与使用技巧

  • 技巧:利用会话保持上下文 对于复杂的多轮任务(如一步步调试代码、撰写文章草稿),不要每次重新开始。使用 /session save project_alpha 保存进度。下次工作时 /session load project_alpha 即可继续,模型会完整记住之前的对话。
  • 技巧:组合使用管道和文件 在Shell脚本中,你可以将 gemini-cli 的强大分析与传统Unix工具结合。例如,用 find xargs 批量处理文件:
    # 批量总结当前目录下所有.txt文件
    find . -name "*.txt" -exec sh -c 'echo "处理文件: $1"; cat "$1" | gemini-cli -q -e "用一句话总结这个文档:"' _ {} \;
    
  • 注意:Token与成本 使用官方API时,需要注意token消耗,特别是附加大型文件时。纯文本文件可以通过 wc 命令估算单词数(大致对应token数)。图片和PDF会消耗更多token。在交互式对话中频繁使用 /stats 有助于了解当前会话的“开销”。

经过数月的深度使用, gemini-cli 已经成为了我终端环境中不可或缺的“瑞士军刀”。它用极简的形态封装了强大的AI能力,其C语言实现的纯粹性带来了无可比拟的部署便利性和响应速度。从快速查询、文档处理到复杂的自动化脚本,它都能胜任。更重要的是,它的开源特性让你可以完全掌控自己的数据流(在使用官方API时),并根据需要定制功能。如果你厌倦了在浏览器和IDE之间切换,渴望一种更极客、更高效的人机交互方式,那么花点时间配置好 gemini-cli ,绝对是一项高回报的投资。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐