Gemini CLI 文件系统工具
Gemini CLI 提供一组与本地文件系统交互的工具,支持读取、写入、搜索、列举与修改文件或目录,并在敏感操作前征求确认。
注意:所有工具都在
rootDirectory(通常为运行 CLI 时的工作目录)内运行,参数路径需为绝对路径或可解析为该根目录下的路径。
1. list_directory(ReadFolder)
- 用途:列出指定目录下的文件与子目录,可按 glob 过滤。
- 参数:
path:必填,目录绝对路径;ignore:可选,忽略的 glob 列表;respect_git_ignore:是否遵循.gitignore,默认true。
- 输出:列出项目,目录优先;无确认。
2. read_file(ReadFile)
- 用途:读取文件内容(文本、PNG/JPG/GIF/WEBP/SVG/BMP/PDF)。文本可按
offset/limit指定行范围。 - 行为:
- 文本:返回内容,必要时标明截断;
- 图片/PDF:以 base64
inlineData形式返回; - 其他二进制:提示无法展示。
- 无须确认。
3. write_file(WriteFile)
- 用途:向指定文件写入内容,如不存在会自动创建父目录;
- 参数:
file_path、content; - 输出:成功信息;
- 需确认:显示 diff 并征求同意。
4. glob(FindFiles)
- 用途:基于 glob 模式查找文件,默认按修改时间倒序。
- 参数:
pattern必填,其余如path、case_sensitive、respect_git_ignore可选。 - 输出:匹配路径列表;无确认。
5. search_file_content(SearchText)
- 用途:在目录内按正则搜索文本内容,可限定文件范围;优先使用
git grep。 - 参数:
pattern、path、include。 - 输出:包含文件路径与行号的匹配结果;无确认。
6. replace(Edit)
- 用途:以精确上下文替换文件内容,默认替换一次;支持多次替换并内置多阶段纠错机制。
- 参数:
file_pathold_string:需包含修改前后的上下文(建议上下各 ≥3 行),用于定位唯一位置;为空时视为创建新文件;new_stringexpected_replacements
- 失败场景:路径非法、文件不存在、匹配数量不足或过多等。
- 输出:成功或失败信息;
- 需确认:显示 diff 并征求同意。
这些工具构成了 CLI 理解与操作本地项目的基础能力。