gemini-file-search-cli
v1.1.0
Published
CLI tool for managing Google Gemini File Search stores - upload files, query with RAG, and manage document metadata
Downloads
283
Maintainers
Readme
gemini-file-search-cli
A CLI tool for managing Google Gemini File Search stores. Upload files, query with RAG (Retrieval Augmented Generation), and manage document metadata.
Features
- Store Management: Create, list, and delete File Search stores
- File Upload: Upload files and directories with automatic MIME type detection
- Mbox Support: Special handling for mbox email archives with metadata extraction
- Glob Patterns: Upload specific files from directories using glob patterns
- RAG Queries: Query your documents using natural language with Gemini models
- Metadata Filtering: Filter queries by custom metadata (year, author, etc.)
Installation
From npm
bun install -g gemini-file-search-cli
# or
npm install -g gemini-file-search-cliFrom source
git clone https://github.com/ozanturksever/gemini-file-search-cli.git
cd gemini-file-search-cli
bun install
bun linkRequirements
- Bun runtime (v1.0.0+)
- Google Gemini API key
Setup
Set your Gemini API key as an environment variable:
export GEMINI_API_KEY=your_api_key_hereYou can get an API key from Google AI Studio.
Usage
Store Management
# List all stores
gemini-file-search stores list
# Create a new store
gemini-file-search stores create my-docs
# Delete a store
gemini-file-search stores delete my-docsUploading Files
# Upload a single file
gemini-file-search upload ./document.pdf --store my-docs
# Upload a directory (recursive)
gemini-file-search upload ./docs --store my-docs
# Upload with glob pattern
gemini-file-search upload ./src --store my-code --glob "**/*.ts"
# Upload mbox email archive (extracts individual emails)
gemini-file-search upload ./archive.mbox --store my-emailsManaging Files
# List files in a store
gemini-file-search files list my-docs
# Delete files by metadata filter
gemini-file-search files delete my-docs --filter source_filename=old.pdfQuerying
# Basic query
gemini-file-search query my-docs "What are the main topics discussed?"
# Query with specific model
gemini-file-search query my-docs "Summarize the key points" --model gemini-2.5-pro
# Query with metadata filter
gemini-file-search query my-emails "emails about meetings" --filter year=2024Supported File Types
The tool supports a wide range of file types including:
- Documents: PDF, Word, Excel, PowerPoint
- Code: TypeScript, JavaScript, Python, Java, and many more
- Text: Markdown, plain text, HTML, XML, JSON
- Email: mbox archives (with special processing)
See the Gemini File Search documentation for the full list.
Metadata
When uploading files, the tool automatically adds metadata:
directory: The source directory path
For mbox files, additional metadata is extracted:
from_email: Sender email addressto_email: Recipient email addressesparticipants: All email participants (to, cc, bcc)year: Year the email was sentmonth: Month the email was sentsource_filename: Original mbox filename
Models
Supported models for querying:
gemini-3-pro-preview(default)gemini-2.5-flashgemini-2.5-flash-litegemini-2.5-pro
License
MIT
