-n auto Run tests across workers with duration-aware load balancing. Built in — no pytest-xdist install required.
Home / Quickstart
Install rpytest, run your existing suite exactly as you run pytest, and prove parity. There is nothing to configure — the warm daemon starts on the first invocation and your config is read where it already lives.
Pick your package manager. Linux and macOS are supported.
$ pip install rpytest $ brew install neul-labs/tap/rpytest $ npm install -g rpytest $ cargo install rpytest rpytest-daemon The pip package pulls in both the Rust CLI and the daemon binary. Full reference lives in the docs.
# everything you'd pass pytest, you pass rpytest $ rpytest $ rpytest tests/test_api.py::test_login -k auth -m "not slow" $ rpytest --lf # last-failed, near-instant on the warm daemon $ rpytest -n auto # built-in parallel, no xdist $ rpytest --watch # TDD loop
Config in pytest.ini, pyproject.toml, tox.ini, and setup.cfg is read in place — nothing to port.
$ rpytest --verify-dropin # diff node IDs, outcomes, exit codes vs pytest $ rpytest --daemon-status # is the daemon up? $ rpytest --daemon-stop # stop it (e.g. for a clean re-import) $ rpytest --cleanup # tidy daemon state
-n auto Run tests across workers with duration-aware load balancing. Built in — no pytest-xdist install required.
--watch Re-run affected tests on each file save against the warm daemon. The TDD inner loop, tightened.
--verify-dropin Run both pytest and rpytest and diff collected node IDs, outcomes, and exit codes. Prove the swap is safe.
--shard 0 --total-shards 4 Split the suite deterministically across CI jobs. Stable and reproducible sharding.
--reruns N / --flaky-report Retry failing tests and surface quietly unreliable ones without adding a rerun plugin.
--daemon-status / --daemon-stop / --cleanup Inspect, stop, and clean up the local daemon. There is no remote control plane.
Want the full picture first?