Documentation

Runrail Local documentation.

Start with requirements, install, the real review command, exact output files, safety boundaries, and troubleshooting.

00 / Access and download

Existing subscribers download from the protected console.

New subscriptions are currently paused. Prospective buyers can review availability and the product boundary before checkout reopens. Existing subscribers use the protected console to download an archive and its matching checksum file before following the installation steps below.

01 / Quickstart

Two verified formats, one device-bound local app.

# Windows PowerShell: refuse a checksum mismatch
$expected = ((Get-Content .\runrail-desktop-v1.zip.sha256) -split '\s+')[0]
$actual = (Get-FileHash .\runrail-desktop-v1.zip -Algorithm SHA256).Hash
if ($actual -ne $expected) { throw "Runrail archive checksum mismatch" }
Expand-Archive .\runrail-desktop-v1.zip .
cd .\runrail-local-v1; node .\install.mjs

# macOS
shasum -a 256 -c runrail-desktop-v1.zip.sha256
unzip runrail-desktop-v1.zip
cd runrail-local-v1 && ./install.sh

# Linux / WSL2
sha256sum -c runrail-local-v1.tar.gz.sha256
tar -xzf runrail-local-v1.tar.gz
cd runrail-local-v1 && ./install.sh
runrail doctor --json
runrail license request --json

# In the protected subscriber console, select the generated
# public request and download its single-use ticket.
runrail license enroll \
  --ticket /absolute/path/to/ticket.json \
  --json

runrail license --json
runrail sample --json
runrail desktop

The commands use runrail as shorthand only when the installer reports binDirOnPath: true. The installer never edits PATH or shell profiles; otherwise, run the exact full-path values in its JSON nextCommands. Every checksum command refuses a mismatch before extraction. The Windows quickstart invokes the installer through Node so PowerShell script execution policy is not a first-run dependency; the packaged install.ps1 wrapper remains available and lifecycle-tested. The installer creates a Start Menu shortcut, macOS Application, or Linux desktop entry plus CLI commands. Device enrollment sends only a signed public request and entitlement metadata; repository content remains local. The guided sample runs the real local review path against a disposable fixture before you choose a repository. Requirements: Windows, macOS, Linux, or WSL2; Node.js 20+; Python 3.11+ with venv; Git; and brief subscriber-service access for enrollment and renewal.

02 / Candidate review

Run one bounded preflight in the app or CLI.

runrail review --repo /path/to/clean-repo \
  --base main \
  --candidate ai/candidate-change \
  --verifier python-compile \
  --json

Runrail materializes the candidate in an isolated local review directory, performs bounded policy checks and syntax-only Python compilation, and leaves the source checkout unchanged.

03 / Output files

Five artifacts, one review.

candidate.patchThe proposed Git diff.
audit.jsonMachine-readable boundaries and verifier result.
REVIEW.mdThe human review checklist.
ROLLBACK.mdRecovery guidance for a later manual apply.
review.htmlA self-contained local decision view with no scripts or external assets.

04 / Pro and above: CLI revision comparison

See what changed in the next review.

runrail compare \
  --before /path/to/baseline/review/audit.json \
  --after /path/to/revised/review/audit.json \
  --json

The free browser workspace can compare related audit files without purchase. The installed runrail compare command is licensed for Pro and above. It verifies both audits, requires the same base or a linear successor relationship, and writes comparison.json, REVIEW_COMPARISON.md, and script-free comparison.html. Review-priority direction is deterministic triage evidence, not a code-quality score.

05 / Candidate recommendation

Offline first, optional model second.

runrail recommend \
  --audit /absolute/path/to/runrail/review/audit.json \
  --json

The default path is deterministic, transmits nothing, and needs no model or key. To request the optional DeepSeek second opinion:

export RUNRAIL_DEEPSEEK_ADVISORY_ENABLED=true
export RUNRAIL_DEEPSEEK_ADVISORY_API_KEY='your-own-provider-key'
runrail recommend \
  --audit /absolute/path/to/runrail/review/audit.json \
  --provider deepseek \
  --allow-network \
  --json
$env:RUNRAIL_DEEPSEEK_ADVISORY_ENABLED = "true"
$env:RUNRAIL_DEEPSEEK_ADVISORY_API_KEY = "your-own-provider-key"
runrail recommend --audit C:\absolute\path\to\runrail\review\audit.json --provider deepseek --allow-network --json

DeepSeek remains optional. It receives bucketed counts and booleans, not source, diff content, paths, file names, commits, repository identity, task text, raw verifier output, or the audit run id. It may return only fixed candidate IDs or ABSTAIN; the receipt keeps authority: none, and a human decides what happens next.

06 / Safety model

Fail closed at the repository boundary.

Runrail requires a clean source repository, rejects unsafe refs and paths, accepts only the built-in verifier contract, and stops before automatic apply.

Read the security boundary

07 / Limitations

Know what the result does not prove.

No project tests, semantic correctness verdict, complete security review, operating-system sandbox, or automatic apply. Run your own test suite before merging.

08 / Uninstall and recover

Remove managed files without deleting review evidence.

Run node .\uninstall.mjs on Windows or ./uninstall.sh on macOS, Linux, and WSL2 from the verified extracted package. The packaged Windows uninstall.ps1 wrapper remains available and lifecycle-tested. Runrail verifies its checksum-bound ownership state, refuses changed or symlinked managed paths, and preserves the local workspace and audit evidence by default.

If .v1-backup remains after an interrupted update, rerun the verified installer first. It restores the prior verified release before continuing; uninstall remains closed until recovery finishes.

09 / Troubleshooting

Start with the doctor.

Run the installer JSON value at nextCommands.doctor. Confirm package integrity, supported runtimes, a clean Git repository, and an existing candidate branch.

Contact support