βββββββ βββββββββββββββββ βββββββ βββββββ ββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββ βββ βββ βββββββββββ βββββββ ββββββββ βββ βββ ββββββββββ βββ ββββββββ βββ ββββββββββββ βββ ββββββββ βββ βββββββ βββ
Beautiful, fast, real-time system monitor for Windows. Built in Rust.
Install β’ Features β’ Keys β’ Themes β’ Config β’ License
If you've ever missed htop on Windows, your search is over. pstop brings the full htop experience to Windows PowerShell. No WSL, no Cygwin, no compromises.
| pstop | Task Manager | Get-Process |
|
|---|---|---|---|
| Real-time CPU per-core bars | β | β | β |
| Memory / Swap / Network bars | β | Partial | β |
| GPU utilization & VRAM bars | β | Basic | β |
| Tree view (process hierarchy) | β | β | β |
| Search & filter processes | β | Basic | β |
| Kill / change priority | β | β | Manual |
| Mouse support | β | β | β |
| 7 color schemes | β | β | β |
| Keyboard-driven | β | β | β |
| Runs in terminal | β | β | β |
| ~1 MB binary, zero dependencies | β | N/A | N/A |
winget install marlocarlo.pstopchoco install pstopcargo install pstopDon't have Rust/Cargo? Install it in seconds: https://rustup.rs
Download the latest .zip from GitHub Releases, extract, and add to your PATH.
cargo install --git https://github.com/marlocarlo/pstopgit clone https://github.com/marlocarlo/pstop.git
cd pstop
cargo build --release
# Binary at: target/release/pstop.exe + target/release/htop.exeAll methods install both pstop and htop commands. Yes, you can just type htop on Windows.
If you only installed pstop and want the htop alias in your PowerShell profile:
pstop --install-aliasThis adds Set-Alias htop pstop to your $PROFILE automatically.
Real-time CPU usage bars for every logical core, color-coded by usage type (user / system / virtual), exactly like htop. CPU columns auto-adjust based on core count (2/4/8/16 columns) and terminal size β just like htop's calcColumnWidthCount.
- Mem bar: shows used (green), buffers (blue), cached (yellow)
- Swap bar: swap usage with color threshold
- Net bar: live RX/TX throughput in the header
- GPU bar: overall GPU utilization percentage (shown on GPU tab)
- VMem bar: dedicated video memory usage (shown on GPU tab)
Press F5 or t to toggle process tree view β see parent-child relationships with ββ / ββ tree connectors, collapsible nodes with +/-.
- F3 - Incremental search: jumps to matching process
- F4 - Filter: hides all non-matching processes in real-time
- Main - Full process table (PID, USER, CPU%, MEM%, TIME+, Command...)
- I/O - Disk read/write rates per process
- Net - Per-process network bandwidth (live download/upload rates with auto-scaling B/s, KB/s, MB/s, GB/s) plus active connection counts. No admin required.
- GPU - Per-process GPU engine utilization and dedicated/shared video memory usage via PDH performance counters
Press F2 to open the setup menu with 4 categories:
- Meters - Configure header layout (CPU, Memory, Swap, Network, Tasks, Load, Uptime)
- Display Options - 14 toggleable settings (tree view, highlight basename, shadow other users, show threads, detailed CPU time, and more)
- Colors - Choose from 7 built-in color schemes with live preview
- Columns - Add/remove/reorder visible columns
Switch instantly in F2 > Colors:
- Default - Classic htop green/cyan on black
- Monochrome - Pure white on black
- Black Night - Muted tones for dark terminals
- Light Terminal - Optimized for light backgrounds
- Midnight Commander - Blue background, MC-inspired
- Black on White - Clean light theme
- Dark Vivid - High-contrast neon colors
- Click anywhere in the process table to select
- Click column headers to sort
- Click F-key bar buttons
- Click tabs to switch views
- Scroll wheel for navigation
Familiar htop keybindings β zero learning curve if you know htop.
All settings auto-save to %APPDATA%/pstop/pstoprc and restore on next launch. Your color scheme, display options, column choices, sort preference... everything persists.
- ~1 MB single binary (release build with LTO + strip)
- 50ms event polling for instant keyboard response
- Configurable refresh rate (200msβ10s)
- Native Win32 API calls for I/O counters, process priority, CPU affinity
- Zero runtime dependencies
| Key | Action |
|---|---|
F1 / ? |
Help screen |
F2 |
Setup menu (meters, display, colors, columns) |
F3 / / |
Search processes |
F4 / \ |
Filter processes |
F5 / t |
Toggle tree view |
F6 / > |
Sort by column |
F7 / F8 |
Decrease / Increase process priority (nice) |
F9 / k |
Kill process |
F10 / q |
Quit |
Tab |
Switch between Main / I/O / Net / GPU views |
Space |
Tag process |
c |
Tag process and children |
U |
Untag all |
u |
Filter by user |
p |
Toggle full command path / process name |
H |
Toggle show threads |
K |
Toggle hide kernel threads |
+ / - |
Expand / collapse tree node |
e |
Show process environment |
l |
List open handles (lsof equivalent) |
a |
Set CPU affinity |
I |
Invert sort order |
| Arrow keys | Navigate |
PgUp / PgDn |
Page through process list |
Home / End |
Jump to first / last process |
All 7 schemes affect every UI element β header bars, process table, footer, tabs, popups:
| Scheme | Best For |
|---|---|
| Default | Dark terminals (Windows Terminal, Alacritty) |
| Monochrome | Minimal / accessibility |
| Black Night | OLED / very dark terminals |
| Light Terminal | Light-themed terminals |
| Midnight Commander | Nostalgic blue background |
| Black on White | Maximum readability on light bg |
| Dark Vivid | High contrast, colorful |
Change schemes live: F2 > Colors > select > Enter. Preview updates in real-time.
Settings are saved automatically to:
%APPDATA%\pstop\pstoprc
Format: simple key=value (htoprc-style). Persisted settings include:
- Color scheme
- All 14 display options
- Visible columns
- Sort field & direction
- Update interval
- Tree view state
- OS: Windows 10 / 11 (x86_64)
- Terminal: Windows Terminal, PowerShell, cmd.exe, or any terminal with ANSI support
- Build: Rust 1.70+ (for building from source)
- Publish to crates.io (
cargo install pstop) - Pre-built binaries via GitHub Releases
- WinGet (
winget install marlocarlo.pstop) - Chocolatey (
choco install pstop) - GPU monitoring (per-process GPU engine usage + VRAM, header GPU/VMem bars)
- Network per-process tracking (live bandwidth, no admin required)
- Auto-adjusting CPU column layout (2/4/8/16 columns based on core count)
- Independent htop-style header panel flow (no forced alignment)
- Scoop bucket
- Custom meter plugins
Contributions welcome! This is a Rust project using:
- ratatui 0.29 - TUI framework
- crossterm 0.28 - Terminal backend
- sysinfo 0.33 - System information
- windows 0.58 - Native Win32 APIs
git clone https://github.com/marlocarlo/pstop.git
cd pstop
cargo runMIT - use it, fork it, ship it.
Stop opening Task Manager. Type pstop or its aliases.
