Clone a repo. Run tasks. No setup required.
rnr (pronounced "runner") is a cross-platform task runner that works instantly on any machine. No Node.js. No Python. No global installs. Just clone and go.
git clone your-repo
./rnr build # It just works! ๐| Tool | Requires |
|---|---|
| npm scripts | Node.js installed |
| Makefile | Make installed (painful on Windows) |
| Just | Just installed |
| Task | Task installed |
| rnr | Nothing! โ |
rnr binaries live inside your repo. Contributors clone and runโzero friction.
Linux:
curl -fsSL https://github.com/CodingWithCalvin/rnr.cli/releases/latest/download/rnr-linux-amd64 -o rnr
chmod +x rnr
./rnr initmacOS (Intel):
curl -fsSL https://github.com/CodingWithCalvin/rnr.cli/releases/latest/download/rnr-macos-amd64 -o rnr
chmod +x rnr
./rnr initmacOS (Apple Silicon):
curl -fsSL https://github.com/CodingWithCalvin/rnr.cli/releases/latest/download/rnr-macos-arm64 -o rnr
chmod +x rnr
./rnr initWindows (PowerShell):
Invoke-WebRequest -Uri "https://github.com/CodingWithCalvin/rnr.cli/releases/latest/download/rnr-windows-amd64.exe" -OutFile "rnr.exe"
.\rnr.exe initDuring init, you'll choose which platforms your project should support:
Which platforms should this project support?
[x] linux-amd64 (760 KB)
[ ] macos-amd64 (662 KB)
[x] macos-arm64 (608 KB) <- current
[x] windows-amd64 (584 KB)
[ ] windows-arm64 (528 KB)
Selected: 1.95 MB total
your-repo/
โโโ .rnr/
โ โโโ config.yaml # Tracks configured platforms
โ โโโ bin/ # Platform binaries (only selected ones)
โโโ rnr # Unix wrapper script (auto-detects platform)
โโโ rnr.cmd # Windows wrapper script (auto-detects arch)
โโโ rnr.yaml # Your task definitions
./rnr build # Run the 'build' task
./rnr test # Run the 'test' task
./rnr --list # See all available tasksAfter cloning a repo with rnr configured:
git clone your-repo
./rnr build # It just works! ๐No installs. No setup. The binaries are already in the repo.
Tasks are defined in rnr.yaml at your project root.
build: cargo build --release
test: cargo test
lint: npm run lintbuild:
description: Build for production
dir: src/backend # Working directory
env:
NODE_ENV: production # Environment variables
cmd: npm run buildci:
description: Run CI pipeline
steps:
- task: lint
- task: test
- task: buildbuild-all:
description: Build all services
steps:
- cmd: echo "Starting builds..."
- parallel:
- task: build-api
- task: build-web
- cmd: echo "โ
All done!"Subdirectories can have their own rnr.yaml:
# Root rnr.yaml
api:build:
dir: services/api
task: build # Runs 'build' from services/api/rnr.yaml| Command | Description |
|---|---|
rnr <task> |
Run a task |
rnr --list |
List available tasks |
rnr --help |
Show help |
rnr --version |
Show version |
rnr init |
Initialize rnr in current directory |
rnr upgrade |
Update rnr binaries to latest |
# rnr.yaml
# Simple commands
lint: cargo clippy
format: cargo fmt
# Full tasks
build:
description: Build release binary
env:
RUST_LOG: info
cmd: cargo build --release
test:
description: Run all tests
cmd: cargo test --all
# Multi-step workflow
ci:
description: Full CI pipeline
steps:
- task: format
- task: lint
- task: test
- task: build
# Parallel builds for monorepo
build-all:
description: Build all services
steps:
- parallel:
- dir: services/api
cmd: cargo build --release
- dir: services/web
cmd: npm run build
- cmd: echo "๐ Build complete!"
# Deploy workflow
deploy:
description: Deploy to production
steps:
- task: ci
- cmd: ./scripts/deploy.sh| Platform | Architecture | Status |
|---|---|---|
| Linux | x86_64 | โ |
| macOS | x86_64 | โ |
| macOS | ARM64 (Apple Silicon) | โ |
| Windows | x86_64 | โ |
| Windows | ARM64 | โ |
- Task dependencies (
depends: [build, test]) - Conditional execution (
if: ${{ env.CI }}) - Watch mode (
watch: [src/**/*.rs]) - Variable interpolation (
${{ vars.version }}) - Caching / incremental builds
- Interactive task picker
See DESIGN.md for the full roadmap.
Contributions are welcome! Please read our contributing guidelines and submit PRs.
# Clone the repo
git clone https://github.com/CodingWithCalvin/rnr.cli
cd rnr.cli
# Build
cargo build
# Run tests
cargo test
# Run locally
cargo run -- --helpMIT License - see LICENSE for details.
Made with โค๏ธ by CodingWithCalvin