rig
The all-in-one modern toolchain, task runner, and developer environment for Go.
rig = Cargo’s clarity and reliability + Bun’s DX + uv's hygiene + Go’s simplicity and no-nonsense ideology

rig is an opinionated project orchestrator: it helps you define tasks, pin dev tools, and compose build profiles via a single rig.toml. It complements the Go toolchain; it does not replace go build, go test, or go mod.
Why Rig?
- One manifest:
rig.toml is the source of truth for project tasks, tools, and build intent.
- Project-local tooling: installs pinned tools into
.rig/bin to avoid global conflicts.
- Reproducible tooling:
rig sync writes rig.lock (deterministic, schema=0) and uses it to install and verify tools.
- Fast parity checks: also writes
.rig/manifest.lock (a hash cache) so commands can quickly detect drift.
- Ergonomic DX: dry-runs, task listing, JSON output (where supported), and sensible
init templates.
Install
Via Shell (Recommended for CI/Mac/Linux)
curl -fsSL https://rig.sh/install | sh
Via Go Install
go install github.com/divijg19/rig@latest
Ensure $GOPATH/bin is in your system's PATH.
Quick Start
cd my-go-project
# scaffold a rig.toml
rig init
# install tools declared in [tools] (writes rig.lock + .rig/manifest.lock)
rig sync
# discover tasks
rig run --list
# run a task
rig run test
Example tooling pins:
[tools]
golangci-lint = "1.62.0"
github.com/vektra/mockery/v2 = "v2.46.0"
Command Reference
| Command |
Description |
rig init |
Generate a rig.toml (interactive or flags). |
rig run <task> |
Run a task from [tasks] (aliases: rig r, rig ls). |
rig build |
Compose and run go build using optional profiles. |
rig tools |
Manage tools declared in [tools] (sync/check/outdated). |
rig sync |
Shortcut for rig tools sync. |
rig check |
Shortcut for rig tools sync --check. |
rig outdated |
Shortcut for rig tools outdated. |
rig x |
Run a tool ephemerally (installs into .rig/bin if needed). |
rig doctor |
Verify local environment and toolchain sanity. |
rig setup |
Convenience installer for [tools] (similar to sync). |
Documentation
Made with ❤️ for the Go community, and dedicated to Tarushi, this project's origin.