htop is great — until you're on a fresh server, a minimal Docker container, or a CI runner where it's not installed. Installing it means apt install htop (which pulls in 20+ dependencies), or worse, building from source.
The same goes for modern alternatives like btop (C++ build), glances (Python, heavy dependency tree), or bashtop.
What if you could do all of this — CPU, memory, disk, network, processes — using tools that are already on your system? That's where evolver-tools comes in: 261 zero-dependency CLI tools in one pip install, all using only Python stdlib.
Here are 8 practical monitoring tasks you can do right now without installing htop or any other system monitor.
htop shows real-time CPU graphs. Sometimes that's overkill — you just need a snapshot of current CPU load.
$ evtool cpu-stats CPU Cores: 8 Architecture: x86_64 Model: Intel(R) Core(TM) i7-10870H CPU Usage: 23.4% Load Average (1m): 1.87 Load Average (5m): 2.12 Load Average (15m): 2.45
For a quick load check:
$ evtool cpu-stats --load-only 1.87 2.12 2.45
The --load-only flag gives you three numbers you can pipe into alerting scripts, Slack notifications, or monitoring dashboards.
Checking memory usage should be one command, not three (free -h, then mentally calculating percentages).
$ evtool mem-info Memory Information ───────────────────── Total: 15.4 GB Used: 8.2 GB (53.2%) Free: 3.1 GB (20.1%) Available: 7.2 GB (46.7%) Swap Total: 2.0 GB Swap Used: 0.3 GB (15.0%)
What to look for: If "Available" drops below 10% of total, you're running low. If swap usage is consistently above 50%, you need more RAM.
# Quick check: is memory OK? $ evtool mem-info | grep Available Available: 7.2 GB (46.7%)
evtool mem-info reports "Available" memory (the Linux kernel's estimate of reclaimable memory), which is more useful than plain "Free" for understanding real pressure.
Replace du -sh * | sort -hr (which you always forget the flags for) with a dedicated tool:
$ evtool disk-usage /var/log Path Size Used Avail Use% /var/log 50G 12.3G 37.7G 24.6% Largest Directories: /var/log/nginx 4.2 GB /var/log/journal 3.1 GB /var/log/postgresql 1.8 GB /var/log/syslog 1.2 GB /var/log/auth.log 0.4 GB
To find files over 100MB across the whole system:
$ evtool find-large --size 100M / /var/log/nginx/access.log.1 847 MB /var/log/journal/system.journal 3.1 GB /opt/docker/overlay2/... 1.4 GB /home/user/downloads/video.mp4 2.1 GB
This is easier than remembering find / -type f -size +100M -exec ls -lh {} \; and formatting the output.
htop's killer feature is the interactive process list. When you don't need interactivity — just the top consumers — use this:
$ evtool process-list --top-cpu 10 PID NAME CPU% MEM% STATUS 1452 firefox 12.4 8.7 Sleeping 2389 chrome 8.1 6.2 Running 3102 python3 5.7 2.1 Running 1789 slack 4.2 3.5 Sleeping ...
$ evtool process-list --top-mem 5 PID NAME CPU% MEM% RSS 1789 slack 2.1 12.3 1.9 GB 1452 firefox 8.7 8.7 1.3 GB 2389 chrome 6.2 6.2 935 MB ...
Pipe into evtool csv-stats to track over time:
$ evtool process-list --top-cpu 10 | evtool csv-stats
Need to know which ports are open and what's listening? No need for netstat or ss:
$ evtool port-scan localhost PORT STATE SERVICE 22 open SSH 80 open HTTP 443 open HTTPS 3000 open Unknown (Node.js?) 5432 open PostgreSQL 8080 open HTTP-Alt
To get your external IP and check connectivity:
$ evtool ip-info External IP: 203.0.113.42 Internal IP: 192.168.1.50 ISP: ExampleNet Location: San Francisco, US
$ evtool dns-lookup example.com Host: example.com IP: 93.184.216.34 TTL: 3600 Aliases: (none)
One of the most common sysadmin frustrations: "port 3000 is in use" and you have to find the PID, then kill it. Two commands becomes one:
$ evtool kill-port 3000 🔍 Found process 3102 (node) on port 3000 ⚠️ Attempting graceful shutdown... ✅ Port 3000 is now free
This is especially useful in development environments where you restart servers frequently, or in CI/CD scripts that need to clean up between runs.
The real power of composable CLI tools: chain them together for a rolling system check:
$ echo "=== CPU ===" && evtool cpu-stats --load-only && echo "=== MEM ===" && evtool mem-info && echo "=== DISK ===" && evtool disk-usage / && echo "=== TOP 5 ===" && evtool process-list --top-mem 5 === CPU === 1.87 2.12 2.45 === MEM === Total: 15.4 GB | Used: 8.2 GB (53.2%) === DISK === / 50G 23G 27G 46% === TOP 5 === slack 12.3% 1.9 GB firefox 8.7% 1.3 GB chrome 6.2% 935 MB ...
Save this as a shell alias:
$ alias dashboard='echo "=== CPU ===" && evtool cpu-stats --load-only && echo "=== MEM ===" && evtool mem-info | head -5 && echo "=== TOP 5 ===" && evtool process-list --top-mem 5'
Run it whenever you SSH into a server. No htop required.
| Feature | htop | btop | evtool |
|---|---|---|---|
| Install size | ~2 MB (with deps) | ~5 MB (C++ build) | ~200 KB |
| Dependencies | ncurses, libdev, etc. | C++ compiler required | Zero (Python stdlib) |
| Interactive TUI | Yes | Yes (GPU-accelerated) | No (CLI output) |
| Scriptable | Batch mode | Limited | Yes (pipe-friendly) |
| Install time | 3-10 seconds | 30+ seconds (compile) | <1 second |
| Available on Windows | WSL only | WSL only | Native + WSL |
| Extensible | No | Limited | 261 tools, composable |
When to use htop/btop: When you need real-time interactive monitoring with visual graphs and keyboard navigation. These are excellent tools — I'm not suggesting you uninstall them.
When to use evtool: When you're on a minimal server, SSH'd into a container, writing a monitoring script, or just want a quick check without context-switching to a TUI. evolver-tools shines in scripts, CI pipelines, and one-shot diagnostics.
Here's a production-ready server health check you can run over SSH:
$ ssh myserver "evtool cpu-stats --load-only && evtool mem-info | grep Available && evtool disk-usage / | tail -1 && evtool port-scan localhost | grep -c open && echo 'OK'" 0.45 0.52 0.48 Available: 12.3 GB (79.8%) / 100G 34G 66G 34% 5 open ports OK
Add this to your deployment scripts, monitoring cron jobs, or onboarding checklists.
No install required for a quick test:
$ curl -sL https://evolver-dev.github.io/evolver-tools/try.sh | bashOr install permanently:
$ pip install evolver-tools
| What you want | Instead of | Use |
|---|---|---|
| CPU load | htop (overkill) |
evtool cpu-stats |
| Memory usage | free -h + mental math |
evtool mem-info |
| Disk usage | df -h + du |
evtool disk-usage |
| Resource hogs | ps aux --sort |
evtool process-list --top-cpu 10 |
| Open ports | netstat -tlnp |
evtool port-scan |
| Kill by port | lsof + kill |
evtool kill-port |