Coding agents run tests constantly, from several sessions at once. The everyday problem isn t runaway processes — it s uncoordinated ones: four npm test invocations racing in one checkout, no way to tell them apart, no record of what any of them did. tman is a ~3.8 MB NativeAOT binary (zero runtime deps, linux/mac/windows) that gives every run a name, a slot, and a record: - Dedup locks — a second run of the same name refuses to start (or --replace kills the old one) - Resource gating — --max-parallel 2 queues excess runs instead of stampeding cores; locks and slots are scoped per project directory, so one repo never blocks another - Run records — every run leaves a JSON record (command, cwd, exit code, peak memory, caps), so you can audit afterwards what your agents actually ran - Backstops — wall-time, stall detection (silent and idle = hung, so quiet-but-busy go test keeps running), and opt-in memory/CPU culling of the whole process tree - Orphan reaping — no daemon; every tman command sweeps children whose runner died It hooks into Claude Code, Codex CLI, Gemini CLI, Cursor, opencode, Copilot CLI, and anything else that shells out — via pre-tool hooks that rewrite bare test/build commands, or repo-root shims (tman init --shims makes ./test supervised transparently). The hooks can never block: every failure path leaves the command exactly as written. npm install -g @standardbeagle/tman — MIT, prebuilt binaries on GitHub releases.