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

yro

v1.0.0

Published

Production process manager for Node.JS applications with a built-in load balancer.

Readme

YRO Runtime Edition

YRO is a production process manager for Node.js/Bun applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.

Starting an application in production mode is as easy as:

$ yro start app.js

Official Yro & PM2 website: https://pm2.keymetrics.io/

Works on Linux (stable) & macOS (stable) & Windows (stable). All Node.js versions are supported starting Node.js 12.X and Bun since v1

Installing YRO

With NPM

$ npm install yro -g

With Bun

$ bun install yro -g

Please note that you might need to symlink node to bun if you only want to use bun via sudo ln -s /home/$USER/.bun/bin/bun /usr/bin/node


You can install Node.js easily with NVM or FNM or install Bun with curl -fsSL https://bun.sh/install | bash

Start an application

You can start any application (Node.js, Bun, and also Python, Ruby, binaries in $PATH...) like that:

$ yro start app.js

Your app is now daemonized, monitored and kept alive forever.

Managing Applications

Once applications are started you can manage them easily:

To list all running applications:

$ yro list

Managing apps is straightforward:

$ yro stop     [app_name|namespace|id|'all'|json_conf]
$ yro restart  [app_name|namespace|id|'all'|json_conf]
$ yro delete   [app_name|namespace|id|'all'|json_conf]

To have more details on a specific application:

$ yro describe <id|app_name>

To monitor logs, custom metrics, application information:

$ yro monit

More about Process Management

Cluster Mode: Node.js Load Balancing & Zero Downtime Reload

The Cluster mode is a special mode when starting a Node.js application, it starts multiple processes and load-balance HTTP/TCP/UDP queries between them. This increase overall performance (by a factor of x10 on 16 cores machines) and reliability (faster socket re-balancing in case of unhandled errors).

Starting a Node.js application in cluster mode that will leverage all CPUs available:

$ yro start api.js -i <processes>

<processes> can be 'max', -1 (all cpu minus 1) or a specified number of instances to start.

Zero Downtime Reload

Hot Reload allows to update an application without any downtime:

$ yro reload all

More informations about how YRO & PM2 make clustering easy

Container Support

With the drop-in replacement command for node, called yro-runtime, run your Node.js application in a hardened production environment. Using it is seamless:

RUN npm install yro -g
CMD [ "yro-runtime", "npm", "--", "start" ]

Read More about the dedicated integration

Host monitoring speedbar

YRO allows to monitor your host/server vitals with a monitoring speedbar.

To enable host monitoring:

$ yro set YRO:sysmonit true
$ yro update

Monitor all processes launched straight from the command line:

$ yro monit

Log Management

To consult logs just type the command:

$ yro logs

Standard, Raw, JSON and formated output are available.

Examples:

$ yro logs APP-NAME       # Display APP-NAME logs
$ yro logs --json         # JSON output
$ yro logs --format       # Formated output

$ yro flush               # Flush all logs
$ yro reloadLogs          # Reload all logs

To enable log rotation install the following module

$ yro install pm2-logrotate

More about log management

Startup Scripts Generation

YRO can generate and configure a Startup Script to keep YRO and your processes alive at every server restart.

Init Systems Supported: systemd, upstart, launchd, rc.d

# Generate Startup Script
$ yro startup

# Freeze your process list across server restart
$ yro save

# Remove Startup Script
$ yro unstartup

More about Startup Scripts Generation

Updating YRO

# Install latest YRO version
$ npm install yro@latest -g
# Save process list, exit old YRO & restore all processes
$ yro update

YRO updates are seamless

Thanks in advance and we hope that you like YRO!

License

YRO is forked version of PM2 made available under the terms of the GNU Affero General Public License 3.0 (AGPL 3.0). For other licenses contact us.