RepoScope is a local, offline Git repository analyzer and visualizer for developers.
Analyze any Git repository on your machine and get rich insights through interactive charts, detailed metrics, and comprehensive reports.
- π Analyze Git Repositories - Deep analysis of commit history, authors, and file changes
- π Interactive Visualizations - Beautiful charts showing commits over time, contributor activity, and directory hotspots
- π Comprehensive Metrics - Total commits, unique authors, date ranges, and more
- π» CLI Tool - Simple command-line interface for quick analysis
- π Web Dashboard - Modern Vue.js dashboard for interactive exploration
- π Static Reports - Generate standalone HTML reports for offline viewing
- π 100% Local - No cloud services, no data sent anywhere
- π Fast & Efficient - Powered by LibGit2Sharp for high-performance Git operations
- .NET 8 SDK
- Node.js 18+ (for frontend development)
# Clone the repository
git clone <your-repo-url>
cd RepoScope
# Build the CLI
cd backend
dotnet build# Analyze current directory
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- summary .
# Analyze specific repository
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- summary /path/to/repo
# Analyze specific branch
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- summary . --branch main
# Analyze last 30 days
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- summary . --since 2025-01-01# Generate full HTML report
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- report . --out ./report
# Open the report
open ./report/index.html # macOS
xdg-open ./report/index.html # Linux
start ./report/index.html # Windows# Output to stdout
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- analyze .
# Save to file
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- analyze . --out metrics.jsonAnalyze a repository and output metrics as JSON.
reposcope analyze <path> [options]Options:
--branch <name>- Branch to analyze (default: HEAD)--since <date>- Only include commits after this date (ISO 8601 format)--until <date>- Only include commits before this date (ISO 8601 format)--max-commits <n>- Maximum number of commits to analyze--out <file>- Output file path (default: stdout)
Analyze a repository and print a human-readable summary.
reposcope summary <path> [options]Options: Same as analyze
Generate a full HTML report with interactive charts.
reposcope report <path> [options]Options:
- Same as
analyze, plus: --out <dir>- Output directory for report (default: ./report)
RepoScope/
βββ backend/ # .NET backend
β βββ src/
β β βββ RepoScope.Core/ # Core analysis library
β β β βββ Models/ # Data models
β β β βββ Services/ # Analyzer service
β β βββ RepoScope.Cli/ # CLI application
β β βββ Commands/ # Command implementations
β β βββ Formatters/ # Output formatters
β βββ tests/
β β βββ RepoScope.Core.Tests/ # Unit tests
β βββ RepoScope.sln
β
βββ frontend/ # Vue.js frontend
β βββ reposcope-web/ # Web dashboard
β βββ src/
β β βββ components/ # Vue components
β β βββ views/ # Page views
β β βββ store/ # State management
β β βββ types/ # TypeScript types
β βββ package.json
β
βββ templates/ # Report templates
βββ report-template/ # Static HTML template
βββ index.html
βββ assets/
βββ css/
βββ js/
The heart of RepoScope is the RepoAnalyzer service, which:
- Opens a Git repository using LibGit2Sharp
- Enumerates commits based on filters (branch, date range, max count)
- Extracts file changes and line statistics
- Aggregates metrics into structured data
Key Models:
RepoMetrics- Complete analysis resultsCommitInfo- Individual commit dataCommitsByDay/Author/Directory- Aggregated views
Built with System.CommandLine, the CLI provides:
- Command-line argument parsing
- Multiple output formats (JSON, summary, HTML)
- Error handling and validation
Modern Vue 3 + TypeScript SPA featuring:
- Chart.js for interactive visualizations
- Reactive state management
- Responsive design
- Loads metrics.json for standalone deployment
- Total commits
- Unique authors
- Date range (earliest/latest commits)
- Active days count
- Daily commit counts
- Time series visualization
- Per-author commit counts
- Contribution percentages
- Email addresses
- Top-level directory activity
- Hotspot identification
- Files with the most commits
- Lines added/deleted per file
- Total code churn per file
- Identify high-volatility files
- Lines added/deleted by day
- Net change tracking
- Visualize development activity patterns
- Identify periods of high activity
cd backend
# Restore dependencies
dotnet restore
# Build
dotnet build
# Run tests
dotnet test
# Run CLI
dotnet run --project src/RepoScope.Cli/RepoScope.Cli.csproj -- summary .cd frontend/reposcope-web
# Install dependencies
npm install
# Start dev server
npm run dev
# Build for production
npm run buildcd backend
dotnet test- Understand your contribution patterns
- Identify areas of the codebase you work on most
- Track activity over time
- See who contributes what and where
- Identify knowledge concentration risks
- Understand project evolution
- Track team velocity and activity
- Generate reports for stakeholders
- Identify bottlenecks and hotspots
- Core repository analysis
- CLI with analyze/summary/report commands
- Static HTML reports with charts
- Vue.js dashboard
- Basic unit tests
- Improved HTML report template integration
- File-level hotspot analysis
- Code churn metrics (lines added/removed over time)
- Calendar heatmap visualization
- Configurable analysis options
- Performance optimizations for large repositories
- ASP.NET Core API for dashboard
- Real-time analysis mode
- Multiple repository comparison
- Bus factor analysis
- Integration with GitHub/GitLab APIs
- DevFoundry tool integration
- Taskdeck integration
Backend:
- .NET 8 (C#)
- LibGit2Sharp - Git operations
- System.CommandLine - CLI framework
- xUnit - Testing
Frontend:
- Vue 3 - UI framework
- TypeScript - Type safety
- Vite - Build tool
- Chart.js - Visualizations
- Large Repositories: Use
--max-commitsto limit analysis scope - Date Filtering: Use
--sinceand--untilfor specific time windows - Branch Selection: Analyze specific branches to reduce scope
RepoScope is 100% local and offline:
- No data is sent to any external service
- All analysis happens on your machine
- Generated reports are static files you control
Contributions are welcome! This is a personal project but feedback and improvements are appreciated.
- Install .NET 8 SDK
- Install Node.js 18+
- Clone the repository
- Build and run tests
- C#: Follow standard .NET conventions
- TypeScript/Vue: ESLint/Prettier configurations
- Commit messages: Conventional Commits format
MIT License - See LICENSE file for details
- Built with LibGit2Sharp
- Charts powered by Chart.js
- UI framework: Vue.js
RepoScope - Understand your code, visualize your history