Skip to main content

AI-powered CLI assistant with Gemini LLM command generation and human confirmation

Project description

AI CLI Assistant (LLM Powered)

AI-powered command-line assistant that converts natural language into safe shell commands using Gemini LLM with human-in-the-loop confirmation.

๐Ÿš€ Quick Start

Install via pip

pip install ai-cli-llm==2.0.1

Set your API Key

Windows (PowerShell):

$env:GEMINI_API_KEY = "your_api_key_here"

Linux/macOS:

export GEMINI_API_KEY="your_api_key_here"

Get your free Gemini API key at ai.google.com

Run the CLI

python -m ai_cli.main

That's it! Start typing natural language commands like:

  • create folder named projects
  • show all files
  • delete test.txt

Features

โœจ Core Capabilities

  • ๐Ÿค– Natural Language Processing: Describe what you want to do in plain English
  • ๐Ÿง  LLM-Powered Command Generation: Uses Gemini API to generate accurate shell commands
  • ๐Ÿ”’ Safety First: Built-in risk assessment and execution approval workflow
  • ๐Ÿ”„ Undo/Rollback: Revert executed commands with automatic backup management
  • ๐Ÿ“‹ Multi-Step Planning: Execute complex workflows with automatic plan generation
  • ๐Ÿ’พ Context Memory: Maintains conversation context across sessions

๐Ÿ”ง Advanced Features

  • ๐ŸŽฏ Intent Recognition: NLP-based command categorization (file ops, system, dev, etc.)
  • ๐Ÿš€ Fallback Generator: Pattern-based command generation when API unavailable
  • ๐Ÿ“Š Execution Tracking: Full history of executed commands with timestamps
  • โš™๏ธ Smart Autocomplete: Context-aware command suggestions
  • ๐ŸŒ Multi-LLM Support: Works with Gemini API or local Ollama instances

Installation (From Source)

Prerequisites

  • Python 3.10+
  • Google Gemini API Key (free tier available at ai.google.com)
  • PowerShell (Windows) or Bash (Linux/macOS)

Setup

  1. Clone the repository

    git clone https://github.com/yourusername/ai-cli.git
    cd ai-cli
    
  2. Install the package

    pip install -e .
    
  3. Configure environment Create a .env file in the project root:

    GEMINI_API_KEY=your_api_key_here
    # Optional: for Ollama fallback
    OLLAMA_API_URL=http://localhost:11434
    

    Get your free Gemini API key:

  4. Verify installation

    python -m ai_cli.main
    

Usage

Interactive Mode

ai-cli

Then describe what you want to do:

> Clean up all .pyc files in the project
Generated command: find . -name "*.pyc" -type f -delete
Safe to execute? (y/n): y
โœ“ Command executed successfully

Supported Commands

File Operations

> Create a backup of my config file
> Delete all temporary files
> Find files larger than 100MB
> Rename all .txt files to .bak

System Management

> Show disk usage
> Kill process on port 8080
> Restart the Docker service

Development

> Install dependencies from requirements.txt
> Build and test the project
> Format all Python files

Command Flow

  1. Input โ†’ Natural language description
  2. Parse โ†’ Intent recognition and command mapping
  3. Generate โ†’ LLM creates the actual command
  4. Review โ†’ Risk assessment with execution approval
  5. Execute โ†’ Command runs with output capture
  6. Track โ†’ Stores for undo/history

Safety Features

Risk Assessment

Commands are automatically classified by risk level:

  • ๐ŸŸข LOW: Read operations, non-destructive
  • ๐ŸŸก MEDIUM: File modifications, package installations
  • ๐Ÿ”ด HIGH: System changes, destructive operations

Approval Workflow

Generated command: rm -rf /important/directory
โš ๏ธ  HIGH RISK: Destructive file operation
Estimated impact: Permanent deletion
Safe to execute? (y/n): n
โŒ Command blocked by user

Undo Capability

> undo
Recent commands:
1. mv file.txt file.bak โœ“
2. rm oldfile.py โœ“
Undo which? (1): 1
โœ“ Command reverted: file.bak โ†’ file.txt

Project Structure

ai-cli/
โ”œโ”€โ”€ ai_cli/
โ”‚   โ”œโ”€โ”€ main.py                 # Entry point and CLI loop
โ”‚   โ”œโ”€โ”€ llm_generator.py        # Gemini API integration & fallback
โ”‚   โ”œโ”€โ”€ executor.py             # Command execution engine
โ”‚   โ”œโ”€โ”€ safety.py               # Risk assessment module
โ”‚   โ”œโ”€โ”€ planner.py              # Multi-step plan execution
โ”‚   โ”œโ”€โ”€ undo_manager.py         # Undo/rollback functionality
โ”‚   โ”œโ”€โ”€ context_manager.py      # Context and history tracking
โ”‚   โ”œโ”€โ”€ intent_parser.py        # NLP intent recognition
โ”‚   โ”œโ”€โ”€ command_mapper.py       # Intent โ†’ command mapping
โ”‚   โ””โ”€โ”€ autocomplete.py         # Tab completion support
โ”œโ”€โ”€ setup.py                    # Package configuration
โ”œโ”€โ”€ .env                        # API keys (not in git)
โ”œโ”€โ”€ .gitignore                  # Git ignore patterns
โ””โ”€โ”€ README.md                   # This file

Configuration

Environment Variables

# Required
GEMINI_API_KEY=sk_...

# Optional
OLLAMA_API_URL=http://localhost:11434
OLLAMA_MODEL=mistral
SAFETY_LEVEL=medium  # low, medium, high
HISTORY_SIZE=100
DEBUG=false

Architecture

Command Generation Flow

User Input
    โ†“
Intent Parser (NLP)
    โ†“
Intent โ†’ Command Mapper
    โ†“
LLM Generator (Gemini API)
    โ†“
Fallback Generator (if needed)
    โ†“
Safety Assessment
    โ†“
User Approval
    โ†“
Executor

Undo System

  • Maintains command history with metadata
  • Tracks file state changes
  • Generates reverse commands automatically
  • Supports multi-command rollback

API Keys & Security

Getting a Gemini API Key

  1. Go to Google AI Studio
  2. Click "Create API Key"
  3. Copy the key to your .env file
  4. Never commit .env to git (already in .gitignore)

Free Tier Limits

  • 100 requests per minute (sufficient for interactive use)
  • 15 requests per day for batch operations
  • Upgrade to paid plan for higher limits

Troubleshooting

"API Key not found"

# Check .env exists and has GEMINI_API_KEY
cat .env

"No module named 'spacy'"

# Install NLP dependencies
pip install spacy
python -m spacy download en_core_web_sm

Commands taking too long

  • Check API rate limits
  • Switch to Ollama for instant generation (local)
  • Use fallback generator for common commands

Undo not working

  • Check undo history: ai-cli --history
  • Ensure backup files exist in .ai-cli-backups/

Advanced Usage

Batch Mode

echo "Find all .log files" | ai-cli --batch

Dry Run (preview only)

ai-cli --dry-run
> Clean up temp files
[DRY RUN] rm -rf /tmp/*.log
No commands executed

View History

ai-cli --history

Clear History

ai-cli --clear-history

Contributing

Contributions welcome! Areas for improvement:

  • Cross-platform command support (Windows/Linux/macOS)
  • More fallback patterns for common operations
  • Integration with other LLMs (Claude, GPT-4)
  • Web UI dashboard
  • Docker container support

Limitations & Known Issues

โš ๏ธ Important Notes

  • Commands are OS-specific (PowerShell on Windows, Bash on Linux/macOS)
  • Some complex multi-step operations may require manual execution
  • API rate limits apply during batch operations
  • Undo only works for tracked file operations

Dependencies

google-generativeai>=0.3.0   # Gemini API
requests>=2.28.0             # Ollama API
python-dotenv>=0.19.0        # .env support
spacy>=3.0.0                 # NLP (optional)

License

MIT License - Feel free to use, modify, and distribute.

Support

  • ๐Ÿ“ง Issues: GitHub Issues
  • ๐Ÿ’ฌ Discussions: GitHub Discussions
  • ๐Ÿ“š Documentation: See ADVANCED_FEATURES.md

Roadmap

  • Basic command generation
  • Safety checks
  • Undo functionality
  • Web interface
  • Database backend for history
  • Custom command templates
  • Multi-user support
  • Cloud sync

Made with โค๏ธ for command-line enthusiasts

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

ai_cli_llm-2.0.2.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

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

ai_cli_llm-2.0.2-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file ai_cli_llm-2.0.2.tar.gz.

File metadata

  • Download URL: ai_cli_llm-2.0.2.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for ai_cli_llm-2.0.2.tar.gz
Algorithm Hash digest
SHA256 d7af752568a7ddd00730315a8535b4ea33cf1e1d06b6eac30266da9df7c75d9d
MD5 92528ca8f88d9cd9eecd0274ea0bacd4
BLAKE2b-256 3a7a7b3da25f5c337872d5bb1971eb50f841edbfa30e94fee9a1980bb745d24c

See more details on using hashes here.

File details

Details for the file ai_cli_llm-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: ai_cli_llm-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for ai_cli_llm-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4633816cfeb6e27d5e52374801b95d271ffdd60d181cd453e6715383a375834e
MD5 a4d9148c6f49befd299bf58601b91a1a
BLAKE2b-256 591beba683634db481b65cd8e080f24ad75d5751d3c3d8ea1175a738e7d73d46

See more details on using hashes here.

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