Skip to content

agnivo988/Repo-lyzer

Repository files navigation

Repo-lyzer

Repo-lyzer Logo

Release License Issues CI

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.


Table of Contents


Features

  • Deep Analytics – Repository health, maturity scores, and bus factor.
  • Contribution Friendliness – Assess how easy it is to contribute to a repository using weighted metrics (--contribute flag).
  • Interactive TUI – Fully navigable keyboard-driven menu system.
  • Visual Data – Language breakdown bars and horizontal commit graphs.
  • File Explorer – Browse repository structures directly in the dashboard.
  • Multi-Format Export – Save reports as JSON, Markdown, CSV, or HTML.

Quick Start

Prerequisites

Installation

go install github.com/agnivo988/Repo-lyzer@latest

Verify the installation:

repo-lyzer version

Basic Usage

# Get a 5-line quick summary
repo-lyzer summary golang/go

# Run full interactive analysis
repo-lyzer analyze microsoft/vscode

# Run analysis with contribution scoring enabled
repo-lyzer analyze microsoft/vscode --contribute

Docker Usage

You can run repo-lyzer using Docker without installing Go. The Docker image uses a non-root user and is optimized for production.

# Build the image
docker build -t repo-lyzer .

# Run the CLI interactively
docker run -it --rm repo-lyzer

Docker Compose (Daemon Mode)

For continuous monitoring and scheduling, you can run the daemon mode using docker-compose:

# Start the daemon
docker compose up -d

# View logs
docker compose logs -f

Environment Variables

You can configure repo-lyzer using environment variables. These will override file-based settings:

  • REPO_LYZER_GITHUB_TOKEN: Your GitHub Personal Access Token
  • REPO_LYZER_INTERVAL: Scheduler polling interval (e.g., 30s, 5m, 1h)
  • REPO_LYZER_LOG_LEVEL: Logging level (debug, info, warn, error)
  • REPO_LYZER_CONFIG_PATH: Override the config file path (defaults to /app/data/settings.json in the container)

The docker-compose.yml mounts a local ./data directory to persist settings and reports.


Architecture Overview

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

Documentation

For Contributors

Reference


Contributing

We welcome contributions from the community! Here's how to get started:

  1. Fork the repository
  2. Clone your fork:
    git clone https://github.com/your-username/Repo-lyzer.git
  3. Create a feature branch:
    git checkout -b feat/your-feature-name
  4. Make your changes and ensure tests pass:
    go test ./...
  5. Commit with a clear message:
    git commit -m "feat: add your feature"
  6. Push and open a Pull Request

Development Setup

# Install dependencies
go mod download

# Run tests
go test ./...

# Build from source
go build -o repo-lyzer .

Code Style

  • Run go fmt ./... before committing
  • Follow standard Go conventions
  • Add tests for new functionality

Maintainers & Contributors

Project Maintainer

Contributors

Aamod007 Aditya8369 agnivo988 Gupta-02 GauravKarakoti Sappymukherjee214 ItsMeArm00n MuktaRedij Kiran95021 Shriii19 KUMARI-SONALIUPADHYAY magic-peach coderabbitai[bot]


License

MIT License © 2026 Agniva Mukherjee. See LICENSE for details.

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.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

72 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages