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

@pepps233/cascade

v0.1.0

Published

Decompose a task into a DAG of subtasks executed by parallel CLI agents

Readme

You describe a task from inside Claude Code or Codex. Cascade breaks it into a dependency graph of smaller subtasks, then runs as many of them at once as their dependencies allow, each one handled by its own CLI agent process. You watch it happen live in a browser tab, and your main session reports progress back to you as pieces finish.

Context is assembled per node and all information flows back to your main session.

Cascade is built on the principles of graph engineering: the idea that agent work should be described as a graph of bounded nodes and typed edges, not forced through a single linear stack.

A linear workflow — one step unlocking the next — works fine when every step genuinely depends on the one before it. But most real tasks aren't that tidy. They contain work that could run in parallel, evidence that would overload a single context window if crammed into one pass, and checkpoints that need precise placement rather than one fixed spot in a queue. Forcing that shape into a line either serializes work that didn't need to wait, or overloads a single model call with everything at once.

A graph fixes this by giving each unit of work a boundary. A node has a clear task and explicit success criteria, so it can be validated and retried on its own without rerunning everything around it. An edge carries meaning, not just order — it says what evidence or result actually needs to cross from one node to the next, so downstream work receives exactly the context it needs and nothing it doesn't. Independent branches run concurrently because nothing in the graph says they have to wait, and a failure on one branch stays contained to the work that actually depended on it.

This is what lets Cascade fan a task out across parallel CLI agents instead of one long serial run: the graph decides what's ready, what's blocked, and what context moves where, so the model doing the work always sees a scoped slice of the problem instead of an ever-growing prompt.

Cascade runs as a local MCP server over stdio. It holds no model access of its own — it validates graphs, schedules work, and shells out to the claude and codex CLIs already configured on your machine, using whatever models and permissions those CLIs already have.

Register it once with either host. No clone or build required — npx fetches the published package on first run:

claude mcp add --scope user cascade -- npx -y @pepps233/cascade
codex mcp add cascade -- npx -y @pepps233/cascade

--scope user matters: without it the server is registered against a single project directory and /cascade will silently have no tools anywhere else. Verify with claude mcp list — cascade should report ✔ Connected.

To get the /cascade entry point, copy the skill into place:

mkdir -p ~/.claude/skills/cascade
curl -fsSL https://raw.githubusercontent.com/Pepps233/cascade/main/skills/cascade/SKILL.md \
  -o ~/.claude/skills/cascade/SKILL.md

The skill pre-approves the cascade tools for the turn it runs in, so the orchestration loop does not prompt for each call. For Codex, copy commands/cascade-codex.md to ~/.codex/prompts/cascade.md instead. Both templates drive the same MCP tools, so behavior is identical regardless of which CLI you're driving the graph from.

From source

git clone https://github.com/Pepps233/cascade.git && cd cascade
npm install && npm run build

claude mcp add --scope user cascade -- node "$(pwd)/dist/server.js"

The server starts a local viewer on the first free port from 7317 upward the moment a graph is created, and opens it in your browser automatically.

| Tool | What it does | |---|---| | create_graph | Validates a proposed graph (cycles, dangling edges, duplicate ids), persists it, and opens the live viewer. Does not start any work. | | start_execution | Marks ready nodes and spawns their workers. Returns immediately — it does not wait for anything to finish. | | wait_for_change | Blocks until a node changes state or a timeout elapses. This is what lets the orchestrating session report progress as it happens instead of polling or going silent. | | get_graph_state | Returns an immediate snapshot: every node's state, truncated results, and counts. | | get_node_output | Returns the full result and recent log output for a single node. | | cancel_execution | Stops a running graph, terminating any workers still in flight. |