This is what I use too, the nice thing about this is you can use your existing tools natively and you have lots of flexibility in how you want them arranged. Could be split panes in 1 window or different windows in their own session.
If I'm already in tmux and run that script it splits a few tools in a new tmux window but if I'm not in tmux already then it creates a new "monitor" session with the same splits. I also have it assigned to my status bar where if I click Waybar's CPU icon, it "launches or focuses" that monitor script in a new terminal so it doesn't spawn duplicates if I click the CPU multiple times. Basically ultimate freedom in how I want to launch it.
I built Perfmon because I found myself constantly switching between multiple terminal tabs to check different system metrics (top for processes, vmstat for memory, netstat for traffic, etc.). I wanted a single, unified view that didn't just show a hardcoded set of stats, but let me bring my own tools.
What makes it different:
Unlike static monitors like htop or btop, Perfmon is designed around a tabbed interface where each tab is just a shell command defined in a TOML config. If you have a specific script or a grep command you run every 5 seconds to check a log or a metric, you can just drop it into the config, and it becomes a tab in your dashboard.
Key Features:
- Extensible: Define any shell command as a tab.
- Live Metrics: Real-time sparklines for CPU, Mem, Load, and Network (works on Linux, macOS, and Windows).
- Modern TUI: Built using the Go bubbletea framework for a clean, responsive feel.
- Lightweight: Minimal resource footprint.
Perfmon essentially allows you to define commands you use daily, defined them in a toml file and tab them, ie customizable.
It could be docker or kubernetes commands and so on. This is different from btm.
Ha, I've literally never heard of bottom, and haven't looked it up yet, but it's just kind of funny doing Linux/Unix forever and knowing almost exactly what it must be about, just given the name. I'll edit this if I was wrong, but I bet I won't be.
Wow, looks great. Just a quick general recommendations:
You should give a direct curl to an install.sh to provide a simpler installation step for you tool and besides I think it would be good to publish it on home brew for MacOS users.
This post came in a good moment because I am developing a CLI and I want to add some interactivity to it in the next major version and in some way your CLI has helped me with that.
Possibly not the best choice of name...?
(Edit: https://en.wikipedia.org/wiki/Performance_Monitor in case people are unaware, usually known as... perfmon)
I was using tmux to consolidate TUI monitors in both tabs and panes. What's the advantage of perfmon?
This is what I use too, the nice thing about this is you can use your existing tools natively and you have lots of flexibility in how you want them arranged. Could be split panes in 1 window or different windows in their own session.
For example I have a `monitor` script in my dotfiles at https://github.com/nickjj/dotfiles/blob/master/.local/bin/mo... which for now just splits btop and a dedicated GPU monitoring tool.
If I'm already in tmux and run that script it splits a few tools in a new tmux window but if I'm not in tmux already then it creates a new "monitor" session with the same splits. I also have it assigned to my status bar where if I click Waybar's CPU icon, it "launches or focuses" that monitor script in a new terminal so it doesn't spawn duplicates if I click the CPU multiple times. Basically ultimate freedom in how I want to launch it.
I built Perfmon because I found myself constantly switching between multiple terminal tabs to check different system metrics (top for processes, vmstat for memory, netstat for traffic, etc.). I wanted a single, unified view that didn't just show a hardcoded set of stats, but let me bring my own tools.
What makes it different: Unlike static monitors like htop or btop, Perfmon is designed around a tabbed interface where each tab is just a shell command defined in a TOML config. If you have a specific script or a grep command you run every 5 seconds to check a log or a metric, you can just drop it into the config, and it becomes a tab in your dashboard.
Key Features: - Extensible: Define any shell command as a tab. - Live Metrics: Real-time sparklines for CPU, Mem, Load, and Network (works on Linux, macOS, and Windows). - Modern TUI: Built using the Go bubbletea framework for a clean, responsive feel. - Lightweight: Minimal resource footprint.
Looks pretty good, but would love to know this compares to bottom (btm), featurewise. Thanks!
Perfmon essentially allows you to define commands you use daily, defined them in a toml file and tab them, ie customizable. It could be docker or kubernetes commands and so on. This is different from btm.
Bottom(btm) gives just more graphical than top.
Ha, I've literally never heard of bottom, and haven't looked it up yet, but it's just kind of funny doing Linux/Unix forever and knowing almost exactly what it must be about, just given the name. I'll edit this if I was wrong, but I bet I won't be.
Bad name. Doesn't install. Doesn't work well on macOS.
Wow, looks great. Just a quick general recommendations:
You should give a direct curl to an install.sh to provide a simpler installation step for you tool and besides I think it would be good to publish it on home brew for MacOS users.
This post came in a good moment because I am developing a CLI and I want to add some interactivity to it in the next major version and in some way your CLI has helped me with that.
This is my CLI (https://github.com/elC0mpa/aws-doctor)
There you can check how I implemented the home brew distribution and the install.sh file for the easy installation step