An AI-powered CLI tool that analyzes git commits and generates business-friendly summaries for non-technical stakeholders. Uses LLM APIs (OpenAI/Anthropic) to understand your development work and explain it in terms that matter to different audiences.
- AI-Powered Analysis: Uses GPT-4 or Claude to understand commit context and generate intelligent summaries
- Audience-Aware: Tailors explanations for product managers, executives, marketing, clients, etc.
- Interactive Context: Asks smart questions to gather business context
- Rich Git Analysis: Extracts commit messages, file changes, diffs, and repository context
- Multiple Formats: Outputs markdown, text, or JSON
- Vijil Integration: Full evaluation suite with multiple LLM providers and performance benchmarking
- Async Architecture: Fast, modern Python with async/await
-
Install dependencies:
pip install -r requirements.txt
-
Set up your API key (choose one or both):
export OPENAI_API_KEY="your-openai-api-key-here" export ANTHROPIC_API_KEY="your-anthropic-api-key-here" export VIJIL_API_KEY="your-vijil-api-key-here" # Optional for evaluation
-
Run analysis:
python main.py
# Interactive analysis for product managers (default)
python main.py
# Executive summary of last 10 commits
python main.py -n 10 --audience executive
# Save marketing summary without prompts
python main.py --audience marketing --no-interactive -o summary.md
# Get JSON output for integration
python main.py --format json --audience technical
# Use Claude instead of GPT
python main.py --llm-provider anthropic
# Use specific provider for evaluation
python main.py --evaluate --llm-provider openai
# Verify API configuration for all providers
python main.py --check-setup
# Check specific provider preference
python main.py --check-setup --llm-provider anthropic
pm
,product_manager
- Product managers (default)executive
,exec
- Executive teamengineering
,eng
- Engineering leadershipmarketing
- Marketing teamclient
,stakeholder
- Client stakeholderstechnical
,tech
- Technical team
This agent integrates with Vijil to evaluate and benchmark its performance on various tasks. Vijil tests the agent's ability to analyze git repositories and provide appropriate responses to different types of inputs.
-
Get your Vijil API key from the Vijil dashboard
-
Set up environment:
export VIJIL_API_KEY="your-vijil-api-key-here" export OPENAI_API_KEY="your-openai-key" # or ANTHROPIC_API_KEY
-
Test your API key:
python vijil_executor.py --test-api-key
-
Run evaluation:
# Basic evaluation with OpenAI python vijil_executor.py --simple-name --llm-provider openai # Evaluation with Anthropic python vijil_executor.py --simple-name --llm-provider anthropic # Custom evaluation name python vijil_executor.py --evaluation-name "my-test-v1" --simple-name
# Choose LLM provider for evaluation
python vijil_executor.py --llm-provider anthropic|openai
# Use simple agent naming (recommended)
python vijil_executor.py --simple-name
# Specify evaluation name
python vijil_executor.py --evaluation-name "my-evaluation"
# Use pre-created API key from dashboard
python vijil_executor.py --api-key-name "my-key-name"
# Select specific test harnesses
python vijil_executor.py --harnesses security reasoning
# Generate report from existing evaluation
python vijil_executor.py --generate-report EVALUATION_ID
When Vijil evaluates this agent:
- Vijil sends test prompts (e.g., "What's the capital of France?", "Explain quantum computing")
- Agent analyzes actual git commits from this repository instead of answering the prompt directly
- LLM receives both the git analysis data AND Vijil's test prompt as "additional context"
- Agent responds with git commit analysis, potentially influenced by the test prompt context
- Vijil evaluates how well the agent handled the mixed input scenario
This tests the agent's ability to stay focused on its core task (git analysis) while handling potentially irrelevant or out-of-scope user input.
API Key Issues:
# Test API key validity
python vijil_executor.py --test-api-key
# Use simple naming to avoid UUID validation errors
python vijil_executor.py --simple-name
LLM Provider Issues:
# Verify your LLM API keys work
python main.py --check-setup
# Try different provider
python vijil_executor.py --llm-provider anthropic # or openai
Common Errors:
'NoneType' object is not subscriptable
: Use--simple-name
flagAPI token validation failed
: Check yourVIJIL_API_KEY
environment variableEmpty response content
: LLM provider issue, try different provider or check API keys
This tool is designed as an AI agent that orchestrates between different data sources and AI APIs:
Git Repository → Git Analyzer → AI Agent → LLM API → Formatted Summary
↑ ↓
User Context ← Interactive Prompter
core/agent.py
- Main AI agent orchestratorcore/llm_client.py
- LLM API integrations (OpenAI, Anthropic)core/models.py
- Data models and typesgit_analyzer.py
- Rich git repository analysisinteractive_prompter.py
- Smart context gatheringvijil_executor.py
- Vijil integration for agent evaluation
# User Authentication System Implementation
**Target Audience:** Product Manager
**Generated:** AI Analysis (2.3s, 1,247 tokens)
## Executive Summary
Implemented a comprehensive user authentication system including login, registration,
and session management. This work establishes the foundation for user account
features and improves security posture significantly.
## Technical Overview
The implementation spans 8 commits across authentication middleware, user models,
API endpoints, and frontend components. Key technical decisions included JWT token
strategy, password hashing with bcrypt, and session management architecture.
## Business Impact
This work enables user personalization features, improves data security compliance,
and provides the foundation for premium user accounts. Users can now securely
create accounts and access personalized experiences.
## Key Changes
- Added JWT-based authentication middleware
- Created user registration and login API endpoints
- Implemented secure password hashing and validation
- Built frontend login/register forms with error handling
- Added session management and logout functionality
## Next Steps
- Implement password reset functionality
- Add OAuth integration for social logins
- Create user profile management features
- Set up email verification system
---
*Work Categories: Feature, Security*
ai-agent-vigil/
├── core/ # Core agent functionality
│ ├── agent.py # Main AI agent
│ ├── llm_client.py # LLM API clients
│ └── models.py # Data models
├── git_analyzer.py # Git repository analysis
├── interactive_prompter.py # User interaction
├── main.py # CLI interface
├── vijil_executor.py # Vijil evaluation integration
└── requirements.txt # Dependencies
- Create a new client class inheriting from
LLMClient
incore/llm_client.py
- Implement the
analyze_commits
method - Add detection logic in
get_available_llm_client()
- Add enum values to
AudienceType
incore/models.py
- Update prompt templates in
core/llm_client.py
- Add CLI mappings in
main.py
OPENAI_API_KEY
- OpenAI API key for GPT modelsANTHROPIC_API_KEY
- Anthropic API key for Claude modelsVIJIL_API_KEY
- Vijil API key for agent evaluation and benchmarkingNGROK_AUTHTOKEN
ngrok auth token to create a tunnel to the local agent