Skip to content

fwgadmin/monikit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors