Skip to content

Releases: Shalom-Karr/sktask

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 22:45

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.