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

@develo-pera/ralph-kit

v0.1.6

Published

Conversational questionnaire + local Kanban dashboard for Ralph Loop projects

Readme

ralph-kit

CI Tests Coverage npm License: MIT Agent: Claude Code

Conversational questionnaire + local Kanban dashboard + loop runner for Claude Code Ralph Loop projects.

Works with any Ralph Loop implementation — frankbria/ralph-claude-code, snarktank/ralph, or a custom setup. ralph-kit scans your entire project, detects the layout, and drives the board and loop runner automatically.

Quick start

1. Install

npm install -g @develo-pera/ralph-kit
ralph-kit install-commands   # drops slash commands into ~/.claude/commands/ralph-kit/

Or use without installing: npx @develo-pera/ralph-kit <command>

2. Initialize a project

cd your-project
ralph-kit init --flavor ralph-kit    # built-in loop, no dependencies

Available flavors:

| Flavor | What it installs | |--------|-----------------| | ralph-kit | Built-in loop runner, .ralph/ layout — no external dependencies | | frankbria | Clones from frankbria/ralph-claude-code.ralph/ + .ralphrc | | snarktank | Clones from snarktank/ralphscripts/ralph/ralph.sh |

ralph-kit init --list    # see all available flavors

3. Define your project

In Claude Code chat:

/ralph-kit:define

This runs an interactive interview that generates PROMPT.md, AGENT.md, specs/*.md, and fix_plan.md. The board stays gated until this step is done.

4. Start the dashboard

ralph-kit board    # → http://localhost:4777

5. Run the loop

ralph-kit run              # 10 iterations (default)
ralph-kit run -n 25        # 25 iterations

Always use ralph-kit run — it works with any flavor:

  • Detects your loop runner (e.g. scripts/ralph/ralph.sh) and delegates to it
  • Falls back to the built-in loop when no external runner exists
  • Writes status.json and live.log so the board updates in real-time
  • Shows a spinner with elapsed time while Claude works
  • Handles ctrl+C cleanly (writes "interrupted" status, no stale state)

6. Add more work

/ralph-kit:add-task         # quick task into fix_plan.md
/ralph-kit:add-feature      # feature spec + derived tasks
/ralph-kit:promote          # move backlog items → fix_plan.md
/ralph-kit:revise           # dialog-edit any control file

How the board works

Columns

| Column | What goes here | |--------|---------------| | Backlog | backlog.md items — a parking lot for ideas. Ralph never reads this file. | | To Do | All unchecked tasks from fix_plan.md (High, Medium, Low priority). | | In Progress | The top To Do item, automatically when the loop is running. | | Blocked | fix_plan.md ## Blocked tasks + circuit breaker banners. | | Done | Checked [x] tasks + resolved blockers (with timestamps). |

Key behaviors

  • Drag and drop — move cards between columns. Dragging from Backlog to To Do promotes the item into fix_plan.md.
  • Resolved blockers — when a circuit breaker clears, the resolved event persists in .ralph-kit/history.json and shows in Done with a timestamp.
  • Live log — collapsed panel at the bottom. Click to expand. Shows live.log output from the running loop.
  • Gated UI — if the project isn't defined yet, columns are greyed out with a blocking card asking you to run /ralph-kit:define.

CLI commands

| Command | What it does | |---------|-------------| | ralph-kit init [--flavor name] | Set up a Ralph Loop project with a chosen flavor. Clones runner files from GitHub and scaffolds control files. | | ralph-kit run [-n max] | Run the Ralph loop. Delegates to detected runner or uses built-in loop. | | ralph-kit board | Start the local Kanban dashboard on :4777. | | ralph-kit map [--dry-run] [--force] | Scan the project, detect layout, and write .ralph-kit/profile.json. | | ralph-kit doctor | Validate the Ralph directory layout. | | ralph-kit profile show | Print the active profile. | | ralph-kit install-commands | Copy slash commands into ~/.claude/commands/ralph-kit/. |

Slash commands

| Command | What it does | |---------|-------------| | /ralph-kit:define | Interactive questionnaire → generates PROMPT.md, AGENT.md, specs, and fix_plan.md. | | /ralph-kit:add-task | Append one task to fix_plan.md. | | /ralph-kit:add-feature | Feature spec + derived tasks. | | /ralph-kit:promote | Move backlog items into fix_plan.md. | | /ralph-kit:revise | Dialog-edit an existing control file. |

How detection works

ralph-kit map scans your entire project (up to 4 levels deep) looking for Ralph-related files by signature. It detects:

  • Loop runnerralph.sh, loop.sh
  • Task listfix_plan.md, prd.json
  • Loop statusstatus.json, progress.json
  • Circuit breaker — dedicated breaker files or status.json with halted state
  • Live loglive.log
  • Prompt / AgentPROMPT.md, AGENT.md, CLAUDE.md

Detection happens in three tiers:

  1. Declaration.ralph-kit.json at project root (implementation authors can ship this)
  2. Fingerprint — matches known implementation patterns (frankbria, snarktank)
  3. Heuristic — file signature matching as fallback

Conflicts (e.g. both fix_plan.md and prd.json) are reported. CLAUDE.md next to ralph.sh is recognized as a runner prompt, not a competing project prompt.

Adding a new flavor

Add a new entry to src/lib/flavors.ts and submit a PR:

const MY_FLAVOR: Flavor = {
  name: 'my-flavor',
  displayName: 'my-org/my-ralph',
  description: 'My custom Ralph Loop implementation',
  repo: 'my-org/my-ralph',
  branch: 'main',
  filesToClone: [
    { from: 'ralph.sh', to: 'scripts/ralph/ralph.sh' },
  ],
  scaffoldFiles: [
    { path: '.ralph/PROMPT.md', skipIfCloned: true },
    { path: '.ralph/fix_plan.md', skipIfCloned: true },
  ],
  root: '.ralph',
  taskFile: { file: 'fix_plan.md', format: 'markdown' },
};

Or drop a .ralph-kit.json in your project to declare the layout without a PR:

{
  "root": "my-ralph",
  "taskFile": { "file": "tasks.json", "format": "json" }
}

License

MIT