⚖️ Matched environments. Measured fairly. ⚖️
turbobench is a local Python CLI for reinforcement-learning environment authors,
researchers, and provider maintainers who need fair performance comparisons between
compatible implementations. It verifies that two providers produce matching transitions
before timing them, then writes a portable, self-verifying evidence bundle. Run it with a
built-in workload profile and two provider references.
Optional comparison videos replay the same locked providers and semantic action trajectory. Only valid, conclusive evidence can produce unmarked promotional media; diagnostic output is clearly watermarked.
Install
Install the published CLI from PyPI with uv tool install turbobench-cli or
pip install turbobench-cli. The installed command and Python import remain
turbobench.
For a development checkout:
git clone https://github.com/tsilva/turbobench.git
cd turbobench
uv sync --frozen --group dev
Run uv run turbobench profiles list and uv run turbobench providers list to choose a
compatible profile and provider pair.
Commands
uv run turbobench doctor vizdoom/basic-v1 # check the host, tools, and profile assets
uv run turbobench profiles list # list immutable workloads
uv run turbobench providers list # list built-in and registered providers
uv run turbobench compare vizdoom/basic-v1 \
--left vizdoom-turbo@1.3.0.post23 \
--right vizdoom@1.3.0 \
--output turbobench-results/vizdoom # create a result bundle
uv run turbobench verify turbobench-results/vizdoom # verify integrity and consistency
uv run turbobench report turbobench-results/vizdoom # print the generated report
uv run turbobench promo turbobench-results/vizdoom --diagnostic
uv run --frozen ruff check . # lint the project
uv run --frozen pytest -m "not acceptance" # run tests without proprietary assets
Long-running commands write progress to standard error and reserve standard output for their final machine-readable JSON.
Notes
- The controller supports Python 3.11 and newer. Provider runtimes default to CPython 3.14.
uv, FFmpeg, and FFprobe are required. - Built-in profiles cover
supermario/canonical-v1,breakout/start-v1, andvizdoom/basic-v1. Shapes 1, 16, and 32 are measured and reported independently. - Provider references accept
provider,provider@latest,provider@VERSION, andprovider@checkout:/absolute/path.latestexcludes prereleases, yanked releases, incompatible artifacts, and releases still inside the seven-day quarantine. - Set
TURBOBENCH_ROM_PATH,TURBOBENCH_ASSET_ROOT, orRETRO_DATA_PATHto locate required local game payloads. ROMs and local paths are never written to portable bundles; only canonical digests are recorded. - Every official result must pass provider compatibility, matched correctness, system-load, alternating paired-measurement, statistical uncertainty, provenance, and asset gates. Quick runs and explicit overrides remain diagnostic.
- Result bundles contain the exact provider lock, shape-local statistics, report, chart, raw
evidence, verification records, and optional media.
manifest.jsonbinds every portable file by size and SHA-256; turbobench does not upload or publish bundles. - Official v1 hosts are Apple-silicon macOS and x86-64 Linux. Third-party providers can
register through the
turbobench.providersentry-point group.
Architecture
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file turbobench_cli-1.0.0.tar.gz.
File metadata
- Download URL: turbobench_cli-1.0.0.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1fa79fcbd614b0e3ac7646d2cceb1257eed133611186a43f7a826c4a89f5d0c
|
|
| MD5 |
9c23cbaad6c127277730dc580cde7b96
|
|
| BLAKE2b-256 |
5301c8e48e5310e822d109c0b0919fadb6337888f4e50b9d188172e0b82c164e
|
Provenance
The following attestation bundles were made for turbobench_cli-1.0.0.tar.gz:
Publisher:
release.yml on tsilva/turbobench
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turbobench_cli-1.0.0.tar.gz -
Subject digest:
e1fa79fcbd614b0e3ac7646d2cceb1257eed133611186a43f7a826c4a89f5d0c - Sigstore transparency entry: 2420828524
- Sigstore integration time:
-
Permalink:
tsilva/turbobench@37ab3f4907d78cb711939c1b3e5abdfc2a866f5a -
Branch / Tag:
refs/tags/turbobench-cli-v1.0.0 - Owner: https://github.com/tsilva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@37ab3f4907d78cb711939c1b3e5abdfc2a866f5a -
Trigger Event:
push
-
Statement type:
File details
Details for the file turbobench_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: turbobench_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 62.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
335c2b86381e86d54d22fde7da444655bb13d3c9ceb8d2ac73801a39c6c5532e
|
|
| MD5 |
3330a9f96411b4f49b6904164f8e6c94
|
|
| BLAKE2b-256 |
ec586f5ff6c666ddd6023b58e120d0b28d702398d8aacd808ee337004484e20d
|
Provenance
The following attestation bundles were made for turbobench_cli-1.0.0-py3-none-any.whl:
Publisher:
release.yml on tsilva/turbobench
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turbobench_cli-1.0.0-py3-none-any.whl -
Subject digest:
335c2b86381e86d54d22fde7da444655bb13d3c9ceb8d2ac73801a39c6c5532e - Sigstore transparency entry: 2420828567
- Sigstore integration time:
-
Permalink:
tsilva/turbobench@37ab3f4907d78cb711939c1b3e5abdfc2a866f5a -
Branch / Tag:
refs/tags/turbobench-cli-v1.0.0 - Owner: https://github.com/tsilva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@37ab3f4907d78cb711939c1b3e5abdfc2a866f5a -
Trigger Event:
push
-
Statement type: