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

@whit3rabbit/rabbit-flows

v0.1.1

Published

npx installer that bundles Claude Code workflows with the skills and agents they depend on.

Readme

rabbit-flows

CI Publish npm version npm downloads Docker Pulls License: MIT

rabbit-flows allows you to make and install Claude Code dynamic workflows with the skills and agents they need.

The installer copies plain files into .claude, records a receipt, and can uninstall only the files it placed.

Developers can modify dynamic workflows/skills to create their own installers so users can easily create their own workflows. It comes with a frontend visual designer too, although I suggest sticking with Claude to help design your workflow.

Requirements

  • Claude Code v2.1.154+.
  • Dynamic workflows enabled in /config. On Pro, this is off by default.
  • Node.js 18+ for the installer.

Which one do I want?

  • Install workflows into my projectnpx @whit3rabbit/rabbit-flows (below).
  • Try the visual designer, no local setupdocker run followthewhit3rabbit/rabbit-flow-designer (see Docker (Visual Designer)).
  • Author or edit workflows seriouslygit clone this repo, then npm run designer.

Install

npx @whit3rabbit/rabbit-flows

CLI

npx @whit3rabbit/rabbit-flows                         # interactive install/uninstall menu
npx @whit3rabbit/rabbit-flows --list                 # list workflows
npx @whit3rabbit/rabbit-flows install --workflow scaffold
npx @whit3rabbit/rabbit-flows install --all
npx @whit3rabbit/rabbit-flows uninstall --workflow scaffold
npx @whit3rabbit/rabbit-flows uninstall --all

npx @whit3rabbit/rabbit-flows import ./my-flow-bundle.zip    # add a shared bundle to your catalog
npx @whit3rabbit/rabbit-flows import --list                  # list imported bundles
npx @whit3rabbit/rabbit-flows import --remove my-flow        # drop one from the catalog

Flags:

  • --scope user|project, defaults to user.
  • --force, overwrite on install and back up displaced files (on import, replace an existing bundle).
  • --check, check manifest files and workflow headers for drift.
  • --yes (import only), consent without a prompt (required for non-interactive import).

Scopes:

  • user: ~/.claude
  • project: ./.claude

Install writes <scope>/.rabbit-flows-receipt.json. --force backups go under <scope>/.rabbit-flows-backups/<timestamp>/.

Bundles (share a workflow)

A bundle is a .zip packaging one workflow plus the skills/agents it depends on. Build one in the Visual Designer ("Download bundle" in the generated-code panel, after Save to repo) and share the file. rabbit-flows import <bundle.zip> validates it, stores it under ~/.rabbit-flows/, and registers it so its workflow shows up in the install menu tagged (imported) — then install it like any built-in.

A bundle is third-party code. Its skill scripts and workflow run with your permissions when the workflow runs; there is no sandbox. On import, rabbit-flows prints the archive sha256 and lists every executable script the bundle ships, then asks you to confirm. Treat an unknown bundle like npm install of an unknown package: only import what you trust. Imports can never shadow a built-in workflow (that is refused outright), and the archive never controls where files are written. The bundle format is documented in docs/bundle-format.md.

Workflows

Two ways to trigger a workflow:

  • Easy (recommended): just say what you want. A front-door skill recognizes the request, asks a couple of questions, then launches the workflow for you. Say "audit this repo for security bugs", "start a new Rust CLI project", or "document this codebase".
  • Power user: call the workflow by name with JSON args. Skips the discussion; you supply the args yourself.

| Workflow | Say this (front door) | Power-user command | |---|---|---| | eatahorse | "break this goal into tasks" → eatahorse skill | /eatahorse { "goal": "Add OAuth login", "execute": true } | | eatahorse-plan | "plan this work without executing" → eatahorse skill | /eatahorse-plan { "goal": "Add OAuth login" } | | eatahorse-execute | "work an existing board" → eatahorse skill | /eatahorse-execute { "board": ".eatahorse-auth" } | | security-audit | "audit my code for vulnerabilities" → audit-codebase skill | /security-audit { "scope": "src", "focus": ["authz", "ssrf"] } | | docs-from-code | "document this codebase" → document skill | /docs-from-code { "root": "src", "outDir": "./docs-site", "framework": "mkdocs" } | | docs-create | "write docs from this brief" → document skill | /docs-create { "brief": "Docs for the qz CLI compressor", "outDir": "./docs-site", "framework": "docusaurus" } | | docs-migrate | "migrate these docs to Starlight" → document skill | /docs-migrate { "from": "mkdocs", "to": "starlight", "outDir": "./docs-site" } | | docs-scrape | "save these docs locally" → docs-scraper skill | /docs-scrape { "url": "https://example.com/docs", "outDir": "./corpus", "maxPages": 3 } | | scaffold | "start a new project" → new-project skill | /scaffold { "brief": "A CLI todo app in Rust", "dir": "./todo", "write": false } |

The front-door skill ships with its workflow (see the skills table below), so the natural-language path works as soon as the workflow is installed. starter.js is a reference example for the workflow spine and is not in the installer catalog.

Running the Designer via Docker

The easiest way to run the Rabbit Flow Designer is using Docker Compose:

docker compose up --build

Alternatively, you can manually build and run the container:

# Build the image
docker build -t rabbit-flow-designer .

# Run in read-only mode to view and validate workflows:
docker run --rm -p 3001:3001 \
  -v "$(pwd)/.claude/workflows:/app/.claude/workflows:ro" \
  -v "$(pwd)/.claude/skills:/app/.claude/skills:ro" \
  -v "$(pwd)/plugins:/app/plugins:ro" \
  rabbit-flow-designer

See Docker (Visual Designer) for full instructions, including mounting writeable paths.

Safe Defaults

scaffold defaults to write:true and verify:false.

  • write:false: dry run, no files written.
  • write:true, verify:false: write files, run deterministic checks, execute no generated project code.
  • write:true, verify:true: also run the generated install/build/test commands.

Use verify:true only when you want generated dependencies and scripts to execute.

docs-scrape needs network access and writes under outDir. Start with a low maxPages before crawling a large site.

Docs Frameworks

docs-create and docs-from-code accept framework.

Supported ids:

starlight, docusaurus, mkdocs, vitepress, fumadocs, mdbook, docsify,
sphinx, nextra, mintlify, docsy, scalar, redocly

These have baked inline authoring contracts:

starlight, docusaurus, mkdocs, vitepress, fumadocs, mdbook, docsify

The remaining frameworks author from current docs at runtime. full-project scaffolding is Starlight-only.

Skills

The installer copies the skills listed for the selected workflow in installer/manifest.json.

Front-door dependency skills gather inputs, then launch a workflow:

| Skill | Purpose | |---|---| | new-project | Intake for scaffold. | | audit-codebase | Intake for security-audit. | | document | Single entry point for all docs workflows: --from-code, --from-brief, --migrate, --scrape. Includes a conversational fallback (Tier 2) when workflows are off. | | eatahorse | Drives Kanban boards directly, and is the intake for the eatahorse, eatahorse-plan, and eatahorse-execute workflows. | | docs-scraper | Detects a docs site and extracts markdown; intake for docs-scrape. |

Specialist dependency skills (used inside a workflow, not a user front door):

| Skill | Purpose | |---|---| | architect | Produces one architecture proposal from a brief. | | secure-review | Evidence-backed defensive code review. | | docs-site-builder | Docs framework authoring reference. |

Authoring skills:

| Skill | Location | Purpose | |---|---|---| | dynamic-workflow-authoring | .claude/skills/dynamic-workflow-authoring/ | Workflow authoring and linting reference for this repo. | | workflow-guardrails | plugins/workflow-kit/skills/workflow-guardrails/ | Rules for keeping workflow orchestration small and verifiable. |

Repo Paths

| Path | Purpose | |---|---| | .claude/workflows/*.js | Workflow scripts. | | .claude/skills/dynamic-workflow-authoring/ | Local workflow authoring skill and validate.py. | | .claude/rules/ | Workflow authoring rules. | | installer/manifest.json | Installer catalog and dependency map. | | bin/cli.mjs | Installer CLI. | | plugins/workflow-kit/skills/ | Marketplace skills. | | plugins/workflow-kit/agents/ | Marketplace agents. |

Add a Workflow

  1. Add .claude/workflows/<name>.js.
  2. Add reusable skills under plugins/workflow-kit/skills/<name>/SKILL.md.
  3. Add fixed-model agents under plugins/workflow-kit/agents/<name>.md.
  4. Add the workflow to installer/manifest.json.
  5. Keep the workflow // requires-skills: and // requires-agents: headers in sync with the manifest.
  6. Run npm run check.

If you edit .claude/rules/, run npm run build:skill before npm run check.

Generated docs contracts in .claude/workflows/docs-create.js and .claude/workflows/docs-from-code.js come from scripts/build-docs-contracts.mjs. Edit the source references, regenerate, then run npm run check.

Marketplace Plugin

The marketplace plugin installs skills and agents without cloning this repo:

/plugin marketplace add whit3rabbit/rabbit-flows
/plugin install workflow-kit@rabbit-flows

The plugin does not install workflows. Use the npx installer when you need workflows plus dependencies.

Docker (Visual Designer)

The Rabbit Flow Designer can run in Docker — no Node.js install needed on the host.

Using Docker Compose (Recommended)

Simply run the following command from the repository root:

docker compose up --build

This starts the designer in read-only mode by default. If you want to enable saving generated workflows back to the host and use a secure token, edit the docker-compose.yml file to uncomment the environment and volume configurations:

  • Enable the writable workflows volume mapping (./.claude/workflows:/app/.claude/workflows).
  • Set an RFD_TOKEN environment variable to secure write endpoints.

Using Docker CLI

If you prefer to run the container manually:

# Build from repo root:
docker build -t rabbit-flow-designer .

# Run (read-only — view workflows, validate, no writes):
docker run --rm -p 3001:3001 \
  -v "$(pwd)/.claude/workflows:/app/.claude/workflows:ro" \
  -v "$(pwd)/.claude/skills:/app/.claude/skills:ro" \
  -v "$(pwd)/plugins:/app/plugins:ro" \
  rabbit-flow-designer

# Run with saving (writable workflows + auth token):
docker run --rm -p 127.0.0.1:3001:3001 \
  -e RFD_TOKEN=change-me \
  -v "$(pwd)/.claude/workflows:/app/.claude/workflows" \
  -v "$(pwd)/.claude/skills:/app/.claude/skills:ro" \
  -v "$(pwd)/plugins:/app/plugins:ro" \
  rabbit-flow-designer

Pre-built images are published on each version tag:

docker pull followthewhit3rabbit/rabbit-flow-designer:latest
# Or a specific version:
docker pull followthewhit3rabbit/rabbit-flow-designer:0.1.0

Open http://localhost:3001/flow.html. The container runs as a non-root node user; writable mounts need host dirs owned by UID 1000.