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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@lostvkng/cacti

v0.1.1

Published

Lightweight process management aimed at personal devices

Readme

Cacti

process management in a non-process driven world

I wrote cacti to create a zero dependency process management app for my raspberry pi. The main concept is that it runs shell commands in the background. Cacti supports cron syntax and forever flag which relauches processes when they crash.

Installation

Install cacti globally with npm

npm i -g @lostvkng/cacti

Attach cacti to systemd/systemctl/etc See daemons dir for examples

Usage

cacti list

Lists all active and scheduled jobs

cacti start [shell arguements]

options:
- name=[name] | custom job name
- forever     | relaunch job on exit

ex:
cacti start python3 /home/user/test.py
cacti start -name="blah" python3 /home/user/test.py
cacti start python3 /home/user/test.py -forever

Start a new job. You can set a unique name yourself. Adding the forever flag ensures the process restarts on exit.

cacti stop [pid]

ex:
cacti stop 12509

Kills an active job based on the pid. Will also kill any job launched with forever flag.

cacti add [cron string] [shell arguments]

options:
- name=[name] | custom job name

ex:
cacti add '* 19 * * *' python3 /home/user/Desktop/test.py
cacti add '* */2 3 * *' -name=notifyME python3 /home/user/Desktop/test.py

Add a new cron job to cacti. This launches shell code on set intervals. The cron syntax is further documented below.

cacti remove [name]

ex:
cacti remove notifyME

Removes a cron job by the assigned name.

cacti server

Launch the cacti server, this is usually called by the systemd/systemctl. Cacti communicates with a bare minimum node.js server over tcp on port 8127

Cron syntax

Cron syntax allows us to specify when to launch a task with only a space seperated string.

The syntax is seperated as so:

minute hour day(month) month day(week)

* any value
, value list seperator
- range of values
/ step values

Examples:

'* * * * *'

Run every minute/hour/day/month/day of week

'5 4 * * *'

Run every 4th hour and 5th minute for every day/month/day of week

'0 22 * * 1-5'

Run at 22h00 every weekday