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

@harms-haus/pi-workflows

v1.0.0

Published

Workflow management extension for the pi coding agent

Readme

pi-workflows

A configurable pi extension for defining and running named multi-phase workflows with tool control, subworkflow nesting, and state persistence.

Features

  • Named workflows — Define any number of workflows as standalone directories with a workflow.yaml file, each invoked by a unique slash command.
  • Configurable phases — Each phase specifies its own instructions, emoji, and available subagent profiles.
  • Per-phase tool control — Restrict tools per phase using a blacklist (block specific tools) or whitelist (allow only specific tools).
  • Subworkflow nesting — Compose workflows by referencing other workflows as phases, with cycle detection and breadcrumb navigation.
  • State persistence — Workflow state survives session restarts via pi.appendEntry.
  • Auto-continue enforcement — The agent cannot finish until the workflow reaches DONE; a configurable reminder is injected on premature agent_end.
  • Template variables — Use {workflowName}, {phaseName}, {taskDescription}, and more in messages and instructions.
  • Slash commands — Start workflows with /workflow, cancel with /cancel-workflow, and inspect progress with the workflow_step tool.

Installation

pi install git:github.com/harms-haus/pi-workflows

Quick Start

1. Create a workflow directory under .pi/workflows/ in your project (or ~/.pi/agent/workflows/ globally):

mkdir -p .pi/workflows/my-workflow

2. Write workflow.yaml with two phases referencing markdown files:

name: My Workflow
commandName: my-workflow
initialMessage: 'Starting {workflowName} for: "{description}"'
phases:
  - gather.md
  - execute.md

Create the phase files alongside workflow.yaml:

## <!-- gather.md -->

id: gather
name: Gather
emoji: "🔍"

---

Research the task and summarize findings.
## <!-- execute.md -->

id: execute
name: Execute
emoji: "🔨"
tools:
whitelist: - edit - write - workflow_step

---

Implement the solution based on gathered research.

See docs/configuration-reference.md for the full schema.

3. Run the workflow in your pi session:

/workflow my-workflow add user authentication

Usage

Commands

| Command | Description | | --------------------------------------- | ----------------------------------------------------------- | | /workflow {commandName} {description} | Start a workflow | | /cancel-workflow | Cancel the active workflow (bypasses the not-done reminder) |

workflow_step Tool

| Action | Description | | -------- | ----------------------------------------------------------------------- | | status | Show current workflow state, phase instructions, and available profiles | | next | Advance to the next phase (or DONE if on the last phase) | | cancel | Cancel the active workflow (requires two calls to confirm) | | loop | Restart the current scope from phase 0 (if the workflow is loopable) |

For complete examples, see docs/examples.md.

Documentation

| Document | Description | | ---------------------------------------------------------- | -------------------------------------------------------- | | Configuration Reference | Full schema for workflow.yaml and phase markdown files | | Template Variables | All available {variables} and where they can be used | | Subworkflows | Composing workflows from other workflows | | Examples | Complete workflow definitions and usage patterns | | Architecture | Extension structure, hooks, and data flow | | Hook Lifecycle | How hooks intercept agent turns and tool calls | | State Management | How workflow state is tracked and persisted | | Testing | Running and writing tests for the extension | | Contributing | Development setup and contribution guidelines |

License

MIT