read_many_files)This document describes the read_many_files tool for the Gemini CLI.
Use read_many_files to read content from multiple files specified by paths or glob patterns. The behavior of this tool depends on the provided files:
read_many_files can be used to perform tasks such as getting an overview of a codebase, finding where specific functionality is implemented, reviewing documentation, or gathering context from multiple configuration files.
Note: read_many_files looks for files following the provided paths or glob patterns. A directory path such as "/docs" will return an empty result; the tool requires a pattern such as "/docs/*" or "/docs/*.md" to identify the relevant files.
read_many_files takes the following arguments:
paths (list[string], required): An array of glob patterns or paths relative to the tool’s target directory (e.g., ["src/**/*.ts"], ["README.md", "docs/*", "assets/logo.png"]).exclude (list[string], optional): Glob patterns for files/directories to exclude (e.g., ["**/*.log", "temp/"]). These are added to default excludes if useDefaultExcludes is true.include (list[string], optional): Additional glob patterns to include. These are merged with paths (e.g., ["*.test.ts"] to specifically add test files if they were broadly excluded, or ["images/*.jpg"] to include specific image types).recursive (boolean, optional): Whether to search recursively. This is primarily controlled by ** in glob patterns. Defaults to true.useDefaultExcludes (boolean, optional): Whether to apply a list of default exclusion patterns (e.g., node_modules, .git, non image/pdf binary files). Defaults to true.respect_git_ignore (boolean, optional): Whether to respect .gitignore patterns when finding files. Defaults to true.read_many_files with the Gemini CLIread_many_files searches for files matching the provided paths and include patterns, while respecting exclude patterns and default excludes (if enabled).
--- {filePath} --- between the content of each file. Uses UTF-8 encoding by default.--- End of content --- after the last file.paths: ["logo.png"] or include: ["*.pdf"]), the tool reads the file and returns its content as a base64 encoded string.Usage:
read_many_files(paths=["Your files or paths here."], include=["Additional files to include."], exclude=["Files to exclude."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)
read_many_files examplesRead all TypeScript files in the src directory:
read_many_files(paths=["src/**/*.ts"])
Read the main README, all Markdown files in the docs directory, and a specific logo image, excluding a specific file:
read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])
Read all JavaScript files but explicitly include test files and all JPEGs in an images folder:
read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)
paths or include patterns (e.g., by specifying the exact filename like video.mp4 or a pattern like *.mov).node_modules, .git) and use useDefaultExcludes=False if you need to override them, but do so cautiously.