Skip to content

Repo-lyzer is a developer-focused CLI tool built in Go language that analyzes and compares GitHub repositories to help understand code structure, quality, and changes efficiently. It provides insights like file tree analysis, repository comparison, and actionable metrics, making it easier for developers and recruiters to evaluate projects quickly.

License

Notifications You must be signed in to change notification settings

agnivo988/Repo-lyzer

Maintainers

  • @agnivo988

Contributors

Aamod007 Aditya8369 agnivo988 Gupta-02 GauravKarakoti Sappymukherjee214 ItsMeArm00n MuktaRedij Kiran95021 Shriii19 KUMARI-SONALIUPADHYAY magic-peach coderabbitai[bot] sahoo-tech Abhijeet-980 Diksha78-bot Shivani-Meena07 ShashankSaga

Repo-lyzer

Repo-lyzer Logo

Repo-lyzer is a modern, terminal-based CLI tool written in Golang that analyzes GitHub repositories and presents insights in a beautifully formatted, interactive dashboard.
It is designed for developers, recruiters, and open-source enthusiasts to quickly evaluate a repository’s health, activity, and contributor statistics.


Who is Repo-lyzer for?

  • Developers evaluating open-source projects
  • Recruiters assessing repository health and activity
  • Contributors exploring project structure and engagement

Features

  • Repository Overview – Stars, forks, open issues, general info
  • Language Breakdown – Percentage of languages used with colored bars
  • Commit Activity – Horizontal graph showing commit frequency over the past year
  • Health Score – Activity & contributor-based scoring
  • Bus Factor – Measures critical contributors to assess project risk
  • Repo Maturity Score – Evaluates age, activity, and structure
  • Recruiter Summary – Quick snapshot for hiring evaluation
  • Quick Summary – Fast 5-line overview with key metrics (commits 30d, top language, contributors, health, last commit)
  • File Tree Viewer – Browse repository structure in-dashboard
  • Export Options – Export analysis as JSON, Markdown, CSV, or HTML
  • Compare Mode – Side-by-side repository comparison
  • Interactive CLI Menu – Fully navigable TUI (keyboard driven)
  • Colorized Output – Neon-style colors and ASCII styling
  • Settings Persistence – Theme, export preferences, and GitHub token saved locally

Tech Stack & Libraries

  • Golang – Core language
  • Cobra – CLI command management
  • Bubble Tea – Interactive TUI
  • Bubbles – UI components
  • Lipgloss – Styling & layout
  • Tablewriter – Terminal tables
  • x/term – Terminal size detection
  • GitHub REST API – Repository, commits, issues, contributors

Project Overview

Repo-lyzer follows a modular architecture for scalability and maintainability.

repo-analyzer/
│
├── cmd/
│   ├── root.go
│   ├── analyze.go
│   └── compare.go
│
├── internal/
│   ├── github/       # GitHub API client
│   ├── analyzer/     # Metric computations
│   ├── cache/        # Offline caching
│   ├── config/       # Settings persistence
│   └── ui/           # TUI components
│
├── docs/
│   ├── DOCUMENTATION_INDEX.md
│   ├── QUICK_REFERENCE.md
│   ├── IMPLEMENTATION_DETAILS.md
│   ├── ANALYZER_INTEGRATION.md
│   └── CHANGE_LOG.md
│
├── main.go
├── go.mod
└── README.md

Workflow

  1. User launches repo-lyzer
  2. Interactive menu → Analyze or Compare
  3. GitHub API fetch (repos, commits, contributors, languages)
  4. Metrics computed (health, bus factor, maturity)
  5. Displayed in centered, styled terminal dashboard

Architecture Overview

┌────────────────────────────────────────────┐
│               main.go                      │
└────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────┐
│                 cmd/                       │
└────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────┐
│             internal/ui/                   │
└────────────────────────────────────────────┘
          │           │           │
          ▼           ▼           ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│   github     │ │   analyzer   │ │   output     │
└──────────────┘ └──────────────┘ └──────────────┘

Key Directories

Directory Purpose
cmd/ CLI commands
internal/github/ GitHub API client
internal/analyzer/ Metric computations
internal/cache/ Offline caching
internal/config/ Settings persistence
internal/ui/ TUI components
internal/output/ Formatting & rendering
docs/ Documentation

Documentation

For Contributors

Reference


Challenges Faced

  • Centering multi-section layouts in terminal
  • Handling high-activity repositories
  • GitHub API rate limits
  • Horizontal commit graphs
  • Unified responsive dashboard

Installation (From Source)

git clone https://github.com/agnivo988/Repo-lyzer.git
cd Repo-lyzer
go mod tidy
go run main.go

Usage

Quick Summary (Fast Overview)

Get a quick 5-line summary of any repository:

repo-lyzer summary golang/go

Or use the flag with analyze:

repo-lyzer analyze --summary microsoft/vscode

Example Output:

📊 Repository Summary: golang/go
   Commits (30d): 30
   Top Language: Go
   Contributors: 381
   Health Score: 90/100
   Last Commit: 4 hours ago

Analyze Repository

repo-lyzer analyze golang/go

Compare Repositories

Available via interactive menu.

Export Results

Export to JSON or Markdown from dashboard.

Interactive CLI Menu

Repo-lyzer features a hierarchical, keyboard-driven menu system for easy navigation and access to all features.

Main Menu Options

  • 📊 Analyze Repository – Enter analysis submenu to choose analysis type
  • 🔄 Compare Repositories – Start side-by-side repository comparison
  • 📜 View History – Browse previously analyzed repositories
  • ⚙️ Settings – Access settings submenu for configuration
  • ❓ Help – Open help submenu for guidance
  • 🚪 Exit – Quit the application

Submenus

Analysis Types (accessed via 📊 Analyze Repository):

  • ⚡ Quick Analysis – Fast overview with key metrics
  • 🔍 Detailed Analysis – Comprehensive analysis with all metrics
  • ⚙️ Custom Analysis – User-configurable analysis options

Settings (accessed via ⚙️ Settings):

  • Theme Settings – Customize UI themes and colors
  • Export Options – Configure default export formats
  • GitHub Token – Set personal access token for higher rate limits
  • Reset to Defaults – Restore all settings to default values

Help (accessed via ❓ Help):

  • Keyboard Shortcuts – View all available shortcuts
  • Getting Started – Quick start guide
  • Features Guide – Detailed feature explanations
  • Troubleshooting – Common issues and solutions

Navigation

  • Arrow Keys (↑/↓) – Navigate menu options
  • Enter – Select option or enter submenu
  • ESC – Return to previous menu level
  • Tab – Quick navigation between sections


Installation (For Users)

go install github.com/agnivo988/Repo-lyzer@v1.0.5
repo-lyzer

License

MIT License © 2026 Agniva Mukherjee yaml Copy code

About

Repo-lyzer is a developer-focused CLI tool built in Go language that analyzes and compares GitHub repositories to help understand code structure, quality, and changes efficiently. It provides insights like file tree analysis, repository comparison, and actionable metrics, making it easier for developers and recruiters to evaluate projects quickly.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 20

Languages