t

task

v0.2.0library

Ultra-light Windows Task Manager (TUI + JSON) written in Odin

0 stars0 forksMITupdated 6 hours ago
Open repo

task — ultra-light Windows Task Manager (Odin)

Keyboard-first TUI + headless JSON Task Manager for Windows 11.

  • Zero external deps — only Odin core/base + OS system DLLs
  • Low cost — ~1 Hz refresh by default, preallocated buffers, self-overhead shown
  • JSON mode — scripts/agents can query and control without opening the TUI

GitHub: aquaticcalf/task


Install (releases)

MSI (recommended)

Download task-*-windows-x64.msi from Releases, run it (admin).
Installs to C:\Program Files\task and adds it to the system PATH.

msiexec /i task-0.1.0-windows-x64.msi
:: uninstall:
msiexec /x task-0.1.0-windows-x64.msi

One-liner (per-user, no admin)

irm https://github.com/aquaticcalf/task/releases/latest/download/install.ps1 | iex

Installs to %LOCALAPPDATA%\Programs\task and updates user PATH.
Uninstall: download uninstall.ps1 from the same release, or delete that folder.

Portable ZIP

Unzip task-*-windows-x64.zip and put task.exe on your PATH.

Scoop

After a release (manifest is attached as task.json):

scoop install https://github.com/aquaticcalf/task/releases/latest/download/task.json

Build from source

build.bat
:: or
odin build . -out:task.exe -o:speed -subsystem:console

Requires Odin on PATH (Windows 10/11).

Package locally (zip + optional MSI)

# zip + standalone exe
.\scripts\package-release.ps1 -Version 0.1.0

# also build MSI (needs .NET SDK + WiX tool)
.\scripts\package-release.ps1 -Version 0.1.0 -Msi

Artifacts land in dist/.


Releases

Kind When Tag Notes
Beta (prerelease) Every green push to master beta Rolling; MSI/zip named task-beta-*
Stable You cut a version vX.Y.Z (e.g. v0.1.1) Release workflow

Stable release

git tag v0.1.2
git push origin v0.1.2

Or Actions → Release → Run workflow.

Beta (automatic)

Push to masterCI job beta updates the rolling prerelease:

https://github.com/aquaticcalf/task/releases/tag/beta

PRs only build/test (no beta publish).


TUI

task
Key Action
17 Tabs: Processes, Performance, Details, Services, Startup, Users, App history
/ j Move selection
/ Filter (Esc cancel)
k Kill process (confirm y)
t Kill process tree
e Efficiency mode (EcoQoS)
o Open file location in Explorer
s / r Cycle sort column / reverse
p Pause refresh
[ ] Slower / faster refresh
Space Start/stop selected service
d Disable selected startup entry
F5 Force refresh
q Quit

JSON API (headless)

task --json help
task --json summary --seconds 1
task --json processes --sort cpu --limit 20
task --json process --pid 1234
task --json performance --seconds 2
task --json services
task --json startup
task --json users
task --json kill --pid 1234
task --json kill --pid 1234 --tree
task --json priority --pid 1234 --class high
task --json efficiency --pid 1234 --enable true
task --json affinity --pid 1234 --mask 0xF
task --json service --name Spooler --action stop
task --json startup-disable --location HKCU\Run --name Foo
task --json open-location --pid 1234
{"ok":false,"error":"..."}

Use --seconds N (1–10) for multi-sample CPU % accuracy.

Layout

main.odin / collect_*.odin / tui / json_api
installer/Package.wxs     MSI (WiX)
scripts/package-release.ps1
scripts/build-msi.ps1
scripts/install.ps1       per-user installer
scripts/uninstall.ps1
.github/workflows/ci.yml
.github/workflows/release.yml

Metrics sources

Area Implementation
GPU % (system + per-process) PDH \GPU Engine(*)\Utilization Percentage (same family Task Manager uses)
Disk % PDH \PhysicalDisk(_Total)\% Disk Time (fallback: process IO sum)
Temperature PDH \Thermal Zone Information(*)\Temperature + WMI MSAcpi_ThermalZoneTemperature
Fan WMI Win32_Fan.DesiredSpeed when firmware exposes it
Per-process network GetExtendedTcpTable / UDP + GetPerTcpConnectionEStats byte counters
App history Session aggregate by image: lifetime CPU, TCP bytes, GPU Engine, memory
Protected processes Enables SeDebugPrivilege when available; admin still required for some targets

Values may still be n/a on hardware that does not publish ACPI/WMI sensors — that is a platform gap, not a missing code path.

License

MIT © aquaticcalf

Package Info
Version
v0.2.0
License
MIT
Author
@aquaticcalf
Type
library
Forks
0
Created
7 hours ago
Updated
6 hours ago
Health
maintained
has releases
has readme
has license
Activity
last 56 weeks