your test agents will run away.
tman won't let them.
A single NativeAOT binary that supervises every process it launches — killing runs that have genuinely hung, capping time, memory, and CPU when you ask it to, and automatically reaping the orphans your LLM agents leave behind when they hang, get distracted, or your machine suspends.
get started
$ tman run --max-time 10m --max-mem 2g -- npm test # hangs? killed. leaks? culled. runner dies? orphan reaped next invocation.
--max-time / --stall
Wall-clock limits, plus stall detection that needs silence and an idle process tree — so quiet-but-working runs like go test survive. Exit 124 or 125.
--max-mem / --max-cpu
Opt-in resource culling. Breach the memory ceiling, measured across the whole process tree, or sustain high CPU, and the tree is killed — exit 126.
orphan reaper
Machine suspended? Agent crashed? Every tman command reaps children whose runner died and prunes expired records — and a bucket held by a dead runner is free the moment the kernel drops its lock. Nothing drains your system overnight.
--max-parallel
Resource-gated multi-process runs, scoped per name-and-directory bucket. Each run holds a slot file exclusively, so excess runs queue instead of stampeding your cores even when they launch at the same instant — and one repo never starves another.
--name dedup
Duplicate processes never start. Same-name runs in the same directory refuse by default, or --replace kills the old one and waits for it to hand the name back.
.tman.kdl aliases
Folder-level aliases with per-alias caps. Repo-root shims make ./test route through supervision transparently.
Claude Code hook
An agent that runs npm test directly bypasses your shims. Registered as a PreToolUse hook, tman rewrites those bare commands to run supervised — and never blocks one: anything uncertain passes through untouched.
install
# npm $ npm install -g @standardbeagle/tman # or the shell one-liner $ curl -fsSL https://raw.githubusercontent.com/standardbeagle/tman/main/install.sh | sh # prebuilt binaries for linux-x64/arm64, win-x64, osx-arm64/x64 on every release
adopt in a project
$ cd your-project $ tman init --shims --gitignore # auto-detects npm / pytest / go / make $ ./test # now supervised: 30m stall backstop, dedup + parallel gating
~3.8 MB native binary · no dependencies · cross-platform