Skip to main content

Gemini AI CLI Tool for automation

Project description

Gemini AI Automation Tool

geminiai-cli logo

Build status PyPI version Python Code style: black Ruff License: MIT Maintenance

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

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 push and pull backups 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

  1. User Input: CLI args are parsed by args.py and routed by cli.py.
  2. Configuration: Settings are loaded from settings_cli.py (merging Env, CLI, and Config).
  3. Action:
    • Backup: Compresses ~/.gemini, encrypts (optional), and uploads via CloudFactory.
    • Restore: Fetches list from cloud/local, decrypts, and extracts to ~/.gemini.
    • Recommendation: Queries cooldown.py for account status and selects the LRU "Ready" account.
  4. 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.

  1. Setup Dev Environment: pip install -e .[dev]
  2. Run Tests: pytest tests/
  3. 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 geminiai as 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geminiai_cli-17.0.0.tar.gz (99.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geminiai_cli-17.0.0-py3-none-any.whl (69.3 kB view details)

Uploaded Python 3

File details

Details for the file geminiai_cli-17.0.0.tar.gz.

File metadata

  • Download URL: geminiai_cli-17.0.0.tar.gz
  • Upload date:
  • Size: 99.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geminiai_cli-17.0.0.tar.gz
Algorithm Hash digest
SHA256 f46722554f8fc9602dc77a15b3822e1ed18844c620fe6b1ab93f481c981136fa
MD5 a8957333ac46ac1cfa9d9bf07ae17f2a
BLAKE2b-256 5fcd24015c56ef62a1469c6b2a26a6038751ece16fc85ef096b0cc7dcda35161

See more details on using hashes here.

Provenance

The following attestation bundles were made for geminiai_cli-17.0.0.tar.gz:

Publisher: publish.yml on dhruv13x/geminiai-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file geminiai_cli-17.0.0-py3-none-any.whl.

File metadata

  • Download URL: geminiai_cli-17.0.0-py3-none-any.whl
  • Upload date:
  • Size: 69.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geminiai_cli-17.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28ba09bc3e13569ecb3c1ac9086e04c40570a0b84b1b86ab622cad7456bbe4e7
MD5 d2bee7e3475b43475bd671bef94ab340
BLAKE2b-256 4ccf410a76859823cde9827b9078930c17d14907625011ba99e283090702bd39

See more details on using hashes here.

Provenance

The following attestation bundles were made for geminiai_cli-17.0.0-py3-none-any.whl:

Publisher: publish.yml on dhruv13x/geminiai-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page