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

repo-checkup

v0.1.6

Published

A zero-config CLI that checks JavaScript and TypeScript repositories for configuration, tooling, testing, CI, and project health.

Downloads

1,200

Readme

RepoCheckup

npm version CI license

Give your JavaScript or TypeScript repository a quick checkup.

RepoCheckup is a zero-config CLI that checks JavaScript and TypeScript repositories for configuration, tooling, testing, CI, and project health. It doesn't replace ESLint, TypeScript, or your test runner — it looks at how they're wired together and points out what an experienced reviewer would notice on a first pass.

Quick start

npx repo-checkup

Or install it globally:

npm install -g repo-checkup
repo-checkup

Requires Node.js >= 22.

Example output

RepoCheckup

Checking /path/to/your-project...

Detected
Node.js CLI · TypeScript · pnpm · Vitest

Project        5/5
TypeScript     5/5
Tooling        1/1
Testing        3/3
CI             0/1
Repository     3/3

Issues

! GitHub Actions workflows are present
  No GitHub Actions workflow was found under .github/workflows.

  Recommendation:
  Add a workflow that installs dependencies and runs lint, typecheck, tests, and build.

Summary
✓ 17 passed  ! 1 recommendations  ✗ 0 issues

Health 97/100

What it checks

Checks are grouped into six categories. Every check only runs when it's actually applicable to the detected project (for example, TypeScript checks are skipped entirely for a plain JavaScript repository).

  • Project — package.json validity, package manager detection, conflicting lockfiles, packageManager field consistency, an engines.node field.
  • TypeScript — tsconfig.json presence and validity, strict mode, the typescript package being installed, a typecheck script.
  • Tooling — ESLint / Biome / Prettier installed-vs-configured consistency, overlapping linters.
  • Testing — a test runner detected, a test script, actual test files, end-to-end tests when an e2e tool is installed.
  • CI — GitHub Actions workflows present, pull-request validation, and whether tests/typecheck/build actually run in CI (not just configured locally).
  • Repository — README, LICENSE, .gitignore, and whether a .env file is safely excluded from version control.

RepoCheckup favors cross-file reasoning over single-file checks. The flagship example: Vitest is installed, test files exist, GitHub Actions is set up — but no workflow step runs the test script. That's a real finding a .eslintrc or test script alone can't surface.

Detected project types

Detection is evidence-based (dependencies, scripts, config files, package metadata) rather than filename matching:

Next.js · React + Vite · TanStack Start · Node.js backend · Node.js CLI · npm library · Generic JS/TS repository

CLI options

repo-checkup [path]              # defaults to the current directory
repo-checkup --json              # machine-readable output on stdout
repo-checkup --ci                # exit code 1 if any check reports an error
repo-checkup --category <name>   # project, typescript, tooling, testing, ci, repository
repo-checkup --verbose           # list every check result, not just issues
repo-checkup --no-score          # hide the Health line
repo-checkup --help
repo-checkup --version

Scoring

The score is a summary, not the product — the useful output is the list of findings and recommendations. Each check has a weight (1–5): passing checks earn full weight, warnings earn half, errors earn none, and only applicable checks count toward the total. High-impact issues (a broken CI setup, an untracked .env risk) weigh more than documentation niceties.

CI usage

- name: RepoCheckup
  run: npx repo-checkup --ci

--ci makes exit codes deterministic: 0 when no check reports an error, 1 when at least one does, 2 if RepoCheckup itself couldn't run (invalid path, unreadable repository). Findings never get conflated with a CLI crash. Without --ci, interactive runs always exit 0 so casual local use doesn't fail your shell.

JSON output

--json prints valid JSON to stdout only (diagnostics go to stderr):

{
  "version": "0.1.6",
  "target": "/path/to/your-project",
  "context": {
    "profile": "node-cli",
    "language": "typescript",
    "packageManager": "pnpm",
    "tools": ["vitest"]
  },
  "summary": {
    "score": 50,
    "passed": 0,
    "warnings": 1,
    "errors": 0
  },
  "results": [
    {
      "id": "ci/workflows-found",
      "category": "ci",
      "status": "warning",
      "title": "GitHub Actions workflows are present",
      "message": "No GitHub Actions workflow was found under .github/workflows.",
      "recommendation": "Add a workflow that installs dependencies and runs lint, typecheck, tests, and build."
    }
  ]
}

Privacy

RepoCheckup runs entirely locally: no account, no API key, no telemetry, no repository or source upload, no network calls during a normal scan. It never executes your project's scripts or arbitrary config files — only static files (package.json, tsconfig.json, GitHub Actions YAML, etc.) are read and parsed.

Limitations

RepoCheckup is not a linter, a vulnerability scanner, a secret scanner, or a SAST tool, and it doesn't replace ESLint/Biome, TypeScript, or your CI provider — it checks whether the tools you already have are coherently wired together. Findings use careful language ("detected", "appears") rather than absolute claims, and a clean scan is not a security guarantee.

Development

git clone https://github.com/Randy-R-code/repo-checkup.git
cd repo-checkup
pnpm install
pnpm dev         # run the CLI from source
pnpm typecheck
pnpm test
pnpm build

Contributions are welcome — see CONTRIBUTING.md.

License

MIT