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

Fallback Mode (Offline)

You can switch to offline fallback mode at any time by typing:

/mode fallback

This disables LLM and uses pattern-based command generation locally (no API required).

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

  • create folder named projects
  • show all files
  • delete test.txt
  • /mode fallback (to switch to offline mode)

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

You can switch between LLM and fallback modes at any time:

> /mode fallback   # Switch to offline mode
> /mode llm        # Switch back to Gemini LLM

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

Command History

AI CLI now tracks all commands executed in its own internal history file (ai_cli_history.txt).

  • To view your AI CLI command history, type:

    show ai-cli history
    
  • This will display a numbered list of all commands run via the AI CLI (not PowerShell session history).

  • The history file is stored in the project root and is persistent across sessions.

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.3.tar.gz (38.4 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.3-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_cli_llm-2.0.3.tar.gz
  • Upload date:
  • Size: 38.4 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.3.tar.gz
Algorithm Hash digest
SHA256 85633193a9bd8185bc61ccdab64b90d31c89a3a8d7cb310043accebc0d329961
MD5 40dd90b8ed0938a2025e9eb9a8c69a8c
BLAKE2b-256 a50a8c411b85df439d38fa44961615749596b6301544edfb01a974c2a2357b66

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_cli_llm-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 38.8 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9937a875535dfef13c662c79e4f727f62318203df388b1f2e8f31768cbf7c68f
MD5 c6c0a9c18ce3efc833851dc9f97d9328
BLAKE2b-256 bbf1960d3c9cd8f08e7a0c670dfc5f310695ce2153f692d189a615af969d370a

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