Repository navigation
Releases: Shalom-Karr/sktask
Release list
v0.1.0
A task manager for Windows that answers when PowerShell cannot. Single 230 KB executable, zero dependencies, no installer.
Why
Written during a night diagnosing a machine that kept freezing. At 87% RAM with 873 processes, Get-Process took over two minutes to return and Get-CimInstance failed outright with "Call cancelled". The diagnosis that mattered — 350 orphaned processes holding 3.7 GB — was missed three times because the output had to be scraped from formatted tables.
sktask starts in milliseconds regardless of system load. No WMI, no .NET, no interpreter — raw kernel32/psapi/user32 only.
Usage
sktask what is running, biggest first
sktask -g where is my memory actually going
sktask -c -n 10 what is burning CPU right now
sktask --hung is the shell hung, or actually dead
sktask -f chrome every chrome process
sktask -k 13624 kill one process by PID
sktask -k chrome --force kill every chrome process
sktask -j JSON, for scripts and agents
sktask -w watch mode, 2s refresh
sktask --help full help
Notable
--hung distinguishes a hung process from a crashed one, via EnumWindows + IsHungAppWindow. That distinction changes the fix entirely and nothing in the portable process APIs exposes it.
Kills are verified. TerminateProcess only requests termination and returns immediately, so trusting its return value reports success for processes still running. sktask re-enumerates afterwards and reports what actually died.
-j reports process_count and listed_count separately, because conflating them made filtered output claim the machine had one process on it.
Grouping includes a Diagnostic litter category for taskkill, tasklist and sktask itself — orphaned diagnostic processes hide easily in a flat list.
Killing explorer.exe does not restart it. Measured, not assumed: 75 seconds of polling after a taskkill showed no shell at all. Windows relaunches Explorer after a crash, not a deliberate kill. Pass --restart-shell if you want it back.
Install
Download sktask-windows-x64.exe and put it on your PATH. Unsigned, so SmartScreen will warn — More info, then Run anyway. Or build from source: cargo build --release, no network required.
Limitation
Protected processes — MsMpEng, parts of System — cannot be opened by a non-elevated caller, so their memory is not counted. The summary line reports how many were skipped; run elevated for a complete picture.
Licence
AGPL-3.0 with the Commons Clause. Source-available, free for personal and non-commercial use.