Project Examer π
A fast, comprehensive system analysis tool for scanning directories and building intelligent relationships between files using AST parsing and LLM analysis.
Features
- π Fast File Discovery: Recursive directory scanning with configurable ignore patterns
- π³ AST Parsing: Support for multiple languages using Tree-sitter
- πΈοΈ Dependency Graph: Build comprehensive dependency relationships
- π€ LLM Analysis: AI-powered insights using OpenAI, Anthropic, or local Ollama
- π Rich Reporting: Generate HTML, JSON, and Markdown reports
- β‘ Parallel Processing: Efficient multi-threaded file processing
- π§ Configurable: Fully customizable via TOML configuration
Supported Languages
- TypeScript/JavaScript (with JSX/TSX)
- Python
- Rust
- Java
- Go
- C/C++
- And more...
Installation
From Source
Global Installation
# Install from crates.io
After global installation, the tool is available as project-examer from anywhere.
Quick Start
Analyze a project
# Analyze current directory
# Analyze specific directory
# Skip LLM analysis for faster local-only results
# Use custom configuration
Generate configuration file
# Generate config at default location (~/.project-examer.toml)
# Generate config at custom location
Configuration
Project Examer looks for configuration in the following order:
- Custom path specified with
--config ~/.project-examer.toml(user's home directory)- Built-in defaults
Generate a configuration file with all options documented:
Environment Variables
API keys can be provided via environment variables:
OPENAI_API_KEY- for OpenAI GPT modelsANTHROPIC_API_KEY- for Claude models
Configuration File Structure
= "."
= ["node_modules", ".git", "target", "build", "dist"]
= ["rs", "js", "ts", "tsx", "jsx", "py", "java", "go"]
= 1048576 # 1MB
[]
= "OpenAI" # Options: "OpenAI", "Ollama", "Anthropic"
= "gpt-4"
= 4000
= 0.1
# api_key = "your-key" # Or use environment variables
[]
= true
= true
= true
= false
= 10
Output
Project Examer generates comprehensive analysis reports:
π Analysis Report (HTML/JSON/Markdown)
- Executive summary with complexity and maintainability scores
- File analysis with language breakdown
- Dependency graph metrics
- LLM-generated insights and recommendations
π Key Insights
- Architecture patterns detected
- Code quality assessment
- Security vulnerabilities (when enabled)
- Refactoring opportunities
- Documentation gaps
Examples
You'll find examples of what reports are produced in the ./example-output/ directory.
Analyze a React project
First Time Setup
# Create configuration file with all options documented
# Edit the configuration file
# Set your API key (or use environment variable)
Analyze with custom LLM settings
# Using Ollama locally
# Edit ollama-config.toml to set provider="Ollama", base_url="http://localhost:11434"
Local-only analysis (no API calls)
Architecture
- File Discovery: Uses
ignorecrate for efficient file traversal - AST Parsing: Tree-sitter for robust language parsing
- Dependency Graph: Petgraph for relationship modeling
- Parallel Processing: Rayon for multi-threaded file processing
- LLM Integration: Supports multiple providers with rate limiting
Development
# Build
# Run tests
# Run with debug output
RUST_LOG=debug
# Build release version
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
Use Cases
- Code Reviews: Understand codebase architecture before reviewing
- Documentation: Generate architectural documentation automatically
- Refactoring: Identify code smells and improvement opportunities
- Security Audits: Detect potential security vulnerabilities
- Onboarding: Help new team members understand project structure
Performance
- Processes ~1000 files per second (varies by file size and complexity)
- Memory efficient with streaming file processing
- Parallel parsing for optimal CPU utilization
- Configurable rate limiting for LLM API calls
License
MIT License - see LICENSE file for details.
Project Examer - Making codebase analysis fast, comprehensive, and intelligent. π