Overview
Rune is a script runner for JavaScript and TypeScript monorepos. Commands are declared once in a
rune.config.ts at the repository root. Each package's package.json references a command by
name, so changing a flag is one edit at the root instead of one edit per package.
The four pieces
Scope
Rune is a script registry and a runner. Within one package it can order scripts, run them side by side, retry them and time them out. It does not do the things a build system does:
A repository that needs those keeps the build system it already has, and points it at Rune. The setup for that is on Turborepo and Nx.
Reading order
Add Rune to a repository and write the first config.
Your first scriptOne command, run from a package five directories down.
Running several scriptsChain scripts, run them side by side, or put a prerequisite in front of one.
Flaky and slow scriptsRetries for intermittent failures, time limits for processes that hang.
Adopting Rune in a monorepoMove existing package.json scripts into one config, package by package.
Turborepo and NxThe one configuration change a build system needs when Rune arrives.
Reference
The config reference covers every field a script entry accepts. The CLI reference covers every command and flag. Exit codes is the page to read before wiring Rune into CI.