This keeps monorepo usage explicit: point
--cwd at the app, while snapshots and budgets are stored
at the detected workspace root.
analyze
Analyse a production build and record a snapshot.diff
Compare this build against a stored snapshot. Exits non-zero if no baseline is found.ref accepts a build id, a git SHA, a branch name, or HEAD~3. Defaults to HEAD~1.
ci
Check automatic regressions and configured budgets, then print a PR comment. Exits non-zero on a breach.main.
Without .perf/budgets.json, rendering-mode drops, newly uncached reads, and shell disappearance
still fail when the baseline is comparable. A budget file adds byte, growth, and shell-ratio
ceilings. See regressions and
budgets.
If no baseline exists, crust analyzes and snapshots the current build but warns that regressions
cannot be detected. Absolute ceilings still apply.
report
Write a self-contained HTML report.manifest
Write the snapshot where the in-app panel can fetch it.history
Sync snapshots with the orphanperf-history branch.
push reports and exits cleanly when the remote rejects it — a fork PR’s token is read-only on the
base repository, and that is not a failure worth breaking the check over.
prune
Apply the retention ladder.synthetic
Measure routes against a running deployment. Needs Playwright as an optional peer.list
List stored snapshots, newest first.Exit codes
Any unsupported project — Next outside 15–16, a dev-only build, a Pages Router app — throws with a
message naming the reason rather than emitting numbers it cannot stand behind.