jj run executes commands across changes
Introduced 2026-07-02 · score 0.95
HOW TO USE IT
When you need to check or fix code across selected changes, run `jj run` with the command after `--`; it checks out each revision in an isolated working copy and amends it with resulting changes, rebasing descendants by default. Specify revisions with `-r`/`--revision` or use the configured `revsets.run` selection.
jj run -- cargo check --all-featuresjj run -- cargo fixjj run -r <REVSET> -- <COMMAND> [ARGS...]WHY THIS HELPS
Check or fix code across a set of changes, including changes that may update files or produce conflicts.
REQUIREMENTS AND LIMITATIONS
- Version: v0.43.0
- COMMAND [ARGS...] (required): Command and arguments to run across each selected revision; use `--` to pass arguments that start with `-`.
- -r, --revision <REVSETS> (alias: --revisions): Select revisions to change. If omitted, `revsets.run` config determines the selection.
- -j, --jobs <N>: Set parallel process count; overrides `run.jobs`, defaulting to 1 when neither is set.
- --root: Run from each revision's working-copy root instead of the subdirectory where `jj run` was invoked.
- --clean: Delete each reused working copy before running; each revision starts from a freshly checked-out tree.
- --restore-descendants: Preserve descendants' content when rebasing them; default behavior rebases descendants and propagates the diff.
FIRST-PARTY EVIDENCE
- https://github.com/jj-vcs/jj/releases/tag/v0.43.0
- https://github.com/jj-vcs/jj/blob/v0.43.0/cli/src/commands/run.rs
Check the installed version and the source before using it. Entry JSON