DEV Community

Cover image for I built "sysview" — a beautiful terminal system monitor for developers
britz
britz

Posted on

I built "sysview" — a beautiful terminal system monitor for developers

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
Enter fullscreen mode Exit fullscreen mode

💡 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 watch mode 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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%    │
└──────────┴──────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

💡 Performance tip: I run sysview watch --start -i 500 during 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 top and watch modes

Works on macOS and Linux, Node.js ≥ 16.


🤔 What's next

A few things I'm thinking about:

  • --json flag on every command — so you can pipe sysview output into scripts or CI pipelines
  • Threshold alerts in watch mode — flash a warning when CPU crosses 80% instead of passively showing it
  • Process searchsysview ps node to 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
Enter fullscreen mode Exit fullscreen mode

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.

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)