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

create-qflow

v0.0.9

Published

`create-qflow` is a command-line tool that helps you quickly scaffold new `qflow` projects. It allows you to choose from different workflow styles to get started with your preferred coding approach.

Downloads

72

Readme

create-qflow

create-qflow is a command-line tool that helps you quickly scaffold new qflow projects. It allows you to choose from different workflow styles to get started with your preferred coding approach.

Installation

To use create-qflow, you need to have Bun installed. Then, you can use bunx to run the scaffolder:

bunx create-qflow@latest my-new-project

Usage

To create a new qflow project, run the following command:

bunx create-qflow@latest <project-name>

Replace <project-name> with the desired name for your new project. The tool will then prompt you to select a workflow style.

Understanding qflow and AGENTS.md

This template is designed to work with the @fractal-solutions/qflow library, a powerful tool for building asynchronous, node-based workflows. You can find more information about the qflow library here:

Each qflow project generated by create-qflow includes an AGENTS.md file. This document serves as an authoritative guide for AI agents (and human developers!) working with the qflow library, outlining core principles, architecture, and best practices.

Selecting a Workflow Style

During the project creation process, you will be asked to choose one of the following workflow styles:

  1. Concise (Functional): This approach uses a functional style where AsyncNode instances are created and their execAsync and postAsync methods are directly overridden. This is often the most straightforward for simple workflows.

    // Example: Functional Node Definition
    const myNode = new AsyncNode();
    myNode.execAsync = async (prepRes, shared) => {
      console.log("Executing myNode");
      shared.data = "Hello from functional node!";
    };
    myNode.postAsync = async (shared, prepRes, execRes) => {
      return "next";
    };
  2. Flexible (Object Spread): This style uses the JavaScript object spread syntax (...new AsyncNode()) to create and extend AsyncNode instances. It can be more concise for defining nodes inline.

    // Example: Object Spread Node Definition
    const myNode = {
      ...new AsyncNode(),
      async execAsync(prepRes, shared) {
        console.log("Executing myNode");
        shared.data = "Hello from object spread node!";
      },
      async postAsync(shared, prepRes, execRes) {
        return "next";
      }
    };
  3. Structured (Class-based): This is the most structured approach, where you define custom classes that extend AsyncNode or other specialized qflow nodes. This is recommended for complex nodes that require more encapsulated logic or reusability.

    // Example: Class-based Node Definition
    class MyCustomNode extends AsyncNode {
      async execAsync(prepRes, shared) {
        console.log("Executing MyCustomNode");
        shared.data = "Hello from class-based node!";
      }
      async postAsync(shared, prepRes, execRes) {
        return "next";
      }
    }
    const myNode = new MyCustomNode();
  4. Agent (Generic LLM): This approach scaffolds a project with a generic AI agent capable of using various LLMs by configuring a base URL, API key, and model. It includes a custom GenericLLMNode for flexible LLM integration and a basic agent setup with tools like web search and system notifications.

Getting Started with Your New Project

After create-qflow finishes, navigate into your new project directory:

cd <project-name>

Then, install the dependencies:

bun install

Finally, run your qflow application:

bun run src/index.js