Skip to content

Commands

Arttu Jantunen edited this page Nov 2, 2026 · 1 revision
parityrun                                  set up (init) and record what isn't yet, then show the scenarios, routes,
                                           code run and every port's parity, and the command to run next
parityrun init [PATH] [--force] [--no-start]
                                           set parityrun up in an existing app's folder (writes parityrun/)
parityrun capture [NAME] [--port 8000] [--impl NAME] [--no-browser]
                                           use the app in a browser; what you do becomes scenarios/NAME.yaml
parityrun routes                           read the reference's routes from its code into golden/endpoints.json
parityrun record [scenario ...]            run the reference twice per scenario, save golden/<name>/
parityrun check [--quick|--slow] [--impl NAME] [scenario ...]
                                           compare; prints each failing comparison and the parity %, writes
                                           out/report-<impl>.json, keeps the run in out/<impl>/<name>/
parityrun coverage                         the routes no scenario calls, and the PHP lines no scenario ran
parityrun port --to typescript|javascript|rust|ts|js|rs [--agent claude|"COMMAND"] [--into FOLDER] [--name NAME]
               [--turns 20] [--patience 3] [--turn-minutes 60] [--setup-only]
                                           port the app with your AI tool until check passes; logs out/port-log.jsonl
parityrun --version                        the installed version

Finding the project

Every command takes --project FILE first; without it, $PARITYRUN_PROJECT, else parityrun_project.py here or parityrun/parityrun_project.py. With none of them, every command sets parityrun up first (init).

Recording on the way

The bare parityrun, check and port first record the scenarios that have no recording yet. A scenario you changed is recorded again only by parityrun record <name>.

Exit codes

Command 0 otherwise
check every comparison passes 1
record every scenario recorded 1: a scenario's two runs differed (it is not saved)
port parity 100 % 1: stopped short (what is red is printed); 2: the AI tool changed the original app

See Getting Started for init, capture, routes and coverage, and Porting with an AI Tool for port.

Clone this wiki locally