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

@ryan_nookpi/pi-extension-bash-async

v0.2.2

Published

Bounded background shell jobs for finite non-interactive commands in pi.

Readme

bash-async

Bounded background shell jobs for finite, non-interactive commands in pi.

Install

pi install npm:@ryan_nookpi/pi-extension-bash-async

Do not load this package alongside another extension that registers bash_async.

Tool interface

The extension registers the bash_async tool with five actions:

  • start: launch a finite command in the background
  • status: inspect one job
  • output: read retained job output
  • kill: stop a queued or running job
  • list: list retained jobs

Use start when the next action does not need the command result immediately. Completion or failure arrives automatically through a follow-up message, so do not poll status, output, or list, and do not run sleep loops while waiting. Query output only when an early result is useful or the user asks for it. A repeated status, output, or list query that would return the same information as the previous one fails with a rate-limit error until the job state changes or the cooldown expires.

TUI programs, REPLs, commands requiring stdin, and selection menus are unsupported.

Limits and retention

  • Commands time out after 1,800 seconds by default. Set timeout to 0 to disable the timeout.
  • Up to four jobs run concurrently by default. Set PI_BASH_ASYNC_MAX_CONCURRENCY to a positive integer to change the limit.
  • The poll cooldown is 10 seconds. Set PI_BASH_ASYNC_POLL_COOLDOWN_MS to another value, or to 0 to disable rate limiting.
  • The extension retains at most 20 active or queued jobs.
  • Closed logs are stored under the operating system's temporary directory, normally in pi-bash-async, and retained for up to 24 hours.
  • Closed logs share a 1 GiB quota. Older closed logs may be pruned before 24 hours when the quota is exceeded.
  • Pi session shutdown aborts active jobs, settles them, and clears the running-jobs widget. Jobs do not continue across Pi shutdown.