Check the health of your Windows or Linux installation, drivers, updates, battery health and much more!
pcHealth is a cross-platform toolkit for IT technicians and power users. It runs on Windows and Linux using a single PowerShell 7 codebase. The goal is to offer the same functionality everywhere: tools are shown or hidden based on the detected OS, and platform-specific actions (like updating packages) automatically use the right method for the current system.
| Platform | CLI | GUI | Minimum |
|---|---|---|---|
| Windows | ✅ | ✅ | Build 26200 (Windows 11 25H2) |
| Linux | ✅ | ❌ | Kernel 7.0 |
pcHealth targets current systems only and exits immediately below the minimum. Everything in that range boots UEFI with GPT, which is why the repair tools are UEFI-only and no MBR/CSM paths remain.
On image-based systems (Fedora Silverblue, Bazzite, Kinoite, openSUSE MicroOS) the tools that manage packages or boot files are hidden rather than reimplemented: /usr is read-only and the bootloader belongs to the deployment, so bootc and rpm-ostree own that work. The other 14 Linux tools -- all the diagnostics -- run normally.
- Windows release info: https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
- Linux kernel releases: https://www.kernel.org/
See SECURITY.md for version and end-of-life details.
Requirements: PowerShell 7+, run as Administrator (Windows) or root/sudo (Linux). Minimum: Windows build 26200 (11 25H2) or Linux kernel 7.0.
- Download or clone this repository.
- Run
Start.ps1from an elevated PowerShell 7 terminal:
.\src\CLI\Start.ps1Requirements: PowerShell 7 must be installed first (the launcher is a .ps1 file — there is no bash wrapper). Install it via your package manager, e.g. sudo pacman -S powershell on Arch/CachyOS or see aka.ms/powershell for other distros.
- Download or clone this repository.
- Run
Start.ps1elevated:
sudo pwsh src/CLI/Start.ps1On Windows, pcHealth includes a native desktop application built with WinUI 3 (.NET 10). It provides the same functionality as the CLI in a graphical interface. Minimum: build 26200 (Windows 11 25H2).
A Linux GUI is not yet available - WinUI 3 is Windows-only. A cross-platform alternative is in the works.
Build dependencies:
| Tool | Install |
|---|---|
| .NET 10 SDK | winget install Microsoft.DotNet.SDK.10 |
| Visual Studio 2026 | winget install Microsoft.VisualStudio.Community |
| Windows App SDK | Included via NuGet on build |
dotnet build "src/GUI/pcHealth/pcHealth.csproj" -c ReleaseOr open src/GUI/pcHealth/pcHealth.csproj in Visual Studio 2026.
All menus and option numbers are identical across platforms. Windows-only tools are hidden on Linux and vice versa, so numbers remain sequential with no gaps.
Main Menu
| Key | Option |
|---|---|
| 1 | Tools Menu |
| 2 | Programs Menu |
| 3 | Go to repository |
| 4 | Check for pre-releases |
| 5 | Exit |
Tools Menu
Option numbers are assigned sequentially at runtime per platform - Windows-only tools are not shown on Linux and vice versa.
| Function | Platforms | Notes |
|---|---|---|
| System Information | All | OS, kernel, firmware, TPM, RAM |
| Hardware Information | All | CPU, GPU, Storage (SMART), RAM, Chipset, sensors |
| Scan + Repair | Windows | SFC + DISM combined |
| Battery Report | Windows | Laptop only |
| Windows Update | Windows | Opens Windows Update settings |
| Disk Optimization | Windows | Opens dfrgui.exe |
| Disk Cleanup | Windows | Opens cleanmgr.exe |
| Short Ping Test | All | 4-packet ping to 8.8.8.8 |
| Continuous Ping Test | All | Continuous ping, Ctrl+C to stop |
| Traceroute to Google | All | tracert / traceroute |
| Reset Network Stack | Windows | DNS flush, Winsock reset, IPv4/IPv6 reset |
| Update all packages | Windows | winget |
| Update all packages | Linux | apt / dnf / pacman / zypper |
| Topgrade | Linux | Full system upgrade: packages, flatpak, VS Code extensions, helm, uv, and more |
| Battery Report | Linux | Laptop only - health, cycles, draw from sysfs |
| Scan + Repair | Linux | Package integrity vs. package database |
| Disk Optimization | Linux | fstrim on SSDs; Linux needs no defragmenting |
| Firmware Update | Linux | fwupd / LVFS - BIOS, dock, SSD firmware |
| Boot Repair | Linux | systemd-boot / GRUB / Limine, UEFI - care |
| Disk Cleanup | Linux | Package cache, journal logs, unused Flatpak runtimes, thumbnail cache |
| Restart Audio | Linux | Restarts PipeWire or PulseAudio user services |
| Reset Network Stack | Linux | Restarts NetworkManager, flushes DNS cache |
| Update HP Drivers | Windows | HP Image Assistant (HP devices only) |
| Restart Audio Drivers | Windows | Restarts audio services |
| Open Battery Report | Windows | Opens previously generated report |
| Open CBS Log | Windows | Opens C:\Windows\Logs\CBS\CBS.log |
| Get Ninite | Windows | Downloads Edge, Chrome, VLC, 7-Zip |
| Windows License Key | Windows | OA3 + DigitalProductId registry decode |
| BIOS Password Recovery | All | Links to bios-pw.org - credits: @bacher09 |
| Boot Repair | Windows | CHKDSK + SFC + BCDBOOT, UEFI - use with care |
| Shutdown / Reboot / Log Off | All | |
| Repair Winget | Windows | via winget-install by @asheroto |
| View System Logs | Linux | journalctl errors/warnings, failed units |
Programs Menu - Windows
| Key | Program | Install method |
|---|---|---|
| 1 | HWiNFO64 | winget |
| 2 | HWMonitor | winget |
| 3 | Malwarebytes AdwCleaner | winget |
| 4 | CrystalDiskInfo | winget |
| 5 | CrystalDiskMark | winget |
| 6 | Prime95 | winget |
| 7 | Windows PowerToys | winget |
Programs Menu - Linux
Installed packages are marked [installed] in the menu.
| Key | Program | Install method |
|---|---|---|
| 1 | htop | apt / dnf / pacman / zypper |
| 2 | iotop | apt / dnf / pacman / zypper |
| 3 | smartmontools | apt / dnf / pacman / zypper |
| 4 | stress-ng | apt / dnf / pacman / zypper |
| 5 | nmap | apt / dnf / pacman / zypper |
Contributions are welcome. Follow the existing naming conventions: Verb-Noun.ps1 for tools, consistent Write-PcOption / Set-PcTheme calls for UI.
- New tool scripts go in
src/CLI/tools/and must be registered insrc/CLI/menus/Tools.ps1with appropriatePlatformstags. - Linux-only tools go in
src/CLI/tools/linux/. - Open an issue before starting larger changes to avoid duplicate work.
See SECURITY.md for responsible disclosure of vulnerabilities.
Questions or feedback? Reach out on Discord: REALSDEALS
Or open an issue on GitHub.
Licensed under GNU GPL v3. You are free to use this project, but you may not remove the attribution or re-license it.
This repository consolidates and replaces several earlier pcHealth-related projects. pcHealth is the original project and is now the canonical repository: related repositories have been migrated back into this repo and are considered deprecated. Functionality from the listed projects has been merged here where appropriate.
- pcHealth - original project (batch-based)
- pcHealthPlus - PowerShell-based toolkit (deprecated; migrated)
- pcHealthPlus-VS - Visual Studio variant (deprecated; migrated)
- pcHealth-GUI - Python GUI variant (deprecated; migrated)
- Win_Scan - standalone Windows scanning utility (deprecated; migrated)


