Skip to content

htop alternative for Windows PowerShell. Beautiful, fast, real-time system monitor built in Rust. Per-core CPU bars, memory/swap/network monitoring, tree view, 7 color schemes, full mouse support.

License

Notifications You must be signed in to change notification settings

marlocarlo/pstop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

██████╗ ███████╗████████╗ ██████╗ ██████╗
██╔══██╗██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗
██████╔╝███████╗   ██║   ██║   ██║██████╔╝
██╔═══╝ ╚════██║   ██║   ██║   ██║██╔═══╝
██║     ███████║   ██║   ╚██████╔╝██║
╚═╝     ╚══════╝   ╚═╝    ╚═════╝ ╚═╝

The htop alternative for Windows PowerShell.

Beautiful, fast, real-time system monitor for Windows. Built in Rust.

InstallFeaturesKeysThemesConfigLicense

Windows Rust MIT License PowerShell


pstop screenshot - htop for Windows PowerShell


Why pstop?

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
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

Installation

From Source (Recommended)

cargo install --git https://github.com/marlocarlo/pstop

This installs both pstop and htop commands. Yes, you can just type htop on Windows.

Build Locally

git clone https://github.com/marlocarlo/pstop.git
cd pstop
cargo build --release
# Binary at: target/release/pstop.exe + target/release/htop.exe

Add htop Alias (Optional)

If you only installed pstop and want the htop alias in your PowerShell profile:

pstop --install-alias

This adds Set-Alias htop pstop to your $PROFILE automatically.


Features

🖥️ Per-Core CPU Monitoring

Real-time CPU usage bars for every logical core, color-coded by usage type (user / system / virtual), exactly like htop.

📊 Memory, Swap & Network Bars

  • 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

🌳 Tree View

Press F5 or t to toggle process tree view — see parent-child relationships with ├─ / └─ tree connectors, collapsible nodes with +/-.

🔍 Search & Filter

  • F3 - Incremental search: jumps to matching process
  • F4 - Filter: hides all non-matching processes in real-time

📋 Three Tab Views

  • Main - Full process table (PID, USER, CPU%, MEM%, TIME+, Command...)
  • I/O - Disk read/write rates per process
  • Net - Network I/O focused view

⚙️ F2 Setup Menu (Full htop Parity)

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

🎨 7 Color Schemes

Switch instantly in F2 > Colors:

  1. Default - Classic htop green/cyan on black
  2. Monochrome - Pure white on black
  3. Black Night - Muted tones for dark terminals
  4. Light Terminal - Optimized for light backgrounds
  5. Midnight Commander - Blue background, MC-inspired
  6. Black on White - Clean light theme
  7. Dark Vivid - High-contrast neon colors

🖱️ Full Mouse Support

  • 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

⌨️ Keyboard Shortcuts

Familiar htop keybindings — zero learning curve if you know htop.

💾 Persistent Configuration

All settings auto-save to %APPDATA%/pstop/pstoprc and restore on next launch. Your color scheme, display options, column choices, sort preference... everything persists.

⚡ Performance

  • ~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

Keybindings

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 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

Color Schemes

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.


Configuration

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

System Requirements

  • 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)

Roadmap

  • Publish to crates.io (cargo install pstop)
  • Pre-built binaries via GitHub Releases
  • winget / scoop / chocolatey packages
  • GPU monitoring
  • Network per-process tracking
  • Custom meter plugins

Contributing

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 run

License

MIT - use it, fork it, ship it.


Stop opening Task Manager. Type pstop or its aliases.

About

htop alternative for Windows PowerShell. Beautiful, fast, real-time system monitor built in Rust. Per-core CPU bars, memory/swap/network monitoring, tree view, 7 color schemes, full mouse support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages