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

claude-launchpad

v0.7.3

Published

CLI toolkit that makes Claude Code setups measurably good - scaffold, diagnose, evaluate, remember

Readme

Claude Launchpad

npm version npm downloads GitHub stars License: MIT

Score your Claude Code setup. Fix what's broken. Prove it works.

CLAUDE.md is advisory — Claude follows your rules ~80% of the time. Hooks are deterministic — 100% compliance. But most developers have zero hooks and too many instructions. This tool gives you a number, fixes the gaps, and lets you prove Claude actually follows your config.

npx claude-launchpad

That's it. Run it in any project with Claude Code. You'll see a score out of 100 and a list of exactly what's wrong. Run --fix to auto-repair.

Claude Launchpad has 4 CLI commands (init, doctor, eval, memory) plus 1 in-session skill (/lp-enhance). Memory is optional.

Two Paths, One Tool

Starting a new project?

claude-launchpad init

Detects your stack, generates CLAUDE.md with your commands and conventions, creates TASKS.md for tracking work across sessions, sets up hooks that auto-format code and block dangerous operations, and adds a .claudeignore so Claude skips node_modules and build artifacts.

Then use /lp-enhance inside Claude Code to have Claude read your actual codebase and fill in the architecture and guardrails — not boilerplate, real project-specific content.

Already have a project?

claude-launchpad

Scans your Claude Code config, gives you a score out of 100, and tells you exactly what's wrong. Run doctor --fix to auto-apply deterministic fixes, then run /lp-enhance inside Claude Code to rewrite CLAUDE.md with project-specific guidance, then run eval to prove behavior.

Command Model

| Command | What it does | Runs | |---|---|---| | claude-launchpad init | Detect stack, generate config, hooks, permissions | Locally | | claude-launchpad | Default entrypoint (routes to doctor when config exists) | Locally | | claude-launchpad doctor --fix | Auto-fix issues: hooks, rules, sections, .claudeignore | Locally | | claude-launchpad doctor --watch | Live score that updates when you save config files | Locally | | /lp-enhance (skill) | Claude reads your code and completes CLAUDE.md | Inside Claude Code | | claude-launchpad eval | Run Claude against test scenarios, prove config works | Via Claude CLI | | claude-launchpad memory | Optional memory setup (or stats) + installs /lp-migrate-memory skill | Locally | | claude-launchpad memory --dashboard | TUI dashboard for memory visualization | Locally |

Quick Start

cd your-project
npx claude-launchpad            # see your score
npx claude-launchpad doctor --fix   # fix everything

A typical unconfigured project scores ~42%. After --fix, it jumps to ~86%. Run init on a fresh project and you start at ~93%.

The Doctor

The core of the tool. Runs 7 core analyzers against your .claude/ directory and CLAUDE.md (plus an optional Memory analyzer when agentic memory is detected):

| Analyzer | What it catches | |---|---| | Instruction Budget | Too many instructions in CLAUDE.md — Claude starts ignoring rules past ~150 | | CLAUDE.md Quality | Missing sections (including Memory & Learnings), vague instructions ("write good code"), hardcoded secrets | | Settings | No hooks configured, dangerous tool access without safety nets | | Hooks | Missing auto-format on save, no .env file protection, no security gates, no PostCompact hook | | Rules | Dead rule files, stale references, empty configs | | Permissions | Credential file exposure (~/.ssh, ~/.aws, ~/.npmrc), blanket Bash approval, bypass mode unprotected, sandbox disabled, .env gap between hooks and .claudeignore, no force-push protection | | MCP Servers | Invalid transport configs, missing commands/URLs |

Output looks like this:

  Instruction Budget     ━━━━━━━━━━━━━━━━━━━━   100%
  CLAUDE.md Quality      ━━━━━━━━━━━━━━━━━━━━   100%
  Settings               ━━━━━━━━━━━━━━━━━━━━   100%
  Hooks                  ━━━━━━━━━━━━━━━━━━━━   100%
  Rules                  ━━━━━━━━━━━━━━━━━━━━   100%
  Permissions            ━━━━━━━━━━━━━━━━━━━━   100%
  MCP Servers            ━━━━━━━━━━──────────    50%

  Overall                ━━━━━━━━━━━━━━━━━━━─    93%

  ✓ No issues found. Your configuration looks solid.

