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

bun-tasks

v0.1.2

Published

A parallel task runner for the Bun runtime inspired by concurrently

Downloads

4,508

Readme

bun-tasks

bun-tasks is a parallel task runner for the Bun runtime inspired by concurrently. Make sure Bun is installed and on your PATH (run bun --version to verify) before using this library. It understands the ::: command separator, merges global and per-command environment variables, and automatically expands package scripts to bun run <script> when needed. The CLI is exposed as the binary bun-tasks; it is exported for programmatic usage but never auto-executes when imported.

Installation

bun add -D bun-tasks

Prerequisite: Bun must be available in your environment; install it from the official docs if bun --version fails.

Quick start

Register a script in package.json that fans out to multiple commands:

{
  "scripts": {
    "dev": "bun-tasks --args NODE_ENV=dev api ::: docs --args PORT=4000"
  }
}

Define the referenced scripts as usual:

{
  "scripts": {
    "api": "bun run src/api.ts",
    "docs": "bun run docs:watch",
    "dev": "bun-tasks api ::: docs"
  }
}

Command syntax

Commands are separated with :::. Each segment can take one of several forms:

  • scriptName → expands to bun run scriptName using your local package.json.
  • bun run <task> → forwarded as-is when you already include Bun.
  • Any other executable (e.g. node tools/build.js) → executed directly by Bun.

Environment variables

  • --args / -a directly after bun-tasks defines global key/value pairs applied to every command.
  • --args / -a after a command defines per-command variables.
  • Global and local variables are merged; duplicates prefer the command-level value.

Example:

bun-tasks -a API_URL=https://api.dev api ::: queue --args QUEUE=media -a PORT=4010

CLI flags

  • --help, -h — display usage information.
  • --version, -v — show the published version resolved from package.json.
  • --args, -a — attach key/value pairs as described above.
  • --raw, -r — bypass piping and preserve the child process's native output (useful for Parcel progress bars).

Programmatic usage

You can import the CLI class for custom orchestration:

import { BunTasksCLI } from "bun-tasks";

const cli = new BunTasksCLI();
await cli.run(["echo", "hello", ":::", "echo", "world"], {
  stdoutPrefix: (i) => `[job-${i}]`,
  mirrorStderrToStdout: true,
});

Because the package exports the class only, nothing runs automatically when the module is imported.

Development

bun install
bun test --coverage

On Windows, Bun coverage reporting is experimental; if it fails you can temporarily drop the --coverage flag while the upstream feature matures.

Acknowledgements

Portions of the codebase were authored with assistance from GPT-5-Codex.

License

MIT