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 monikitEnsure 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.jsUsage
| 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.jsonifXDG_CONFIG_HOMEis 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 -- listLicense
MIT — see LICENSE.