All doctor flags:

| Flag | What it does | |---|---| | --fix | Auto-fixes issues: adds hooks, CLAUDE.md sections, rules, .claudeignore | | --fix --dry-run | Preview what --fix would change without applying | | --watch | Re-runs every second, updates when you save a config file | | --json | Pure JSON output, no colors, no banner — for scripts and CI | | --min-score <n> | Exit code 1 if score is below threshold — use in CI to block bad configs | | -p, --path <dir> | Run on a different directory |

Init

Detects your project and generates Claude Code config that fits. No templates, no menus — it reads your manifest files and figures it out.

  → Detecting project...
  ✓ Found Next.js project
  · Package manager: pnpm

  ✓ Generated CLAUDE.md
  ✓ Generated TASKS.md
  ✓ Generated .claude/settings.json (schema, permissions, hooks)
  ✓ Generated .claude/.gitignore
  ✓ Generated .claudeignore
  ✓ Generated .claude/rules/conventions.md

Works with: TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C# — and detects frameworks (Next.js, FastAPI, Django, Rails, Laravel, Express, SvelteKit, Angular, NestJS, and 15+ more).

What init writes:

  • Always writes: CLAUDE.md, TASKS.md, .claude/settings.json
  • Creates when missing: .claude/.gitignore, .claudeignore, .claude/rules/conventions.md
  • Offers /lp-enhance install (project/global/skip) only when no project/global/legacy install already exists

Enhance

Init detects your stack but can't understand your architecture. The /lp-enhance skill runs inside your Claude Code session to read your actual code and fill in the details.

/lp-enhance

Installed as a skill during init (you pick global or project scope). Claude reads your codebase and updates CLAUDE.md with real content - actual architecture, actual conventions, actual guardrails, and memory management instructions. Not boilerplate. It also suggests project-specific hooks (including PostCompact for session continuity) and MCP servers based on what it finds.

Stays under the 120-instruction budget. Overflows detailed content to .claude/rules/ files. If the skill is missing, doctor --fix will create it.

Memory

Optional persistent memory system that replaces Claude Code's built-in flat-file memory with intelligent, decay-based retrieval.

claude-launchpad memory

Interactive setup - asks before changing anything. Installs a SQLite database, hooks for automatic context injection, and 7 MCP tools. It also installs the /lp-migrate-memory skill to help migrate legacy built-in memory files.

What it does:

  • SessionStart hook automatically injects relevant memories at the start of each session
  • Stop hook extracts facts from the conversation transcript when you're done
  • Decay model - memories fade naturally based on type (episodic: 60 days, semantic: 1 year, procedural: 2 years)
  • Multi-signal scoring - retrieval ranked by text match, importance, recency, access frequency, and git context
  • Project-scoped - memories are partitioned per project, no cross-contamination
  • TUI dashboard (--dashboard) for visualization with vim navigation, filtering, and search

No cloud. No sync. Everything stays in ~/.agentic-memory/memory.db.

Memory flags:

| Flag | What it does | |---|---| | --dashboard | Opens the interactive TUI dashboard |

Default behavior of claude-launchpad memory:

  • If memory is not installed, it runs interactive install
  • If memory is installed, it shows memory stats

Eval

The part nobody else has built. Runs Claude against real test scenarios and scores the results.

# Interactive mode — pick suite, runs, and model
claude-launchpad eval

# Or pass flags directly
claude-launchpad eval --suite security --runs 1 --model haiku

Each scenario creates an isolated sandbox with your full Claude Code config (settings.json, rules, hooks, .claudeignore) copied in, runs Claude with a task, and checks if your configuration made Claude follow the rules:

  ✓ security/sql-injection            10/10  PASS
  ✓ security/env-protection           10/10  PASS
  ✓ security/secret-exposure          10/10  PASS
  ✓ security/input-validation         10/10  PASS
  ✗ conventions/file-size              5/10  FAIL
    ✗ Claude kept all generated files under 800 lines

  Config Eval Score      ━━━━━━━━━━━━━━━━━━━─    95%

Results are saved to .claude/eval/ as structured markdown — you can feed these reports back to Claude to fix the failures.

Suites:

| Suite | Scenarios | What it tests | |---|---|---| | security | 6 | SQL injection, .env protection, secret exposure, input validation, credential read, sandbox escape | | conventions | 5 | Error handling, immutability, file size, naming, no hardcoded values | | workflow | 4 | Git conventions, session continuity, memory persistence, deferred tracking |

All eval flags:

| Flag | What it does | |---|---| | --suite <name> | Run one suite: security, conventions, or workflow | | -p, --path <dir> | Project root to evaluate (defaults to current directory) | | --scenarios <path> | Use a custom scenarios directory | | --model <model> | Model to use: haiku, sonnet, opus | | --runs <n> | Runs per scenario (default 3, median score used) | | --debug | Keep sandbox directories so you can inspect what Claude wrote | | --json | JSON output | | --timeout <ms> | Timeout per run (default 120000) |

Use in CI

Block PRs that degrade your Claude Code config quality:

# .github/workflows/claude-config.yml
name: Claude Code Config Quality
on:
  pull_request:
    paths: ['CLAUDE.md', '.claude/**', '.claudeignore']
jobs:
  config-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '22' }
      - run: npx claude-launchpad@latest doctor --min-score 80 --json

Score below threshold = exit code 1 = PR blocked.

How It Works

Doctor reads your files and runs static analysis. No API calls. No network. No cost.

Init scans manifest files (package.json, go.mod, pyproject.toml, etc.), detects your stack, and generates 7 files: CLAUDE.md (with sprint reviews and memory management), TASKS.md (with deferred issues section), settings.json (with credential deny rules, sandbox enabled, bypass mode disabled, hooks including sprint review and PostCompact), .claude/.gitignore, .claudeignore, /lp-enhance skill, and language-specific rules. Formatter hooks use hardcoded safe commands only.

Enhance is a /lp-enhance skill installed during init. It runs inside your active Claude Code session - no separate process, no overhead. Claude already has your codebase context, so it produces better results than an external command.

Eval creates a temp directory, copies your full .claude/ config (settings.json, rules, hooks, permissions) and .claudeignore into it, writes seed files from the scenario YAML, initializes a git repo, runs Claude via the Agent SDK (or falls back to CLI), then checks the output with grep/file assertions. Your code is never copied — only your Claude Code configuration. Sandbox is cleaned up after (or preserved with --debug).

Why This Exists

Nobody measures their Claude Code config quality. You write CLAUDE.md, hope Claude follows it, and never verify. This tool gives you a number. Fix the issues, re-run, watch it go up.

Glossary

New to Claude Code? Here's what the terms mean:

| Term | What it is | |---|---| | CLAUDE.md | A markdown file in your project root that tells Claude how to work on your code. Think of it as instructions for your AI pair programmer. Official docs | | Hooks | Shell commands that run automatically when Claude does something. For example: auto-format a file after Claude edits it, or block Claude from reading your .env file. They live in .claude/settings.json. | | Instruction budget | CLAUDE.md has a soft limit of ~150 actionable lines. Past that, Claude starts ignoring rules at the bottom. Doctor counts your lines and warns you. | | Rules | Extra markdown files in .claude/rules/ that Claude reads alongside CLAUDE.md. Use them to offload detailed conventions so CLAUDE.md stays under budget. | | Compaction | When a Claude Code conversation gets too long, it compresses older messages to free up space. This can lose context — a PostCompact hook re-injects critical files (like TASKS.md) after compaction. | | MCP Servers | External tools Claude can connect to (databases, APIs, docs). Configured in .claude/settings.json. Most projects don't need them. | | .claudeignore | Like .gitignore but for Claude. Tells Claude which files to skip (node_modules, dist, lockfiles) so it doesn't waste time reading noise. |

Privacy

No telemetry. No analytics. No data sent anywhere. Doctor, init, and fix are fully offline. Memory stores data locally at ~/.agentic-memory/ - no cloud sync. Enhance and eval run through your local Claude CLI - no data passes through this tool. Full privacy policy.

License

MIT