{"id":34596043,"url":"https://github.com/faratech/htop-win","last_synced_at":"2026-07-02T05:01:24.899Z","repository":{"id":330241841,"uuid":"1120780024","full_name":"faratech/htop-win","owner":"faratech","description":"htop for Windows: inspired interactive process viewer for Windows, written in Rust","archived":false,"fork":false,"pushed_at":"2026-06-18T23:44:57.000Z","size":9865,"stargazers_count":39,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-19T01:20:15.362Z","etag":null,"topics":["bottom","btm","cli","cross-platform","htop","monitoring","process-monitor","rust","terminal","top","tui","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faratech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T23:29:15.000Z","updated_at":"2026-06-18T23:45:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/faratech/htop-win","commit_stats":null,"previous_names":["faratech/htop-win"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/faratech/htop-win","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faratech%2Fhtop-win","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faratech%2Fhtop-win/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faratech%2Fhtop-win/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faratech%2Fhtop-win/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faratech","download_url":"https://codeload.github.com/faratech/htop-win/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faratech%2Fhtop-win/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35033492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bottom","btm","cli","cross-platform","htop","monitoring","process-monitor","rust","terminal","top","tui","windows"],"created_at":"2025-12-24T11:41:20.346Z","updated_at":"2026-07-02T05:01:24.883Z","avatar_url":"https://github.com/faratech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# htop-win\n\n**A native Windows clone of [htop](https://htop.dev/) - the beloved interactive process viewer, rebuilt from the ground up in Rust.**\n\n[![GitHub release](https://img.shields.io/github/v/release/faratech/htop-win?style=flat-square)](https://github.com/faratech/htop-win/releases/latest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n![Platform](https://img.shields.io/badge/platform-Windows%2010%2F11-0078D6?style=flat-square\u0026logo=windows)\n![Rust](https://img.shields.io/badge/rust-2024%20edition-orange?style=flat-square\u0026logo=rust)\n[![GitHub stars](https://img.shields.io/github/stars/faratech/htop-win?style=flat-square)](https://github.com/faratech/htop-win/stargazers)\n\n\u003e Inspired by the original [htop](https://github.com/htop-dev/htop) by Hisham Muhammad and contributors.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/htop-cropped.png\" alt=\"htop-win - Windows Process Viewer\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/demo_web.gif\" alt=\"htop-win demo\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n---\n\n## Why htop-win?\n\nWindows Task Manager is fine, but power users deserve better. **htop-win** brings the beloved Unix htop experience to Windows with:\n\n- **Blazing fast performance** - Direct Windows API calls, no wrappers\n- **Tiny footprint** - ~500KB binary with minimal dependencies\n- **Full htop compatibility** - Same keyboard shortcuts you already know\n- **Windows-native features** - Efficiency Mode, CPU affinity, elevation detection\n- **GPU/NPU monitoring** - Task Manager parity via D3DKMT, auto-enabled when hardware exists\n- **Automatic updates** - Background update checks with one-command upgrades\n\n---\n\n## Features\n\n### Real-time System Monitoring\n- Per-core CPU usage with color-coded gradient bars (green → yellow → red)\n- Memory and swap usage visualization\n- **GPU meter** - Total GPU utilization bar (shown automatically when a GPU is present)\n- **NPU meter** - NPU utilization bar (shown automatically on Copilot+ and AI PC hardware)\n- Network I/O rates (Rx/Tx)\n- Disk I/O rates (read/write)\n- Battery status and charge indicator\n- System uptime and task/thread counts\n- Configurable meter modes: Bar, Text, Graph, or Hidden\n- Responsive header: scales gracefully from narrow to ultrawide terminals\n\n### Interactive Process Management\n- **27 sortable columns**: PID, CPU%, MEM%, GPU%, NPU%, I/O rate, TIME+, Command, and more\n- **Screen tabs**: Switch between the Main view and the dedicated I/O tab\n- **Tree view**: Visualize parent-child process relationships with collapsible branches\n- **Search \u0026 Filter**: Find processes instantly with live search\n- **Process tagging**: Select multiple processes for batch operations\n- **Kill processes**: Graceful termination or force kill\n- **Priority control**: Change process priority class (Idle → Realtime)\n- **CPU affinity**: Pin processes to specific CPU cores\n\n### GPU \u0026 NPU Monitoring (Task Manager Parity)\n- System-wide GPU utilization meter in the header\n- System-wide NPU utilization meter in the header (Copilot+ PCs)\n- Per-process **GPU%** and **GPU-MEM** columns\n- Per-process **NPU%** and **NPU-MEM** columns\n- Uses the D3DKMT statistics DDI — the same source as Task Manager\n- Automatically detected and enabled; hidden on machines without the hardware\n\n### I/O Tab\nA dedicated tab focused on disk I/O activity:\n- **IO_RATE** - Combined read + write rate per process (bytes/sec)\n- **IO_R/s** - Read rate\n- **IO_W/s** - Write rate\n- **HNDL** - Open handle count\n- Sorted by I/O rate by default\n\n### Windows-Specific Features\n- **Efficiency Mode (EcoQoS)**: Reduce power consumption for background processes\n- **Elevation detection**: See which processes run as Administrator\n- **Architecture display**: Identify x86, x64, and ARM64 processes\n- **Service account support**: View SYSTEM, LOCAL SERVICE, NETWORK SERVICE processes\n- **Modified executable detection**: Highlight processes with changed/deleted binaries\n\n### Full Mouse Support\n- Click to select, double-click for details\n- Right-click to tag processes\n- Click column headers to sort\n- Scroll wheel navigation\n- Click meters to cycle display modes\n- Click tabs to switch views\n\n### Customization\n- **8 color themes**: Default, Monochrome, Light Terminal, Midnight, Nord, and more\n- **Configurable columns**: Show/hide and reorder any column, saved per-tab\n- **Adjustable refresh rate**: 100ms to 5 seconds\n- **Persistent settings**: Configuration saved to `%APPDATA%\\htop-win\\config`\n\n---\n\n## Installation\n\n### Quick Install (Recommended)\n\nDownload the latest release for your architecture:\n\n| Architecture | Download |\n|--------------|----------|\n| x64 (Intel/AMD) | [htop-win-amd64.exe](https://github.com/faratech/htop-win/releases/latest/download/htop-win-amd64.exe) |\n| ARM64 | [htop-win-arm64.exe](https://github.com/faratech/htop-win/releases/latest/download/htop-win-arm64.exe) |\n\n### Install to PATH\n\nRun with administrator privileges to install globally:\n\n```powershell\n.\\htop-win-amd64.exe --install\n```\n\nThis installs to `%LOCALAPPDATA%\\Microsoft\\WindowsApps\\htop.exe`, making `htop` available from any terminal.\n\n### Update\n\nCheck for updates and install automatically:\n\n```powershell\nhtop --update\n```\n\nOr force reinstall the current version:\n\n```powershell\nhtop --update --force\n```\n\n### Build from Source\n\n```powershell\n# Clone the repository\ngit clone https://github.com/faratech/htop-win.git\ncd htop-win\n\n# Build optimized release (~500KB binary)\ncargo build --release\n\n# Run\n.\\target\\release\\htop-win.exe\n```\n\n**Requirements**: Rust 1.85+ (2024 edition), Windows 10/11\n\n---\n\n## Usage\n\n```\nhtop-win [OPTIONS]\n\nOptions:\n  -d, --delay \u003cMS\u003e          Refresh rate in milliseconds [default: 1500]\n  -u, --user \u003cUSER\u003e         Show only processes from this user\n  -p, --pid \u003cPID,...\u003e       Show only these PIDs (comma-separated)\n  -s, --sort \u003cCOLUMN\u003e       Sort by: pid, ppid, cpu, mem, time, command, user, threads\n  -t, --tree                Start in tree view mode\n  -F, --filter \u003cSTRING\u003e     Initial filter string\n  -H, --highlight \u003cSECS\u003e    Highlight new processes for N seconds\n  -n, --iterations \u003cN\u003e      Exit after N updates (for scripting)\n      --benchmark[=\u003cN\u003e]     Run N iterations and print timing stats [default: 20]\n      --benchmark-iterations \u003cN\u003e\n                            Run benchmark mode with N iterations\n      --inefficient         Disable Efficiency Mode / EcoQoS\n      --no-color            Monochrome mode\n      --no-mouse            Disable mouse support\n      --no-meters           Hide header meters\n      --readonly            Disable kill/priority operations\n      --install             Install to PATH (requires admin)\n      --update              Check for and install updates\n      --gpu-debug           Print GPU/NPU adapter diagnostics and exit\n      --cpu-debug           Print CPU / processor-group diagnostics and exit\n  -f, --force               Force install/update\n  -h, --help                Show help\n  -V, --version             Show version\n```\n\n### Examples\n\n```powershell\n# Monitor with 500ms refresh rate\nhtop -d 500\n\n# Show only processes from current user\nhtop -u $env:USERNAME\n\n# Start in tree view, sorted by memory\nhtop -t -s mem\n\n# Filter to show only Chrome processes\nhtop -F chrome\n\n# Monitor specific PIDs\nhtop -p 1234,5678,9012\n```\n\n---\n\n## Keyboard Shortcuts\n\n### Navigation\n\n| Key | Action |\n|-----|--------|\n| `↑` / `k` | Move selection up |\n| `↓` / `j` | Move selection down |\n| `PgUp` / `PgDn` | Page up / down |\n| `Home` / `g` | Jump to first process |\n| `End` / `G` | Jump to last process |\n| `Tab` / `Shift+Tab` | Switch screen tabs |\n| `1` / `2` | PID prefix search |\n\n### Main Controls (Function Keys)\n\n| Key | Action |\n|-----|--------|\n| `F1` / `?` | Help screen |\n| `F2` / `S` | Setup menu |\n| `F3` / `/` | Search processes |\n| `F4` / `\\` | Filter processes |\n| `F5` / `t` | Toggle tree view |\n| `F6` / `\u003c` `\u003e` | Change sort column |\n| `F7` / `]` | Raise priority (opens dialog one class higher, Enter to apply) |\n| `F8` / `[` | Lower priority (opens dialog one class lower, Enter to apply) |\n| `F9` | Kill process |\n| `F10` / `q` | Quit |\n\n### Process Operations\n\n| Key | Action |\n|-----|--------|\n| `Enter` | View process details |\n| `Space` | Tag/untag process |\n| `c` | Tag process and all children |\n| `U` | Untag all processes |\n| `Ctrl+T` | Tag all with same name |\n| `Ctrl+A` | Toggle tag all visible |\n| `e` | View environment variables |\n| `w` | View full command line |\n| `a` | Set CPU affinity |\n| `F` | Toggle follow mode |\n\n### Tree View\n\n| Key | Action |\n|-----|--------|\n| `+` / `=` | Expand branch |\n| `-` | Collapse branch |\n| `*` | Toggle expand/collapse all |\n| `Backspace` | Collapse to parent |\n\n### Display\n\n| Key | Action |\n|-----|--------|\n| `#` | Toggle header meters |\n| `p` | Toggle program path display |\n| `H` | Toggle user threads |\n| `K` | Toggle kernel threads |\n| `Z` | Pause/resume updates |\n| `I` | Invert sort order |\n\n### Quick Sort\n\n| Key | Sort By |\n|-----|---------|\n| `P` | CPU% |\n| `M` | Memory% |\n| `T` | Time |\n| `N` | PID |\n\n---\n\n## Configuration\n\nhtop-win saves settings to `%APPDATA%\\htop-win\\config\\config.json`. Configure via the Setup menu (`F2`) or edit directly:\n\n```json\n{\n  \"refresh_rate_ms\": 1500,\n  \"tree_view_default\": false,\n  \"color_scheme\": \"Default\",\n  \"show_kernel_threads\": false,\n  \"show_program_path\": false,\n  \"highlight_new_processes\": true,\n  \"highlight_large_numbers\": true,\n  \"cpu_meter_mode\": \"Bar\",\n  \"memory_meter_mode\": \"Bar\",\n  \"visible_columns\": [\"PID\", \"USER\", \"PRI\", \"CLASS\", \"THR\", \"VIRT\", \"RES\", \"SHR\", \"S\", \"CPU%\", \"MEM%\", \"TIME+\", \"Command\"],\n  \"mouse_enabled\": true,\n  \"confirm_kill\": true\n}\n```\n\n### Color Themes\n\nAccess via Setup (`F2`) → Color Scheme:\n\n- **Default** - Classic htop colors\n- **Monochrome** - No colors (accessibility)\n- **Black on White** - Light theme\n- **Light Terminal** - For light backgrounds\n- **Midnight** - Dark blue theme\n- **Blacknight** - Pure dark theme\n- **Broken Gray** - Subtle grays\n- **Nord** - Nord color palette\n\n---\n\n## Columns Reference\n\n### Main Tab\n\n| Column | Description | Width |\n|--------|-------------|-------|\n| `PID` | Process ID | 7 |\n| `PPID` | Parent Process ID | 7 |\n| `USER` | Process owner | 10 |\n| `PRI` | Priority (0-31) | 4 |\n| `CLASS` | Priority class (Idle/Normal/High/Realtime) | 7 |\n| `THR` | Thread count | 4 |\n| `VIRT` | Virtual memory | 8 |\n| `RES` | Resident (physical) memory | 8 |\n| `SHR` | Shared memory | 8 |\n| `S` | Status if known; `?` when Windows native process query does not expose htop-style state | 3 |\n| `CPU%` | CPU usage percentage | 6 |\n| `MEM%` | Memory usage percentage | 6 |\n| `GPU%` | GPU utilization % (max across all GPU engines) | 6 |\n| `GPU-MEM` | GPU committed memory across all adapters | 8 |\n| `NPU%` | NPU utilization % | 6 |\n| `NPU-MEM` | NPU dedicated + shared memory | 8 |\n| `TIME+` | Cumulative CPU time | 10 |\n| `START` | Process start time | 8 |\n| `Command` | Command line | Flexible |\n| `ELEV` | Elevated/Admin status | 4 |\n| `ARCH` | Architecture (x86/x64/ARM64) | 5 |\n| `ECO` | Efficiency Mode status | 4 |\n\n\u003e New default configs include GPU% / GPU-MEM and NPU% / NPU-MEM when relevant hardware is detected. Existing custom column layouts are preserved; enable these columns from Setup if you want to add them later.\n\n### I/O Tab\n\n| Column | Description |\n|--------|-------------|\n| `PID` | Process ID |\n| `USER` | Process owner |\n| `IO_RATE` | Combined read + write rate (bytes/sec) |\n| `IO_R/s` | Read rate |\n| `IO_W/s` | Write rate |\n| `IO_RD` | Cumulative bytes read |\n| `IO_WR` | Cumulative bytes written |\n| `HNDL` | Open handle count |\n| `Command` | Command line |\n\n---\n\n## System Requirements\n\n- **OS**: Windows 10 (1903+) or Windows 11\n- **Architecture**: x64 (AMD64) or ARM64\n- **Terminal**: Windows Terminal recommended (supports full color and Unicode)\n- **Privileges**: Administrator recommended for full process visibility\n\n---\n\n## Dependencies\n\nMinimal dependency set optimized for small binary size:\n\n| Dependency | Purpose |\n|------------|---------|\n| [crossterm](https://github.com/crossterm-rs/crossterm) | Cross-platform terminal I/O |\n| [windows-rs](https://github.com/microsoft/windows-rs) | Native Windows API bindings |\n| [unicode-width](https://github.com/unicode-rs/unicode-width) | Unicode character width calculation |\n| [bitflags](https://github.com/bitflags/bitflags) | Terminal modifier flags |\n| [lexopt](https://github.com/blyber/lexopt) | Lightweight argument parsing |\n\n**No heavy frameworks**: Custom terminal UI library (replaces ratatui), custom JSON parser (replaces serde).\n\n---\n\n## Performance\n\nhtop-win is designed for efficiency:\n\n- **~500KB binary** - Minimal dependencies, LTO optimization\n- **Efficiency Mode by default** - Runs with reduced CPU priority\n- **Smart caching** - Minimizes Windows API calls\n- **Background data collection** - System metrics refresh off the UI thread\n- **Diff-based rendering** - Only updates changed terminal cells\n- **Direct API access** - No abstraction layers\n\n---\n\n## Comparison with Alternatives\n\n| Feature | htop-win | Task Manager | Process Explorer |\n|---------|----------|--------------|------------------|\n| Terminal-based | Yes | No | No |\n| Keyboard-driven | Yes | Limited | Limited |\n| Tree view | Yes | Yes | Yes |\n| Process search | Yes | Yes | Yes |\n| CPU affinity | Yes | Yes | Yes |\n| GPU/NPU monitoring | Yes | Yes | No |\n| Efficiency Mode | Yes | Yes | No |\n| I/O per-process | Yes | No | Yes |\n| Custom columns | Yes | Limited | Yes |\n| Color themes | 8 themes | No | No |\n| Binary size | ~500KB | N/A | ~2MB |\n| Auto-update | Yes | N/A | No |\n\n---\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and pull requests.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Acknowledgments\n\n- [htop](https://github.com/htop-dev/htop) - The original inspiration by Hisham Muhammad\n- [windows-rs](https://github.com/microsoft/windows-rs) - Excellent Windows API bindings\n- [crossterm](https://github.com/crossterm-rs/crossterm) - Cross-platform terminal library\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eStar this repo if you find it useful!\u003c/b\u003e\u003cbr\u003e\n  \u003ca href=\"https://github.com/faratech/htop-win\"\u003ehttps://github.com/faratech/htop-win\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaratech%2Fhtop-win","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaratech%2Fhtop-win","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaratech%2Fhtop-win/lists"}