npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

git-repo-analyzer

v1.1.1

Published

CLI tool and TypeScript library to view the tech stack, health and other insights of any GitHub repository

Readme

Git Repo Analyzer

git-repo-analyzer Logo

A Chrome Extension, CLI, TypeScript library and online tool for analyzing Git repositories.

Discover the tech stack, activity patterns, bus factor, project structure and overall health of any GitHub repository. All analysis runs locally in the browser or via the CLI with no data sent to external servers.

Screenshots

| | | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Chrome Extension | Chrome Extension (Dark Theme) | | Report (Light) | Report (Dark) | | Web App | CLI Output | | Web App | Home (Light) |

Online Tool

Try it now at tayles.github.io/git-repo-analyzer

Chrome Extension

View details for any GitHub repo in a side panel.

Get it now on the Chrome Web Store

CLI

Find it on npm at git-repo-analyzer

Install with:

npm install -g git-repo-analyzer

Run with:

git-repo-analyzer 'facebook/docusaurus'

Export in structured JSON format:

git-repo-analyzer 'facebook/docusaurus' --json

See example JSON output here: facebook__docusaurus.report.json.

TypeScript API

The git-repo-analyzer package exports:

export async analyzeGitRepository(
  repoNameOrUrl,        // "owner/repo" or full GitHub URL
  {
    token?: string;     // Optional GitHub token for higher rate limits
    verbose?: boolean;  // Verbose console logging (default false)
    onProgress?: (update: ProgressUpdate) => void; // Callback for progress updates during analysis
  }
): Promise<AnalysisResult>;

Example usage:

import { analyzeGitRepository } from 'git-repo-analyzer';

const report = await analyzeGitRepository('facebook/docusaurus');

Project Structure

git-repo-analyzer/
├── apps/
│   ├── web/               # Web app (Vite + React + Tailwind)
│   ├── extension/         # Chrome Extension (Vite + CRXJS)
│   ├── cli/               # CLI + TypeScript library (bunup)
│   └── ladle/             # Component stories (ladle)
├── packages/
│   ├── ui/                # Shared React components (shadcn/ui style)
│   ├── core/              # analyzeGitRepository function
│   ├── store/             # State management + persistance (zustand)
│   ├── mocks/             # Mock data & test utilities
│   └── typescript-config/ # Shared tsconfig files
├── .oxfmtrc.json          # oxfmt configuration
├── .oxlintrc.json         # oxlint configuration
├── package.json           # root package.json
└── turbo.json             # turborepo configuration

Key Features

  • Tech Stack - Uncover the technologies, libraries and build tools used in the repository
  • Activity Heatmap - View commit activity by day of week and hour of day
  • Work Patterns - Is this built by a professional team working 9-5, or by hobbyists coding at night and on weekends?
  • Bus Factor - How much development is concentrated in a core set of maintainers vs distributed across many contributors?
  • Project Structure - See where the code lives and how the project is organized
  • Health Score - Evaluate the overall health of the repository based on maintenance, documentation, community engagement, code quality and security indicators

Notes

  • Runs locally - All analysis is performed client-side in the browser or via the CLI. No repository data is sent to external servers. The tool fetches data directly from the GitHub API.
  • GitHub only - Only public GitHub repositories are supported out of the box. Private repos require a Personal Access Token. GitLab, Bitbucket and other hosts are not supported.
  • API rate limits - GitHub rate limits are 60/hr unauthenticated, 5k/hr with token
  • Sampled data - To keep requests fast, the tool fetches a limited window of data: up to 300 commits, 100 pull requests and 100 contributors. Metrics are therefore representative rather than exhaustive for very large repositories.
  • Timezone detection - The activity heatmap and other visualizations use the location field listed on contributors' profile pages to infer their timezone. It uses the city-timezones package (hence why the bundle is nearly 2Mb!) to convert city names to timezones. This is an approximation and may not be accurate for all contributors.
  • Health score is heuristic - The overall score (out of 100) is computed from five weighted categories (Maintenance, Documentation, Community, Code Quality, Security) using simple heuristics. It is a useful indicator, not a definitive quality measure.
  • No code analysis - The tool inspects metadata, file names and config files via the GitHub API. It does not clone the repository or perform static analysis on source code.

Tech Stack

  • Turborepo for monorepo orchestration with task caching
  • Bun as package manager and test runner
  • Tailwind CSS v4 with @tailwindcss/vite plugin (CSS-first config)
  • shadcn/ui base components
  • Zustand with persist middleware for state management
  • CRXJS for Chrome extension with hot reload support
  • Bunup for building the CLI/library package
  • Ladle for component documentation/stories
  • oxfmt and oxlint for formatting and linting

Contributing

  • bun install - Install dependencies
  • bun dev - Start all dev servers
  • bun run build - Build all packages
  • bun run test - Run tests with bun test
  • bun fix - Format, lint and type check all files (and autofix where possible)
  • bun lint:fix - Lint with oxlint
  • bun fmt:fix - Format with oxfmt