Gemini CLI简介
Gemini CLI是Google推出的命令行界面工具,对标Claude Code,不过前者是开源的,这也让我们得以复现它的功能。
他提供一个TUI界面,可以在终端中与Gemini AI进行交互,支持代码生成、调试和文档编写等功能。
安装
| |

安装好后默认界面是这样的

这里我选择默认主题

Enter后会进入主界面,这里我选择使用Google账户登录,他就会弹出浏览器窗口来进行登录。

这时候我遇到了一个问题,提示我需要设置Google Cloud认证。

查阅了资料之后发现需要去到Google Cloud配置API
大概率是因为之前用过Google Cloud
进入后,选择启用Gemini for Google Cloud,然后点击管理

在这之后,还需要访问Google Cloud控制台来获取到项目 ID

在这里,找到项目ID,我这里是gen-lang-client-19890604
然后在终端环境中加入以下命令来设置环境变量:
| |
Windows用户可以使用以下命令:
| |
然后重启终端就可以登录了,如果还不能登录,或者是提示网络不行,可以开启Clash的TUN模式,这样终端也可以走代理。
初步使用
这里我让他根据代码生成一个README文件

他很快就生成好

选择always allow
看着效果还不错

接入MCP后如果能接入Github Issue来改文件就更好了
进阶技巧
使用 /compress可以压缩上下文,让他不会超过大模型的context限制
| |
可以直接在终端中输入命令来执行操作,比如:
| |
或者
| |

你可以用
| |
来保存聊天记录,方便后续继续

像我这里就保存了一个’ai_review_chat’的聊天记录
我最常用的是
| |
来加载之前的聊天记录

你可以用
| |
来恢复聊天记录(有点类似git reset)
| |
来查看所有的聊天记录列表
自带谷歌搜索功能,可以直接在终端中输入
| |
来进行搜索

理解一点Gemini CLI

Gemini CLI的步骤可以分为以下几个部分:
| |
是否调用工具其实还是要看模型,让模型来判断是否进行工具调用。
举个例子:
一个典型的工具调用响应(以JSON格式为例):
| |
我来解读这个JSON:
- functionCall: 这个字段的存在,本身就是一个明确的信号,告诉你的应用程序:“这不是最终答案,这是一个工具调用请求”。
- name: “ls”。这个字符串直接对应你在代码里定义的工具的名称。你的应用程序会用这个名字去查找要执行的函数。
- args: 这是一个包含所有参数的对象。
- “path”: “internal/tui/”: 这里是参数名和参数值的键值对。模型从用户的提问“帮我看看 internal/tui 目录里有什么”中,准确地提取出了路径作为 path 参数的值。
痛点
现在的Gemini CLI还存在一些痛点,比如命令行模式没有补全,无法在CLI内使用vim等
还有如果不是谷歌这样财大气粗的,一直使用最顶级的模型可能有成本问题,如果能做到不同地方使用不同模型可能会更好。
话说既然都用chat来生成代码了,为什么不能实现个功能:输出chat呢?
参考
https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/commands.md
https://xie.infoq.cn/article/915006cf3760c99ad0028d895
