Skip to content
/ rig Public

all-in-one modern toolchain, CLI and meta-framework orchestrator, process and project manager for the Go lang & community

License

Notifications You must be signed in to change notification settings

divijg19/rig

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

build status latest release license

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

Bonus End-goals

  • Zig: Introduce zig cc as a linker or plausible build tool for all cgo and c, c++ code managed through rig.
  • Glyph: Integrate glyph * commands directly into rig.

Made with ❤️ for the Go community, and dedicated to Tarushi, this project's origin.

About

all-in-one modern toolchain, CLI and meta-framework orchestrator, process and project manager for the Go lang & community

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages