VaahAI is a multi-agent AI CLI tool built with Microsoft's Autogen Framework, designed to enhance code quality and development workflows through AI-powered code review, auditing, generation, and scaffolding capabilities.
- Multi-Agent Architecture: Specialized AI agents collaborate to perform complex tasks
- Code Review: Comprehensive code review focusing on quality, style, security, and performance
- Interactive Code Improvements: Apply suggested code changes with interactive UI and safety features
- Multiple Output Formats: Rich terminal output, markdown reports, HTML reports, and interactive mode
- Code Audit: Security vulnerability detection, compliance checking, and architectural assessment
- Code Generation: AI-powered code generation from natural language descriptions
- Multiple LLM Support: OpenAI, Claude, Junie, and local models via Ollama
- Intelligent Model Selection: Filter and recommend models based on capabilities (text, code, vision, etc.)
- Flexible Configuration: Layered configuration system with global defaults and project-specific settings
- Git Integration: Commit applied changes, generate meaningful commit messages, and prepare pull requests
- Python 3.10+
- Poetry (Python package manager)
- Git
- Docker (optional, for code execution)
# Install from PyPI
pip3 install vaahai
# Or clone the repository
git clone https://github.com/webreinvent/vaahai.git
cd vaahai
# Create a virtual environment in any of your favorite environment managers:
conda create -n vaahai310 python=3.10
conda activate vaahai310
# Install dependencies with Poetry
poetry install# Initialize configuration
vaahai config init
# Show current configuration
vaahai config show
# List available models
vaahai model list
# Run a simple test to verify installation
vaahai helloworld run# Install development dependencies
poetry install --with dev
# Install pre-commit hooks
pre-commit install
# Run tests
poetry run pytest
# Run tests with coverage
poetry run pytest --cov=vaahai
# Format code
poetry run black vaahai
poetry run isort vaahai
# Lint code
poetry run flake8 vaahai
poetry run mypy vaahai
# Run all pre-commit hooks manually
pre-commit run --all-filesFor more details on development tools, see Development Tools Documentation.
# Run the configuration wizard
poetry run vaahai config init
# Or manually edit the configuration file
nano ~/.vaahai/config.tomlVaahAI provides a modular CLI organized into logical command groups. The command structure follows this hierarchy:
vaahai [command_group] [command] [action] [options]
Where:
vaahaiis the main CLI applicationcommand_groupis one of the logical groups (core, project, dev)commandis a specific command within that groupactionis a subcommand or action for that commandoptionsare additional flags and parameters
VaahAI features a Rich-formatted custom help system that provides visually appealing and well-organized help information:
- Styled headers and descriptions with visual separation
- Organized tables for commands, options, and environment variables
- Consistent formatting across all commands and subcommands
- Detailed descriptions and usage examples
- Color-coded elements for improved readability
To access the enhanced help for any command:
# Main CLI help
vaahai --help
# Command group help
vaahai [command_group] --help
# Specific command help
vaahai [command_group] [command] --help
# Command action help
vaahai [command_group] [command] [action] --help--version,-v: Display the current version of VaahAI and exit--verbose,-V: Enable verbose output with detailed logs and information--quiet,-q: Suppress non-essential output--config: Specify an alternative configuration file path--help,-h: Show help message and exit
vaahai config: Configuration managementvaahai config init: Set up initial configurationvaahai config show: Display current configuration
vaahai version: Display version information
vaahai review: Code review commandsvaahai review [PATH]: Run a code review on specified pathvaahai review --format [rich|markdown|html|interactive]: Select output formatvaahai review --apply-changes: Enable code change acceptance in interactive modevaahai review --category [security|performance|style|quality]: Filter by categoryvaahai review --severity [critical|high|medium|low]: Filter by severityvaahai review --dry-run: Preview changes without modifying filesvaahai review --backup-dir [PATH]: Specify directory for file backups
vaahai audit: Security and compliance audit commandsvaahai audit run: Run a security/compliance audit on specified path
vaahai dev helloworld: Test command to verify proper functioningvaahai dev helloworld run: Execute the hello world testvaahai dev helloworld --help: Show help for the hello world command- Shows detailed debug information including provider, prompt template, and rendered prompt
vaahai helloworld: Simplified version of the hello world command- Features location-based personalization with culturally relevant greetings
- Detects user's location/timezone automatically
- Use
--devflag to see detailed information
vaahai dev showcase: Demonstrate Rich formatting capabilitiesvaahai dev prompts: Demonstrate InquirerPy prompt capabilities
All commands support the --help flag for detailed usage information. For backward compatibility, direct command access (e.g., vaahai helloworld instead of vaahai dev helloworld) is also supported.
VaahAI CLI uses InquirerPy to provide interactive command-line prompts with rich styling. The prompt utilities include:
- Text input with validation
- Password input with masking
- Confirmation prompts (yes/no)
- Selection from a list of options
- Multi-selection from a list of options
- Fuzzy search selection
- Number input with range validation
- Path selection with auto-completion
All prompts support non-interactive mode with default values or appropriate error handling.
# Show help information
vaahai --help
# Show help for a specific command group
vaahai dev --help
# Show help for a specific command
vaahai dev helloworld --help
# Test installation and configuration
vaahai dev helloworld run
# Or using backward compatibility
vaahai helloworld run
# Review code in a file or directory
vaahai review ./my_project --category security --severity high
# Or with interactive code change acceptance
vaahai review ./my_project --format interactive --apply-changes
# Audit a project for security and compliance
vaahai audit run --path ./my_project --security --compliance owasp
# Show version information
vaahai version
# Apply suggested changes
vaahai apply --file review_suggestions.json
# Commit the changes
vaahai commit --message "Fix code quality issues in app.py"# Initialize configuration
vaahai config init
# Review a Python file with interactive code changes
vaahai review ./app.py --format interactive --apply-changes
# Or generate an HTML report
vaahai review ./app.py --format html
# Apply suggested changes
vaahai apply --file review_suggestions.json
# Commit the changes
vaahai commit --message "Fix code quality issues in app.py"VaahAI CLI uses Rich for consistent, styled terminal output. Output behavior can be controlled with:
- Verbose mode: Set
--verboseflag orVAAHAI_VERBOSE=1environment variable - Quiet mode: Set
--quietflag orVAAHAI_QUIET=1environment variable
For more details on the Rich integration, see the Rich Integration Documentation.
VaahAI includes a comprehensive test suite organized into unit tests and integration tests:
vaahai/test/
โโโ unit/ # Tests for individual components
โ โโโ test_cli_utils.py # Tests for console output utilities
โ โโโ test_help_utils.py # Tests for help formatting utilities
โ โโโ test_version.py # Tests for version command
โโโ integration/ # Tests for component interactions
โโโ test_config_integration.py # Tests for config command
Run the test suite:
# Run all tests
poetry run pytest
# Run tests with coverage report
poetry run pytest --cov=vaahai
# Run specific test file
poetry run pytest vaahai/test/unit/test_cli_utils.py
# Run tests matching a pattern
poetry run pytest -k "config"For more details on testing, see Testing Guide and Test Implementation.
vaahai/
โโโ ai_docs/ # AI-specific documentation
โโโ ai_prompts/ # Prompt templates for AI agents
โโโ docs/ # User and developer documentation
โ โโโ cli/ # CLI-specific documentation
โโโ specs/ # Project specifications and requirements
โโโ vaahai/ # Main package
โ โโโ agents/ # Agent implementations
โ โโโ cli/ # CLI commands and handlers
โ โ โโโ commands/ # Command implementations
โ โ โ โโโ core/ # Core command group
โ โ โ โ โโโ config/ # Configuration commands
โ โ โ โ โโโ version/ # Version commands
โ โ โ โโโ project/ # Project command group
โ โ โ โ โโโ audit/ # Audit commands
โ โ โ โ โโโ review/ # Code review commands
โ โ โ โโโ dev/ # Development command group
โ โ โ โ โโโ helloworld/ # Hello world test command
โ โ โ โ โโโ showcase/ # Rich formatting showcase
โ โ โ โโโ helloworld/ # Legacy direct command (for backward compatibility)
โ โ โโโ main.py # CLI entry point
โ โ โโโ utils/ # CLI utilities
โ โ โโโ console.py # Rich formatting utilities
โ โ โโโ help.py # Custom help formatting
โ โโโ config/ # Configuration management
โ โโโ llm/ # LLM provider integrations
โ โโโ utils/ # Utility functions and helpers
โโโ tests/ # Test suite
โโโ cli/ # CLI tests
For more detailed documentation, please refer to:
- Project Plan
- Features Specification
- Technical Architecture
- User Guide
- API Reference
- CLI Documentation
- Review System Documentation
We welcome contributions from the community! Please see our Contributing Guidelines for more details on how to get involved.
This project is licensed under the MIT License - see the LICENSE file for details.
- Microsoft Autogen Framework
- Typer
- InquirerPy
- All our contributors and supporters