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

pulser-cli

v0.4.0

Published

Diagnose, test, and fix Claude Code skills — without leaving the conversation.

Downloads

133

Readme

pulser

"Check my skills." Diagnose, classify, prescribe, and fix — without leaving the conversation.

$ pulser

  pulser v0.4.0

  54 skills scanned · Score: 89/100
  ✓ 48 healthy  ⚠ 4 warnings  ✗ 2 errors

  Top issues:
    cardnews    — No Gotchas, no allowed-tools
    geo-audit   — 338 lines, single file

  💊 Rx #1 — cardnews
  [GOTCHAS] Add Gotchas section
    Why: Anthropic's highest-ROI improvement
    Template:
      ## Gotchas
      1. Validate output against conventions
      2. Check scope — don't over-generate

  Fix type: AUTO

What it does

pulser scans your SKILL.md files against 8 diagnostic rules derived from Anthropic's published principles in "Building Claude Code: How We Use Skills":

| Rule | What it checks | |------|---------------| | frontmatter | Required name and description fields | | description | Trigger keywords, "Use when" pattern, length | | file-size | SKILL.md under 500 lines | | gotchas | Gotchas section with failure patterns | | allowed-tools | Tool restrictions appropriate for skill type | | structure | Supporting files for large skills | | conflicts | Trigger keyword overlap between skills | | usage-hooks | Skill usage logging hook installed |

Each skill is auto-classified by type (analysis, research, generation, execution, reference) with confidence scoring. Prescriptions are tailored to the detected type.

Install

npm install -g pulser-cli

On install, pulser registers itself as a Claude Code skill — say "check my skills" or /pulser to run it conversationally.

Usage

In Claude Code

Just say it:

check my skills

Or use the slash command:

/pulser

Claude runs the diagnosis, summarizes results, and offers to fix issues — all within the conversation.

In terminal

# Scan default path (~/.claude/skills/)
pulser

# Scan a specific directory
pulser ./my-skills/

# Scan a single skill
pulser --skill reasoning-tracer

# Auto-fix issues with backup
pulser --fix

# Rollback the last fix
pulser undo

# JSON output (for CI/automation)
pulser --format json

# Markdown report
pulser --format md

# Treat warnings as errors
pulser --strict

# Disable TUI animation
pulser --no-anim

Eval — Skill Testing

New in v0.4.0: test your skills against real inputs.

pulser eval

Write eval.yaml next to your SKILL.md:

tests:
  - name: "catches bugs"
    input: "Review: function add(a,b) { return a - b }"
    assert:
      - contains: "subtract"
      - min-length: 30

pulser runs each test through claude -p, checks assertions, and tracks regressions automatically.

$ pulser eval

  reviewer (2 tests)
    ✓ catches bugs         320ms
    ✓ passes clean code    280ms

  2 passed · 0 failed · 0.6s

Supported assertions: contains, not-contains, min-length, max-length, matches (regex).

Exit Codes (eval)

| Code | Meaning | |------|---------| | 0 | All tests passed | | 1 | Failures found | | 3 | Regression detected (previously passing test now fails) |

Core Pipeline

  1. Diagnose — Scan and classify issues across 8 rules
  2. Prescribe — Explain why it matters, provide ready-to-use templates
  3. Fix — Auto-apply safe structural fixes with full backup
  4. Eval — Test skills against real inputs, track regressions
  5. Rollback — Instant undo, your safety net

Exit Codes

| Code | Meaning | |------|---------| | 0 | All rules passed | | 1 | Errors found | | 2 | Warnings found (with --strict) |

Patient Monitor TUI

When running in a TTY terminal, pulser displays a hospital-style patient monitor with real-time waveform animation:

  • Green ECG — Skills being scanned
  • Green capnography — Pass/warn/fail counts
  • Cyan plethysmograph — Health score
  • Yellow respiratory — Prescription count

Disable with --no-anim or pipe to a file.

License

MIT — whynowlab