Hosted Result Submission
Use this flow when you want a local BenchBox run to appear on the hosted BenchBox results platform.
1. Run A Benchmark
uv run -- benchbox run --platform duckdb --benchmark tpch --scale 0.01 --non-interactiveBenchBox writes the result JSON under benchmark_runs/results/. If query plans
or tuning were captured, companion files sit beside the primary result.
2. Check The Result
uv run -- benchbox resultsuv run -- benchbox submit --last --service --dry-runThe dry run validates the local bundle, computes the hash, lists companion files, and prints the hosted upload target. It does not read credentials and does not contact the service.
3. Authenticate
uv run -- benchbox auth loginuv run -- benchbox auth statusbenchbox auth login stores the hosted token in the operating system keyring.
For CI, set BENCHBOX_SUBMIT_TOKEN instead. BENCHBOX_SERVICE_TOKEN is still
accepted as a lower-precedence fallback for older automation.
4. Submit
uv run -- benchbox submit --last --serviceBenchBox uploads the canonical result JSON, the generated manifest, and any
companion files. With the default --wait, it polls until the service publishes
or rejects the submission.
Use --no-wait when you only need the submission id:
uv run -- benchbox submit --last --service --no-wait5. Track The Hosted URL
uv run -- benchbox results --submittedSuccessful hosted submissions create local sidecars next to the source result:
benchmark_runs/results/<result>.<idempotency-key>.submission.jsonThe sidecar stores status, submission id, public result id, public URL, service URL, and idempotency key. It never stores the auth token.
PR-Based Alternative
Hosted upload is not required for community contribution. To create a local package for a pull request:
uv run -- benchbox submit --last --output ./submissionFollow the generated CONTRIBUTING.md and open the PR against the
published-results branch.