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

monikit

v0.1.1

Published

Interactive launcher for Linux monitoring CLI tools

Readme

monikit

Interactive launcher for common Linux monitoring and observability CLI tools (htop, nmap, ss, tcpdump, …). Run monikit, pick an entry with the arrow keys, press Enter, and the program runs in the same terminal with stdin/stdout/stderr inherited.

The list shows whether each executable is found (installed and discoverable using the same search path monikit uses to run programs) so you can see what is available without remembering names.

Install

Requires Node.js 18+.

From npm (recommended)

npm install -g monikit

Ensure your global npm bin directory is on your PATH (npm prints a hint if it is not). Then run monikit from any terminal.

From source

From the project root:

npm install
npm run build
npm link   # optional: puts `monikit` on your PATH

(npm run build compiles TypeScript to dist/; required once after clone or when you change sources.)

Or run without linking:

node dist/cli.js

Usage

| Command | Description | |--------|-------------| | monikit | Interactive list; Enter runs the selected tool | | monikit list | Print tools, descriptions, and whether each binary is found | | monikit add | Add a tool (prompted) | | monikit remove [id] | Remove by id, or choose interactively | | monikit path | Print the config file path | | monikit help | Help |

Configuration

Config path (XDG Base Directory):

  • $XDG_CONFIG_HOME/monikit/tools.json if XDG_CONFIG_HOME is set
  • otherwise ~/.config/monikit/tools.json

If you previously used the monkit package, your config may still be under ~/.config/monkit/. Move or copy it to ~/.config/monikit/ (for example: mv ~/.config/monkit ~/.config/monikit).

On first run, default tools are copied from the package into that file. Edit the JSON or use monikit add / monikit remove to customize. If you already have a config and want the latest bundled catalog, compare with defaults.json under the package (node_modules/monikit/dist/defaults.json when installed via npm, or src/defaults.json in a git clone) or remove tools.json once to re-seed (back up first if you customized it).

Each tool entry:

{
  "id": "htop",
  "label": "htop",
  "description": "Interactive process viewer (CPU, memory, threads)",
  "argv": ["htop"]
}

Optional "env": { "VAR": "value" } is merged into the process environment.

“Failed to start … ENOENT” / “Executable not found”

ENOENT means the program file is missing (not installed, or not in PATH), not “you forgot sudo.”

monikit detects your distro from /etc/os-release and suggests the right install command (apt, dnf, pacman, zypper, or apk). If the OS cannot be detected, it prints several common commands so you can pick one.

  • monikit list — for every missing tool, prints a short “Install missing tools” section with suggested commands.
  • Interactive picker — missing entries show the first suggested install line in the description.
  • Errors — same text as when a run fails for the same reason.

Some tools (e.g. iotop, nethogs) live under /usr/sbin. monikit prepends standard Linux PATH prefixes so behavior matches a typical login shell.

sudo: If a tool must run as root, either run monikit from a shell where you would normally use sudo, or set argv to include sudo, e.g. ["sudo", "iotop"] (you will get a password prompt in the terminal when appropriate). That fixes permission errors, not missing binary errors.

Development

npm install
npm run dev -- list    # run from TypeScript via tsx
npm run build
npm start -- list

License

MIT — see LICENSE.