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

projscan

v0.1.13

Published

Instant codebase insights — doctor, x-ray, and architecture map for any repository

Readme

projscan

npm version license node

Instant codebase insights — doctor, x-ray, and architecture map for any repository.

Install · Quick Start · Commands · Full Guide


Why?

Every time you clone a new repo, join a new team, or revisit an old project, you face the same questions:

  • What language and framework is this?
  • Is there linting? Testing? Formatting?
  • What's the project structure?
  • Are the dependencies healthy?

Answering these manually takes 10-30 minutes of poking through config files and directories.

projscan answers all of this in one command, in under 2 seconds.

npx projscan

Run projscan doctor for a focused health check:

npx projscan doctor

Install

npm install -g projscan

Or run directly without installing:

npx projscan

Quick Start

Run inside any repository:

projscan            # Full project analysis
projscan doctor     # Health check
projscan fix        # Auto-fix detected issues
projscan ci         # CI health gate (exits 1 on low score)
projscan diff       # Compare health against a baseline
projscan diagram    # Architecture visualization
projscan structure  # Directory tree

For a comprehensive walkthrough, see the Full Guide.

Commands

| Command | Description | |---------|-------------| | projscan analyze | Full analysis — languages, frameworks, dependencies, issues | | projscan doctor | Health check — missing tooling, architecture smells, security risks | | projscan fix | Auto-fix issues (ESLint, Prettier, Vitest, .editorconfig) | | projscan ci | CI pipeline health gate — exits 1 if score below threshold | | projscan diff | Compare current health against a saved baseline | | projscan explain <file> | Explain a file's purpose, imports, exports, and issues | | projscan diagram | ASCII architecture diagram of your project | | projscan structure | Directory tree with file counts | | projscan dependencies | Dependency analysis — counts, risks, recommendations | | projscan badge | Generate a health score badge for your README |

To see all commands and options, run:

projscan --help

Command Screenshots

Output Formats

All commands support --format for different output targets:

projscan analyze --format json       # Machine-readable JSON
projscan doctor --format markdown    # Markdown for docs/PRs

Formats: console (default), json, markdown

Options

| Flag | Description | |------|-------------| | --format <type> | Output format: console, json, markdown | | --verbose | Enable debug output | | --quiet | Suppress non-essential output | | -V, --version | Show version | | -h, --help | Show help |

Health Score

Every projscan doctor run calculates a health score (0–100) and letter grade:

| Grade | Score | Meaning | |-------|-------|---------| | A | 90–100 | Excellent — project follows best practices | | B | 80–89 | Good — minor improvements possible | | C | 70–79 | Fair — several issues to address | | D | 60–69 | Poor — significant issues found | | F | < 60 | Critical — major issues need attention |

Generate a badge for your README:

projscan badge

This outputs a shields.io badge URL and markdown snippet you can paste into your README.

Sample badge: projscan health

What It Detects

Languages: TypeScript, JavaScript, Python, Go, Rust, Java, Ruby, C/C++, PHP, Swift, Kotlin, and 20+ more

Frameworks: React, Next.js, Vue, Nuxt, Svelte, Angular, Express, Fastify, NestJS, Vite, Tailwind CSS, Prisma, and more

Issues:

  • Missing linting (ESLint) and formatting (Prettier) configuration
  • Missing test framework
  • Missing .editorconfig
  • Large utility directories (architecture smell)
  • Excessive, deprecated, or wildcard-versioned dependencies
  • Missing lockfile
  • Committed .env files and private keys (security)
  • Hardcoded secrets — AWS keys, GitHub tokens, Slack tokens, generic passwords (security)
  • Missing .env in .gitignore (security)

Performance

  • 5,000 files analyzed in under 1.5 seconds
  • 20,000 files analyzed in under 3 seconds
  • Zero network requests — everything runs locally
  • 4 runtime dependencies — minimal footprint

CI/CD Integration

Use projscan ci to gate your pipelines:

projscan ci --min-score 70          # Exits 1 if score < 70
projscan ci --min-score 80 --format json  # JSON output for parsing

GitHub Actions

Copy the included workflow template to your project:

cp .github/projscan-ci.yml .github/workflows/projscan.yml

This runs health checks on every push/PR and posts a markdown health report as a PR comment. See .github/projscan-ci.yml for the full workflow.

Tracking Health Over Time

Save a baseline and compare later:

projscan diff --save-baseline       # Save current score
# ... make changes ...
projscan diff                       # Compare against baseline
projscan diff --format markdown     # Markdown diff for PRs

Use Cases

  • Onboarding: Understand any codebase in seconds, not hours
  • Code reviews: Run projscan doctor --format markdown and paste into PRs
  • CI/CD: Use projscan ci to enforce health standards in your pipeline
  • Security: Catch committed secrets and .env files before they reach production
  • Consulting: Quickly assess client projects before diving in
  • Maintenance: Track health trends with projscan diff across releases

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT