Align scans a monorepo and detects structural or configuration misalignment across projects.
Define rules in a single align.toml at the repository root. Each rule targets directories via glob patterns and checks for file presence, file contents, or structured fields inside JSON, YAML, and TOML files.
Download a pre-built binary from Releases:
# Linux / macOS
curl -fsSL https://github.com/skooch/align-internal/releases/latest/download/align-$(uname -m)-$(uname -s | tr A-Z a-z).tar.gz | tar xz
sudo mv align /usr/local/bin/Or build from source (requires Zig 0.15.2+):
zig build -Doptimize=ReleaseSafePre-built binaries are available for:
- Linux (x86_64, aarch64) -- static musl binaries
- macOS (x86_64, aarch64)
- Windows (x86_64, aarch64)
-
Install the binary (see above).
-
Generate a starter config:
align initThis creates
align.tomlwith commented-out examples. Edit it to add your rules (see Configuration). -
Run:
alignExit code
0means all rules passed. Exit code1means at least one rule failed.
align [COMMAND] [OPTIONS]
Commands:
init Generate a starter align.toml
Options:
-c, --config <PATH> Config file path (default: align.toml)
-f, --format <FORMAT> Output format: text, json (default: text)
-q, --quiet Only show failures and summary
-V, --version Show version
-h, --help Show this help message
PASS must-have-package-json services/api package.json exists
FAIL must-have-engines services/auth package.json missing field "engines"
Results: 5 passed, 1 failed, 6 total
- Configuration --
align.tomlformat reference - Check Types -- every check type with examples
- Variables and References --
var:andfile:syntax - Examples -- real-world monorepo configs