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
Maintainers
Readme
Git Repo Analyzer

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.
- 🌐 Online Tool (Try it now!)
- 🧩 Chrome Extension
- 💻 CLI Tool
- 🧑💻 TypeScript Library
Screenshots
| | |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Chrome Extension | Chrome Extension (Dark Theme) |
|
|
|
| Web App | CLI Output |
|
|
|
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-analyzerRun with:
git-repo-analyzer 'facebook/docusaurus'Export in structured JSON format:
git-repo-analyzer 'facebook/docusaurus' --jsonSee 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 configurationKey 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/viteplugin (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 dependenciesbun dev- Start all dev serversbun run build- Build all packagesbun run test- Run tests with bun testbun fix- Format, lint and type check all files (and autofix where possible)bun lint:fix- Lint with oxlintbun fmt:fix- Format with oxfmt
