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.

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

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

    ai-cli
    

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.1.tar.gz (35.9 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.1-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_cli_llm-2.0.1.tar.gz
  • Upload date:
  • Size: 35.9 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.1.tar.gz
Algorithm Hash digest
SHA256 2c540f88ad59dff72deb2c55c045a5520723365480985e798d2a0cfe941d5939
MD5 078c99a79c874b18aac94f160bf455ff
BLAKE2b-256 e82de7609e85612f7f7e23b3ccb24d4c8bc6001a19d5cf7f789381402ef757ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_cli_llm-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 36.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 daabbc4688458eb7e80dae3765bd0d92eb384c25acbdaccc8e8a99bfc2f7c294
MD5 982d19edbe9b74ce33c6b05d066f5f65
BLAKE2b-256 6074c303d5753e37bb33b9dada344432848230c8fac6ee4c61814fb749e9f775

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