Gemini AI Automation Tool
The Swiss Army Knife for Gemini AI Automation - Backups, Cloud Sync, and Account Management.
geminiai-cli is a powerful, "batteries-included" command-line interface designed to supercharge your Gemini AI experience. It handles backups (Local, S3, B2), synchronizes data across devices, manages multiple profiles, and intelligently tracks account usage to bypass rate limits.
⚡ Quick Start (The "5-Minute Rule")
Prerequisites
- Python: 3.8 or higher
- Optional: AWS CLI or Backblaze B2 CLI for credentials management.
Installation
# Install from PyPI
pip install geminiai-cli
# Or install from source
pip install .
Get Started Immediately
Copy and paste this snippet to configure your first profile, backup to the cloud, and verify your system health.
# 1. Run the interactive setup wizard
geminiai config --init
# 2. Run your first local backup
geminiai backup
# 3. Push your backup to the cloud (requires configured credentials)
geminiai sync push
# 4. Check the account dashboard
geminiai cooldown --cloud
# 5. Get a smart account recommendation
geminiai recommend
✨ Features
Core Capabilities
- 🛡️ God Level Backups: Securely backup your configuration and chat history to Local, AWS S3, or Backblaze B2 storage. Supports GPG Encryption for sensitive data.
- 🌍 Machine-Time Adaptive: Automatically detects and uses your system's local timezone for all calculations and displays. No more manual IST/UTC conversions.
- ☁️ Unified Cloud Sync: Seamlessly
pushandpullbackups between your local machine and the cloud.
Smart Automation
- ⏱️ Smart Session Tracking: Tracks "First Used" timestamps to accurately predict Gemini's 24-hour rolling quota resets.
- 🧠 Intelligent Rotation: Automatically recommends the "healthiest" account based on session start times and Least Recently Used (LRU) logic.
- 🛡️ Accident Protection: Safeguards your session data by preventing accidental account switches from resetting your 24-hour quota clock.
Diagnostics & Management
- 📊 Visual Analytics: View beautiful, terminal-based bar charts of your usage history and account health.
- 🩺 Doctor Mode: Built-in diagnostic tool to validate your environment, dependencies, and configuration health.
- 🧹 Auto-Pruning: Automatically cleans up old backups and temporary files to keep your storage efficient.
🛠️ Configuration
You can configure geminiai-cli using Environment Variables, CLI Arguments, or the Interactive Config (geminiai config --init).
Priority Order: CLI Arguments > Environment Variables > .env / Doppler > Saved Config (~/.geminiai-cli/settings.json)
Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
GEMINI_AWS_ACCESS_KEY_ID |
AWS Access Key ID for S3. | None | No (for S3) |
GEMINI_AWS_SECRET_ACCESS_KEY |
AWS Secret Access Key for S3. | None | No (for S3) |
GEMINI_S3_BUCKET |
AWS S3 Bucket Name. | None | No (for S3) |
GEMINI_S3_REGION |
AWS Region. | us-east-1 |
No |
GEMINI_B2_KEY_ID |
Backblaze B2 Application Key ID. | None | No (for B2) |
GEMINI_B2_APP_KEY |
Backblaze B2 Application Key. | None | No (for B2) |
GEMINI_B2_BUCKET |
Backblaze B2 Bucket Name. | None | No (for B2) |
GEMINI_BACKUP_PASSWORD |
Password for GPG encryption. | None | No (for --encrypt) |
DOPPLER_TOKEN |
Token for Doppler secrets management. | None | No |
Key CLI Arguments
| Command | Flag | Description |
|---|---|---|
backup |
--encrypt |
Encrypt the backup archive using GPG. |
restore |
--auto |
Automatically select and restore the latest backup for the best available account. |
prune |
--cloud-only |
Only remove old backups from cloud storage, keeping local copies. |
config |
--force |
Force overwrite existing configuration values. |
cooldown |
--reset-all |
DANGER: Wipe all cooldown data (local and cloud). |
🏗️ Architecture
The geminiai-cli is built with modularity and extensibility in mind.
src/geminiai_cli/
├── cli.py # 🚀 Entry Point & Argument Routing
├── config.py # ⚙️ Global Constants & Paths
├── backup.py # 📦 Backup Logic (Local & Cloud dispatch)
├── restore.py # ♻️ Restore Logic (Auto-selection & Session logs)
├── cooldown.py # ❄️ Master Dashboard & Adaptive Time Logic
├── recommend.py # 🧠 Recommendation Engine (Session-aware)
├── sync.py # 🔄 Unified Sync (Push/Pull)
├── cloud_factory.py # ☁️ Cloud Provider Abstract Factory
└── stats.py # 📊 Visualization Module
Data Flow
- User Input: CLI args are parsed by
args.pyand routed bycli.py. - Configuration: Settings are loaded from
settings_cli.py(merging Env, CLI, and Config). - Action:
- Backup: Compresses
~/.gemini, encrypts (optional), and uploads viaCloudFactory. - Restore: Fetches list from cloud/local, decrypts, and extracts to
~/.gemini. - Recommendation: Queries
cooldown.pyfor account status and selects the LRU "Ready" account.
- Backup: Compresses
- Persistence: Usage stats and cooldowns are saved to JSON files in
~/.geminiai-cli.
🐞 Troubleshooting
| Error Message | Possible Cause | Solution |
|---|---|---|
ModuleNotFoundError: No module named 'geminiai_cli' |
Installation issue. | Run pip install -e . or ensure you are in the correct venv. |
gpg: decryption failed: No secret key |
Missing GPG key or wrong password. | Ensure GEMINI_BACKUP_PASSWORD is set or the GPG key is imported. |
ClientError: An error occurred (403) ... |
AWS/B2 Credentials invalid. | Check your GEMINI_* env vars or ~/.aws/credentials. |
Permission denied: '~/.gemini' |
File permission issues. | Run chown -R $USER ~/.gemini or check directory permissions. |
Debug Mode: Currently, you can increase verbosity by inspecting the logs or running with standard python tracebacks enabled (default).
🤝 Contributing
We welcome contributions! Whether it's reporting a bug, suggesting a feature, or writing code.
See CONTRIBUTING.md for detailed instructions.
- Setup Dev Environment:
pip install -e .[dev] - Run Tests:
pytest tests/ - Submit PR: Follow the guidelines in the contributing guide.
🗺️ Roadmap
- Phase 1 (Completed): Core Backup/Restore, Multi-Cloud (S3/B2), Sync, Auto-Updates.
- Phase 2 (Completed): Machine-Time Adaptation, Session Tracking, Smart Rotation.
- Phase 3 (Upcoming):
- 🔔 Webhooks: Slack/Discord notifications for backup status.
- 🐍 Python SDK: Import
geminiaias a library in your own scripts.
- Phase 4 (Vision): AI-driven anomaly detection and self-healing infrastructure.
See ROADMAP.md for the full detailed vision.
Metadata
Release files for geminiai-cli 17.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| geminiai_cli-17.0.0.tar.gz | 99.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| geminiai_cli-17.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 168.2 kB
Release files / geminiai_cli-17.0.0.tar.gz
| Download URL | geminiai_cli-17.0.0.tar.gz |
|---|---|
| Size | 99.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f46722554f8fc9602dc77a15b3822e1ed18844c620fe6b1ab93f481c981136fa
|
|
BLAKE2b-256 checksum How to use checksums |
5fcd24015c56ef62a1469c6b2a26a6038751ece16fc85ef096b0cc7dcda35161
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.
Transparency logRelease files / geminiai_cli-17.0.0-py3-none-any.whl
| Download URL | geminiai_cli-17.0.0-py3-none-any.whl |
|---|---|
| Size | 69.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
28ba09bc3e13569ecb3c1ac9086e04c40570a0b84b1b86ab622cad7456bbe4e7
|
|
BLAKE2b-256 checksum How to use checksums |
4ccf410a76859823cde9827b9078930c17d14907625011ba99e283090702bd39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.
Transparency log