A CLI tool born from frustration with slow CI builds in large monorepos.
Features
- Parallel execution — runs independent tasks concurrently with configurable concurrency limits
- Dependency graph — DAG-based task ordering, only runs what’s needed
- Smart caching — content-addressable cache skips tasks when inputs haven’t changed
- Simple config — YAML task definitions, no DSL to learn
Why Go
Single binary distribution, fast startup, excellent concurrency primitives. Users download one binary — no runtime dependencies.
Usage
# taskr.yaml
tasks:
lint:
cmd: eslint src/
inputs: ["src/**/*.ts"]
test:
cmd: pytest tests/
deps: [lint]
inputs: ["src/**/*.py", "tests/**/*.py"]
build:
cmd: docker build -t app .
deps: [test]
taskr run build # runs lint → test → build, skips cached steps