PSTOP(1)

NAME

pstophtop for Windows . TUI system monitor with per-core CPU bars, memory/swap/network, tree view, process kill, 7 color…

SYNOPSIS

$cargo install pstop

INFO

77 stars
4 forks
0 views

DESCRIPTION

htop for Windows . TUI system monitor with per-core CPU bars, memory/swap/network, tree view, process kill, 7 color schemes, mouse support. cargo install pstop

README

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

The htop alternative for Windows PowerShell.

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

InstallFeaturesKeysThemesConfigLicense

crates.io Chocolatey WinGet Windows Rust MIT License PowerShell


pstop demo - 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.

pstopTask ManagerGet-Process
Real-time CPU per-core bars
Memory / Swap / Network barsPartial
GPU utilization & VRAM barsBasic
Tree view (process hierarchy)
Search & filter processesBasic
Kill / change priorityManual
Mouse support
7 color schemes
Keyboard-driven
Runs in terminal
~1 MB binary, zero dependenciesN/AN/A

Installation

WinGet (Recommended)

winget install marlocarlo.pstop

Chocolatey

choco install pstop

Cargo (crates.io)

cargo install pstop

Don't have Rust/Cargo? Install it in seconds: https://rustup.rs

From GitHub Releases

Download the latest .zip from GitHub Releases, extract, and add to your PATH.

From Source

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

Build Locally

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

All methods install both pstop and htop commands. Yes, you can just type htop on Windows.

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. CPU columns auto-adjust based on core count (2/4/8/16 columns) and terminal size — just like htop's calcColumnWidthCount.

📊 Memory, Swap, Network & GPU 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
  • GPU bar: overall GPU utilization percentage (shown on GPU tab)
  • VMem bar: dedicated video memory usage (shown on GPU tab)

🌳 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

📋 Four Tab Views

  • 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

⚙️ 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 - 15 toggleable settings (tree view, highlight basename, shadow other users, show threads, detailed CPU time, vim keys, 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

KeyAction
F1 / ?Help screen
F2Setup menu (meters, display, colors, columns)
F3 / /Search processes
F4 / \Filter processes
F5 / tToggle tree view
F6 / >Sort by column
F7 / F8Decrease / Increase process priority (nice)
F9 / kKill process
F10 / qQuit
TabSwitch between Main / I/O / Net / GPU views
SpaceTag process
cTag process and children
UUntag all
uFilter by user
pToggle full command path / process name
HToggle show threads
KToggle hide kernel threads
+ / -Expand / collapse tree node
eShow process environment
lList open handles (lsof equivalent)
aSet CPU affinity
IInvert sort order
Arrow keysNavigate
PgUp / PgDnPage through process list
Home / EndJump to first / last process

Vim Mode (opt-in)

Enable via F2 > Display Options > Vim-style keys, or set vim_keys=1 in your config file. Off by default.

KeyVim Mode ActionReplaces
jMove down(new — default mode has no bare j)
kMove upk = kill in default mode
gJump to first processHome
GJump to last processEnd
Ctrl+dHalf page down(new)
Ctrl+uHalf page up(new)
xKill processk / F9
/Search(unchanged, works in both modes)
?Help(unchanged, works in both modes)

What changes in vim mode:

  • k becomes move up instead of kill — use x or F9 to kill
  • h no longer opens help — use ? or F1 instead
  • j/k work as bare keys (no Alt modifier needed)
  • All other keys (F1F10, Space, u, t, e, l, a, etc.) remain unchanged

What stays the same:

  • Arrow keys, PgUp/PgDn, Home/End still work
  • All F-key shortcuts (F1F10) still work
  • / for search, \ for filter
  • q to quit, Ctrl+C to quit
  • All sorting keys (P, M, T, N, I, <, >)
  • Tree view (t/F5), tags (Space/c/U), user filter (u)

Color Schemes

All 7 schemes affect every UI element — header bars, process table, footer, tabs, popups:

SchemeBest For
DefaultDark terminals (Windows Terminal, Alacritty)
MonochromeMinimal / accessibility
Black NightOLED / very dark terminals
Light TerminalLight-themed terminals
Midnight CommanderNostalgic blue background
Black on WhiteMaximum readability on light bg
Dark VividHigh 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 15 display options (including vim keys mode)
  • Visible columns
  • Sort field & direction
  • Update interval
  • Tree view state

To enable vim keys from the config file directly:

vim_keys=1

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 (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)
  • Vim-style keybindings (opt-in j/k/g/G/Ctrl-u/Ctrl-d)
  • Scoop bucket
  • Custom meter plugins

Contributing

Contributions welcome! This is a Rust project using:

  • ratatui 0.30 - TUI framework
  • crossterm 0.29 - Terminal backend
  • sysinfo 0.38 - System information
  • windows 0.62 - Native Win32 APIs
git clone https://github.com/psmux/pstop.git
cd pstop
cargo run

License

MIT - use it, fork it, ship it.


Stop opening Task Manager. Type pstop or its aliases.

SEE ALSO

clihub4/7/2026PSTOP(1)