Recommended tman settings, one tool at a time

The right caps depend on what the command actually does. A cold Rust build is silent for minutes and must not be mistaken for a hang. A Playwright suite leaks browsers and binds a port. A dev server is designed never to exit, so a wall-clock limit on it is guaranteed to fire and guaranteed to mean nothing. One page per tool, with the reasoning behind each number.

Every number below is a starting point derived from how the tool behaves, not a measurement of your machine. Each guide ends with the one command that turns it into a real one.

Every tool at a glance

toolstallmax-timemax-memmax-parallel
Vitest10m15m40962
Jest10m20m40962
pytest10m20m40962
go test15m20m2
dotnet test15m20m2
cargo test30m45m1
Playwright15m30m81921
RSpec10m20m40961
Gradle & Maven15m30m81921
ESLint5m10m4
Ruff5m5m4
Biome5m5m4
golangci-lint10m15m61442
TypeScript (tsc)15m15m81922
Vite & webpack10m20m2

Unit and integration test runners

Browser and end-to-end suites

Linters, formatters, and typecheckers

Compilers and bundlers

First, attach tman to your agent

Caps only apply to commands that actually run under tman. If your test runs are still being issued bare by an AI agent, start with theper-agent setup guides — Claude Code, Codex CLI, Gemini CLI, Cursor, Antigravity, Kimi, opencode, and Copilot CLI each attach differently.

Frequently asked

What is the difference between --stall and --max-time?

--stall asks 'is this process dead?' and --max-time asks 'has this taken too long?'. A stall kill needs no output *and* no CPU, IO, or kernel IO-wait activity for the whole window, so a quiet-but-busy compile survives it. Only --max-time can bound a run that is genuinely working but will never finish, such as a wait on a peer that never answers.

Why does tman set no default memory or CPU ceiling?

Because a build is supposed to saturate cores and can legitimately want several gigabytes. Culling one out of the box would break `tman run -- vite build` in a project with no config. --max-mem and --max-cpu are opt-in, and worth opting into where a real leak mode exists — worker pools, browser fleets, whole-program analysers.

What do exit codes 124, 125, and 126 mean?

124 is a wall-clock timeout (--max-time), 125 is a stall (--stall), and 126 is a resource cull (--max-mem or --max-cpu). All three are findings rather than flakes: the right first response is to ask why the cap fired, not to widen it.

Should a lint alias and a test alias share a parallel limit?

No, and they do not have to. Slots are scoped per bucket — the alias name plus the directory governing the run — so a lint alias can hold four slots while the test alias in the same repository holds two, without either affecting the other.