This is an early beta, tested on exactly one machine so far. One Intel + NVIDIA desktop, one Windows build, one set of hardware. It is very likely something reads wrong or looks broken on yours.
That's the point of releasing it — please open an issue when it does. Screenshot plus what you expected is enough. There is a Discord but it's dead; issues get read, Discord does not.
Your PC is probably slower than it should be, and nothing tells you why.
Not because a part is weak — because something is switched off, plugged into the wrong slot, throttling itself, or quietly phoning home. Windows will never mention any of it. Neither will the benchmark you ran, or the tool that just prints temperatures.
Better Taskmgr looks for those things, tells you what it measured, what it expected, how sure it is, and what to do about it.
| 🔴 | Half the CPU threads switched off | 6 cores / 6 threads, hardware offers 12 — a firmware setting costing 15-30% in anything threaded |
| 🔴 | Graphics card fed at half width | negotiated x8 of the x16 it supports, confirmed twice from independent sources |
| 🔴 | Both memory modules on one channel | the exact pattern that leaves a system in single channel — roughly half the bandwidth |
| 🔴 | A drive sensor at its thermal limit | 87 °C on sensor 2 while the composite the drive advertises reads 59 °C |
| 🟠 | System volume nearly full | 9.1% free, below where NTFS starts placing large files badly |
| 🟠 | Three chipset devices with no driver | one of them is the bus the memory modules answer on, which is why their specs can't be read |
| 🟠 | 8.7% of TCP segments being resent | while the adapter's own error counters sat at a clean zero |
| 🟡 | Four privacy features actively reporting | activity history, typing collection, web search, Recall — each with what it sends and how to stop it |
Every one of those is a real finding from a real desktop that its owner considered fine.
The core of the thing. An audit across processor, memory, graphics, storage, network, devices and system policy — where every finding argues its case:
🔴 Simultaneous multithreading is off ·
CPUCERTAINMeasured — 6 cores / 6 threads Expected — 6 cores / 12 threads
Half of the hardware thread capacity is unavailable. Heavily threaded work — compiling, rendering, encoding — loses roughly 15 to 30% throughput.
How to fix
- Reboot into UEFI setup, usually Del or F2 during POST.
- Find Hyper-Threading or SMT Control, typically under Advanced → CPU Configuration.
- Set it to Enabled or Auto, save and exit.
- If it was turned off deliberately for latency or thermals, archive this instead.
[ I know, this is on purpose ]
Confidence is stated on every one: certain, likely, speculative or suggestion. Anything you decide is deliberate goes to the archive with one click, stops counting against the score, and stays gone — stored by finding id, so rewording a message in a later version can't resurrect something you already dealt with.
A 1-to-10 score computed as a proportion of what could be cleaned rather than by counting penalties, so a partly tidied machine reads differently from a stock one.
Five categories, and the last one matters as much as the first:
| 🔴 sending something somewhere | activity history, typing collection, Recall, telemetry |
| 🟠 no purpose on a configured machine | Retail Demo service, Maps manager, Start suggestions |
| 🟡 most people never touch these | OneDrive, Copilot, app launch tracking |
| 🟢 useful to most people | Search indexing, SysMain, Print Spooler |
| ⚪ leave these alone | Windows Update, Defender |
Each entry says what it does, what you lose by removing it, and the best way to do it.
That last category is there on purpose. Most debloat guides tell you to disable Search indexing, SysMain and Windows Update — and every one of those costs more than it saves.
Diagnosis needs data, so it reads more of it than anything else here and puts it on screen instead of hiding it behind a "details" button.
every per-core strip is its own history · the overclock verdict states its coverage rather than hedging
coloured by the quantity measured, so a mixed list scans without reading a single unit
| ⚡ Processes | Grouped by executable with real icons from the binaries. Per-process CPU from cycle counters — sums to exactly 100% by construction, unlike Task Manager, which will happily report 100% GPU for Settings, 70% for Discord and 40% for a browser at the same time. Apps split from background the way the shell does it, by walking top-level windows. |
| 📊 Performance |
CPU — per-core history, live clocks, caches with real sharing counts, full
instruction set inventory, socket details from firmware, Windows power-plan card. GPU — per-engine load, VRAM history, PCIe link, throttle reasons, per-process contexts. Memory — the kernel's own page lists, standby across all eight cache priorities, per-module detail, empty slots named. Disks — NVMe health log without elevation: endurance, spare blocks, media errors, unsafe shutdowns, every temperature sensor. Network — throughput, full TCP counters, networks this machine has used, connections by owning process. |
| 🌡 Sensors | Every sensor the machine will answer for, coloured by the quantity it measures — and a named reason for every one it won't. |
| 💻 System | OS, licensing, security policy, firmware, chassis, and the development toolchain found by reading the disk rather than running anything. (And yes, there is a setting that renames Microsoft to Microslop everywhere. It is on in one of the screenshots above.) |
| ⚖ Balance | Which component the rest is waiting on, measured while it works rather than calculated from part numbers. Runs only while switched on — a bottleneck measured over an idle desktop answers the wrong question. |
Most tools have one failure mode: when they can't read something they print a zero, a dash, or nothing — and you can't tell "this hardware doesn't have that" from "I wasn't allowed to look".
That distinction is the entire point here.
⚠ Module specifications cannot be read
Measured: the system management bus controller has no driver installed.
Declared XMP profiles, timings and the module temperature sensor all live on chips reached over that bus. With no driver on it they're unreachable — and running as administrator does not change that. Install the chipset package from the board vendor, not from Windows Update.
And when it can't be certain, it says what certainty would take:
Overclocked or underclocked? —
FACTORY STOCKEverything at factory across 4 checked values. 1 unanswered, not enough to change the answer.
Why we can't fully tell: every logical processor reports exactly 3192 MHz. That's either the machine genuinely sitting at nominal, or the power management API repeating the spec sheet — and the two can't be told apart from here.
Not does it fit. Any socket has a faster part somewhere in its range, and recommending it regardless of whether the machine is even waiting on that part is how people spend money for nothing.
- 🆓 free fixes rank above purchases — recommending a part while the machine runs at half its width would be malpractice
- 🚫 a processor that fits and wouldn't be felt shows as
NOT WORTH ITrather than quietly omitted, because that's an answer somebody came here for - 🛑 where a socket carried more than one incompatible family, the recommendation is withheld until the board is confirmed — that's how people buy a CPU that won't POST
- 🎮 if the graphics card is the measured limit, it says plainly that money spent on a processor buys frames nobody would see
Starts with no prompt and stays useful. About a third of what a machine can report needs an administrator token, and a button in the title bar restarts with one. It disappears once there is one.
| without | with | |
|---|---|---|
| sensor readings | 0 |
139 |
| CPU temps, voltages, package power | — | all |
| per-core clocks | 3192 MHz (nominal) |
4290 MHz (measured) |
| SMART on the SATA drive | 0 attrs |
10 attrs |
| stored network names & gateways | refused | readable |
Elevation changes verdicts, not just blank fields. Unelevated, the audit was ready to warn that Turbo Boost might be disabled — 3192 MHz is exactly the base clock. Elevated it measures 4290 and the warning correctly disappears.
Some things elevation doesn't fix, and it says which: a hypervisor filtering CPUID, a driver refusing its own tuning offsets, a bus with no driver bound to it.
A tool that hunts spyware has no business being any.
No telemetry. No crash reporting. No update ping. No analytics. The network tab reads counters — it does not open sockets. Settings and archived findings live in one folder under your roaming profile, and deleting that folder is a complete uninstall.
There's a switch reserved for receive-only driver version checks. It's off, it's labelled
NOT USED YET, and it's documented here rather than added quietly later.
Grab the exe and run it. Windows 10 or 11, 64-bit, nothing else to install — no runtime, no installer, no service left behind.
# or build it yourself
dotnet publish src/BetterTaskmgr/BetterTaskmgr.csproj -c Release -o publishheadless harness — prints everything the collectors can see
Every number in this README came out of it rather than being eyeballed. It's also the fastest way to attach useful detail to a bug report:
dotnet publish src/BetterTaskmgr.SelfTest/BetterTaskmgr.SelfTest.csproj -c Release -o selftest⚠ Its output contains drive serials, your Windows product ID, MAC addresses and account names — read it before pasting it anywhere.
no NVIDIA card? The GPU tab still works — per-engine counters come from the display driver and work on anything. NVIDIA-specific detail needs NVML, which ships with their driver, and the tab says so instead of showing zeros.
AMD system? Untested. Probably rough. Issues welcome.
GPL-3.0 — see LICENSE. Copyright © Chaarkor.
The licence requires attribution to survive redistribution, and the build enforces it: three independent checks refuse to compile a binary with the branding stripped, and the program verifies itself at startup.
This isn't obfuscation — the source is right here and anyone who reads it can defeat it. It exists so that removing an attribution you were licensed to keep has to be a deliberate act rather than a careless one.
built on:
| Avalonia | MIT — every window, control and style |
| LibreHardwareMonitorLib | MPL-2.0 — the ring0 bridge behind CPU temps, voltages and board sensors |
| Inter | SIL OFL 1.1 — the typeface |
| NVML | ships with the NVIDIA driver, called from the installed copy |
✦ if a number in here is wrong, that's a bug worth reporting —
being wrong is the one thing it isn't allowed to be ✦

