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

v1.10.1

Published

Score your Claude Code config, fix the gaps with hooks and permissions, prove Claude follows your rules with eval.

Downloads

867

Readme

Claude Launchpad

npm version npm downloads GitHub stars License: MIT macOS Linux Windows

Claude follows CLAUDE.md ~80% of the time. Hooks run at 100%. Most setups have zero hooks.

Launchpad scores your Claude Code config, fixes the gaps with hooks and permissions, and runs scenarios to prove Claude follows your rules.

For developers using Claude Code who want consistent results: solo devs, vibe coders, AI-first teams.

Install and See Your Score

npx claude-launchpad
  Instruction Budget     ━━━━━━━━━━━━━━━━━━━━   100%
  CLAUDE.md Quality      ━━━━━━━━━━━━━━━━━━━━   100%
  Settings               ━━━━━━━━━━━━━━━━━━━━   100%
  Hooks                  ━━━━━━━━━━━━━━━━━━━━   100%
  Rules                  ━━━━━━━━━━━━━━━━━━━━   100%
  Permissions            ━━━━━━━━━━━━━━━━━━━━   100%
  MCP Servers            ━━━━━━━━━━━━━━━━━━━━   100%

  Overall                ━━━━━━━━━━━━━━━━━━━━   100%

  ✓ No issues found. Your configuration looks solid.

A typical unconfigured project scores ~31%. After --fix, it jumps to ~91%.

Quick Start

New project:

npx claude-launchpad init

Detects your stack, generates config, hooks, and permissions. Start at ~93%.

Existing project:

npx claude-launchpad doctor --fix

Scores your config, auto-repairs everything it can.

The Three-File System + Workflow Rules

Without structure, CLAUDE.md becomes a dumping ground:

  • Future ideas bury active guidance
  • Sprint notes push conventions off-screen
  • Past ~200 lines, Claude starts ignoring rules at the bottom

The three-file split keeps each concern where it belongs:

| File | Purpose | Example | |---|---|---| | CLAUDE.md | What Claude needs to know | Stack, commands, conventions, guardrails | | TASKS.md | What we're doing now | Current sprint, session log (empty between sprints) | | BACKLOG.md | What we're doing later | WP-NNN template, 7 mandatory fields, P0/P1/P2/P3 sections |

Init generates all three plus .claude/rules/workflow.md, a path-scoped rule file Claude auto-loads only when editing BACKLOG.md or TASKS.md. It also installs a workflow-check.sh hook that warns on drift: duplicate WP IDs across files, TASKS.md > 80 lines, Current Sprint > 15 items, Session Log > 3 entries.

Doctor flags MEDIUM when workflow.md is missing, LOW when the hook is missing, and MEDIUM on duplicate ## Memory headings in CLAUDE.md. --fix installs or repairs any of them without clobbering existing user content. See the workflow docs for the full lifecycle.

Commands

| Command | What it does | Runs | |---|---|---| | claude-launchpad | Score your config (routes to doctor) | Locally, free | | claude-launchpad init | Detect stack, generate config + hooks + permissions | Locally, free | | claude-launchpad doctor --fix | Auto-fix issues found by doctor | Locally, free | | claude-launchpad eval | Run Claude against test scenarios, score results | Via Claude CLI | | claude-launchpad memory | Optional knowledge base that persists across sessions | Locally | | /lp-enhance (skill) | Claude reads your code and completes CLAUDE.md | Inside Claude Code |

Doctor

Runs 7 analyzers against your .claude/ directory and CLAUDE.md. No API calls, no network, no cost.

Analyzers:

| Analyzer | What it catches | |---|---| | Instruction Budget | Too many instructions. Claude starts ignoring rules past ~200. | | CLAUDE.md Quality | Missing sections, vague instructions, hardcoded secrets, duplicate ## Memory headings | | Settings | No hooks configured, dangerous tool access without safety nets | | Hooks | Missing auto-format, no .env protection, no PostCompact hook, no workflow-check hook, no auto-sync on session end | | Rules | Dead rule files, stale references, empty configs, missing .claude/rules/workflow.md | | Permissions | Credential exposure (~/.ssh, ~/.aws), blanket Bash approval, bypass-mode unprotected | | MCP Servers | Invalid transport configs, missing commands/URLs |

An optional Memory analyzer runs when agentic memory is detected.

Flags:

| Flag | What it does | |---|---| | --fix | Auto-fix: adds hooks, CLAUDE.md sections, BACKLOG.md, rules, .claudeignore | | --fix --dry-run | Preview fixes without applying them | | --watch | Re-runs every second as you edit config files | | --json | Pure JSON output for scripts and CI | | --min-score <n> | Exit code 1 if score is below threshold (for CI) | | -p, --path <dir> | Run on a different directory |

Init

Reads your manifest files (package.json, go.mod, pyproject.toml, etc.) and generates config that fits. No templates, no menus.

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

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

What init writes:

  • Always: CLAUDE.md, TASKS.md, BACKLOG.md, .claude/settings.json
  • Creates when missing: .claude/.gitignore, .claudeignore, .claude/rules/conventions.md
  • Offers /lp-enhance install (project/global/skip) if not already present
  • CLAUDE.md includes a stop-and-swarm rule: after 3 failed attempts, Claude spins up parallel agents instead of retrying the same approach

Supported stacks: TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C#. Detects frameworks: Next.js, FastAPI, Django, Rails, Laravel, Express, SvelteKit, Angular, NestJS, and 15+ more.

Enhance

Init detects your stack but cannot read your architecture. The /lp-enhance skill runs inside Claude Code to fill in the details.

/lp-enhance

Claude reads your codebase and updates CLAUDE.md with real content: actual architecture, actual conventions, actual guardrails. Not boilerplate. It also suggests project-specific hooks and MCP servers.

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

When to re-run: after major refactors, new dependencies, or architecture changes.

Eval

Runs Claude against real test scenarios and scores the results.

# Interactive mode (pick suite, runs, 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 copied in. It 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 save to .claude/eval/ as structured markdown. Feed them back to Claude to fix failures.

Suites:

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

Flags:

| Flag | What it does | |---|---| | --suite <name> | Run one suite: security, conventions, or workflow | | -p, --path <dir> | Project root to evaluate (defaults to cwd) | | --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 for inspection | | --json | JSON output | | --timeout <ms> | Timeout per run (default 120000) |

Hooks

CLAUDE.md rules are ~80% reliable. Hooks are 100% enforced by the harness. Init and --fix set up these hooks automatically:

| Hook | Trigger | What it does | |---|---|---| | .env protection | Before any Read/Write/Edit | Blocks Claude from reading .env files that contain secrets | | Force-push protection | Before any Bash command | Blocks git push --force to prevent destroying remote history | | Auto-format | After any Write/Edit | Runs your language's formatter (prettier, ruff, gofmt, rustfmt, etc.) | | SessionStart | Session opens | Injects TASKS.md so Claude knows where you left off | | PostCompact | After context compression | Re-injects TASKS.md so Claude doesn't lose sprint state mid-session | | workflow-check | After BACKLOG.md/TASKS.md Edit/Write | Warns on duplicate WP IDs across files, TASKS.md > 80 lines, Current Sprint > 15 items, Session Log > 3 entries | | sprint-size / sprint-open | Session start / git commit | Warns on microsprints (<3 WPs), oversized sprints (>7 WPs), new sprint opened without BACKLOG cleanup |

Memory projects get two additional hooks:

| Hook | Trigger | What it does | |---|---|---| | SessionStart pull | Session opens | Auto-pulls memories from GitHub Gist | | SessionEnd push | Session closes | Auto-pushes new memories to GitHub Gist |

Memory (optional)

Claude's built-in memory resets per machine. Launchpad gives each project persistent, cross-device memory that syncs via a private GitHub Gist. Switch laptops and your decisions are already there.

claude-launchpad memory

Interactive setup if not installed, stats if it is. Requires native deps first: npm install better-sqlite3 sqlite-vec. Sync requires the GitHub CLI.

  • Relevant memories auto-injected at session start, new memories stored as Claude works
  • Stale knowledge fades, important decisions persist
  • Each project has its own scoped memory
  • --dashboard opens a terminal UI with vim nav, filtering, and search

Full flag and subcommand reference in the memory docs.

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.

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 | | TASKS.md | Sprint tracker and session log. Claude reads this at session start to pick up where you left off. | | BACKLOG.md | Where deferred features live. Priority tiers (P0/P1/P2) keep future ideas organized without cluttering TASKS.md. | | Hooks | Shell commands that run automatically when Claude does something. CLAUDE.md rules are ~80% reliable. Hooks are 100% enforced. A SessionStart hook that runs cat TASKS.md means Claude sees your task list at every session start. | | Instruction budget | CLAUDE.md has a soft limit of ~200 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 conversation gets too long, Claude compresses older messages. Without a PostCompact hook, Claude loses track of your sprint and session context mid-work. The hook re-injects TASKS.md after compaction so Claude stays on track. | | MCP Servers | External tools Claude can connect to (databases, APIs, docs). Configured in .mcp.json (project scope) or .claude/settings.json. Most projects don't need them. | | .claudeignore | Like .gitignore but for Claude. Tells Claude which files to skip so it doesn't waste time reading noise. |

Privacy

  • No telemetry, no analytics, no data sent anywhere
  • Doctor, init, and fix run fully offline
  • Memory stores data locally at ~/.agentic-memory/
  • Sync (memory push/pull) uses a private GitHub Gist under your account
  • Enhance and eval run through your local Claude CLI

Full privacy policy.

License

MIT