Every developer has been there: you're deep in a debugging session, your laptop fan is screaming, and you need to know right now — which process is eating your CPU, what port is blocking your server, how much RAM is left.
You open five different tools or start copy-pasting lsof and ps aux | grep incantations from memory.
There had to be a better way.
So I built sysview — a TypeScript-based CLI that gives you a color-coded, opinionated view of your entire system in one command. No dashboards to set up, no agents to install, no config files.
npm install -g @12britz/sysview
💡 Why I built this
My day job involves performance testing at scale — running load tests, monitoring resource exhaustion, diagnosing bottlenecks on Linux servers and dev machines alike.
Tools like htop are great but don't give you quick CLI-composable output. lsof -i -n -P works but the output is a wall of text. df -h, free -m, ps aux — you're constantly context-switching between commands.
I wanted something that felt like a developer's version of a system monitor:
- Opinionated defaults
- Clear color coding (green = good, yellow = watch out, red = fix this)
- Progress bars for quick visual scanning
- A
watchmode for continuous monitoring - Git context, because I'm almost always inside a repo
✨ What sysview does
| Command | What you get |
|---|---|
sysview ports |
Listening ports — process name, PID, address |
sysview memory |
RAM usage with visual progress bar |
sysview cpu |
Model, speed, load, per-core breakdown |
sysview disk |
All mounted volumes with usage % |
sysview network |
Active network connections |
sysview ps |
Processes sorted by CPU or memory |
sysview top |
Interactive real-time process monitor |
sysview git |
Status, branches, log, remotes, diff, contributors |
| `sysview kill <pid\ | port>` |
sysview watch |
Real-time dashboard with configurable refresh |
sysview dashboard |
Full system overview in one screen |
🚀 Quick tour
Ports — no more lsof archaeology
❯ sysview ports
┌──────────────────────────────────────────────────┐
│ sysview - ports │
└──────────────────────────────────────────────────┘
┌──────────┬────────────────────┬──────────┬────────────────────┬──────────┐
│ PORT │ PROCESS │ PID │ ADDRESS │ STATUS │
├──────────┼────────────────────┼──────────┼────────────────────┼──────────┤
│ :3000 │ node │ 42872 │ 127.0.0.1 │ ● LISTEN │
│ :5432 │ postgres │ 99101 │ 127.0.0.1 │ ● LISTEN │
│ :6379 │ redis-server │ 87321 │ 0.0.0.0 │ ● LISTEN │
└──────────┴────────────────────┴──────────┴────────────────────┴──────────┘
4 ports listening
Memory — at a glance
❯ sysview memory
┌────────────────────┬───────────────┬───────────────┬───────────────┬──────────┐
│ TYPE │ USED │ TOTAL │ FREE │ USAGE │
├────────────────────┼───────────────┼───────────────┼───────────────┼──────────┤
│ Physical Memory │ 16.4 GB │ 64 GB │ 47.6 GB │ 25.6% │
└────────────────────┴───────────────┴───────────────┴───────────────┴──────────┘
██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 25.6%
55.8 GB available
CPU — model, load, per-core
❯ sysview cpu
┌──────────────────────────────┬────────────────────┐
│ METRIC │ VALUE │
├──────────────────────────────┼────────────────────┤
│ Model │ Apple M1 Max │
│ Cores │ 10 │
│ Speed │ 2.4 GHz │
│ Current Load │ 11.6% │
│ Running Processes │ 587 │
└──────────────────────────────┴────────────────────┘
Load: █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 11.6%
Per-Core Usage:
┌──────────┬──────────────────────────────────────────────────┐
│ CORE 0 │ ███████████████░░░░░░░░░░░░░░░░░░░░░░░░ 38.7% │
│ CORE 1 │ ███████████████░░░░░░░░░░░░░░░░░░░░░░░░ 38.0% │
│ CORE 2 │ ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 13.9% │
│ CORE 3 │ ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 9.3% │
└──────────┴──────────────────────────────────────────────────┘
Git — your repo at a glance
❯ sysview git --all
Branch: main
Status: Clean working tree
Ahead: 0 Behind: 0
Recent Commits:
│ a4f92c1 feat: add dashboard watch mode 2h ago
│ b3e81d2 fix: process tree edge case on linux 5h ago
│ c7d90a3 chore: update README with examples 1d ago
Contributors:
│ 12britz ██████████████████ 24 commits
💡 Performance tip: I run
sysview watch --start -i 500during local load tests to watch CPU and memory trends in real time alongside my k6 output. The 500ms refresh is smooth with negligible overhead.
🔧 Tech stack
The whole thing is TypeScript with a clean src/ structure, compiled and published to npm.
-
systeminformation— cross-platform OS metrics (abstracts macOS vs Linux beautifully) -
cli-table3— the colorful bordered tables -
chalk— terminal color output - Raw TTY writes for flicker-free
topandwatchmodes
Works on macOS and Linux, Node.js ≥ 16.
🤔 What's next
A few things I'm thinking about:
-
--jsonflag on every command — so you can pipe sysview output into scripts or CI pipelines -
Threshold alerts in
watchmode — flash a warning when CPU crosses 80% instead of passively showing it -
Process search —
sysview ps nodeto fuzzy-filter by name instantly
⭐ Try it out
# Install globally
npm install -g @12britz/sysview
# Full system overview
sysview dashboard
# See what's listening
sysview ports
# Watch everything in real time
sysview watch --start
If you spend any time in the terminal — especially if you do performance work, backend dev, or just get annoyed running five commands to understand your own machine — give it a shot. It's one global install, zero config.
- 📦 npm: npmjs.com/package/@12britz/sysview
- ⭐ GitHub: github.com/12britz/sysview
Drop a star if it's useful — it's MIT licensed, fork it and make it your own.
Feedback and PRs welcome.
Top comments (0)