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

@montnyc/ember

v0.15.1

Published

PRD-driven autonomous coding loop tool

Readme

Ember

PRD-driven autonomous coding loop. Write a brief description or a detailed PRD, and Ember breaks it into slices — one per acceptance criterion — and works through them using Claude CLI.

Prerequisites

Getting Started

# Install globally
bun add -g @montnyc/ember

# In your project, generate a PRD from a description
cd your-project
ember plan "Add user authentication with email/password login"

# Initialize (syncs PRDs, creates slices, installs Claude Code skill)
ember init

# Check what Ember will do
ember status

# Run all slices autonomously
ember afk --max-slices 20

# Or run one slice at a time
ember run

Commands

| Command | Description | |---------|-------------| | ember | Launch interactive TUI dashboard | | ember plan "<description>" | Generate a PRD from a brief description | | ember init | Sync PRDs, create slices, install skill | | ember run [--slice <id>] | Execute one slice | | ember afk [--max-slices N] | Run slices autonomously until done or cap | | ember resume [--discard] | Resume an interrupted run | | ember reset [--all] | Reset stuck slices back to pending | | ember status | Show PRD/slice progress | | ember install-skill | Manually install the /ember-prd Claude Code skill |

How It Works

  1. PRDs live in docs/prd/*.md with AC-XXX acceptance criteria
  2. Ember creates one slice per criterion
  3. For each slice, Ember:
    • Runs a pre-flight check (catches existing failures before new work)
    • Spawns Claude with a focused work prompt + session ID
    • Checks for changes and commits
    • Runs your checks (tests, typecheck) — failures create fix slices
    • Runs a skeptical evaluator (separate Claude session that reviews the work)
  4. State persists in .ember/state.json, project memory in EMBER.md, progress notes in .ember/progress.txt
  5. If Claude reports no changes needed 3 times, the criterion is auto-advanced

Planner

ember plan expands a brief description into a full PRD:

ember plan "Build a REST API for user management with JWT auth"
# → Generates docs/prd/001-user-management-api.md with 15-30 acceptance criteria

The planner reads your codebase first, so it references existing files, conventions, and tech stack.

Evaluator

After each slice commits, a separate Claude session reviews the work. The evaluator:

  • Runs in a fresh session (no self-evaluation bias)
  • Is prompted to be skeptical — assumes bugs exist until proven otherwise
  • Checks functionality, correctness, scope, and completeness
  • If it finds issues, Ember reverts the commit and creates a fix slice

Safety

  • Pre-flight checks: tests/typecheck run before work starts. Failures go into the prompt.
  • Circuit breaker: stops after 5 consecutive errors
  • Fix slices: auto-created when checks or evaluator fail (max 3 per failure)
  • Git revert: broken commits are reverted before fix slices run
  • Timeout: Claude calls killed after 10 minutes (configurable)
  • Clean tree guard: refuses to run on uncommitted changes (use --clean to override)

Writing PRDs

PRDs live in docs/prd/ and follow this format:

# Feature Title

Priority: high | normal | low
Depends-On: 001, 002

Description of what to build.

## Acceptance Criteria

- [ ] AC-001 Short, testable statement
- [ ] AC-002 Another testable statement

Use ember plan to generate these automatically, or the /ember-prd Claude Code skill for interactive help.

Config

.ember/config.json (created by ember init):

{
  "runner": {
    "type": "claude",
    "model": "sonnet",
    "timeoutMs": 600000
  },
  "loop": {
    "maxReviewIterations": 3,
    "maxAfkSlices": 10
  },
  "checks": {
    "default": ["bun test", "bunx tsc --noEmit"],
    "enabled": true
  }
}

Customize checks.default for your project's test/lint commands. Set checks.enabled: false to skip checks.

TUI

Run ember with no arguments to launch the interactive terminal dashboard:

  • PRD progress with visual bars
  • Run history
  • Live activity stream during execution
  • Diff viewer with syntax highlighting
  • File change summary

License

MIT