Skip to main content
A cauliflower conductor beats time while a dependency graph lights up one wave at a time

hurl-orchestra

AI first API automation testing.
Test your API from login to checkout. Write each step as a small text file, and hurl-orchestra runs the steps in the right order and shows you which step broke.

PyPI CI Docs License: MIT

The interactive score: create_cart fails, add_item and checkout are skipped, catalog still passes, and the terminal ends with exit code 1

Play with it on the docs home page: select a note, make it fail, watch the run.

Say what each step needs, and the order follows

---
id: profile
deps: [auth]
---
GET {{base_url}}/profile
Authorization: Bearer {{auth_token}}
HTTP 200
pip install hurl-orchestra
hurl-orchestra ./tests

I built hurl-orchestra for the moment a Hurl test suite outgrows one file. Each file says which steps must pass first, and the tool works out the rest: it runs the steps in the right order, runs independent steps at the same time and passes values like a login token to the steps that need them. When one step fails, only the steps that depend on it stop, so one run shows every broken flow, not just the first one.

Why teams pick it

  • AI first. Plain-text requests, a few frontmatter fields, a JSON plan (--dry-run --json) and CTRF results. A coding agent can write a test, check the graph and read the failure without a human in the loop. There is no model inside and nothing to configure. Use it with your AI assistant →
  • Declared, not scripted. deps replace the shell script that calls Hurl in the right order.
  • Captures that do not collide. auth captures token, and its dependents get auth_token.
  • Honest about flaky failures. known_failures tolerates a failure you understand, with a reason and an expiry date, and the report still shows it.
  • Polite under load. A retry policy backs off exponentially, with jitter, and honours Retry-After.
  • Ready for CI. A zip of every Hurl report on every run, and a CTRF file for the GitHub job summary.

Under the hood

  • Small. Python 3.11+, one dependency (python-frontmatter), and the standard library's graphlib and thread pool for the waves.
  • Safe with secrets. Captured values reach Hurl through a private variables file per call, never the process list.
  • Fails early. The whole graph is validated before the first request: unknown deps, cycles, wrong types, malformed tolerances and bad regexes.
  • Tested. 250+ tests, with ruff and fully typed mypy checks in CI.
  • Docs written for people and agents. Short procedures in Simplified Technical English, checked by Vale, and published as llms-full.txt too.

Read the docs

Get started · Concepts · How-to · Reference · Troubleshooting

Say hi

If hurl-orchestra saved your suite from a pile of shell scripts, or you have a flow it cannot express yet, I would like to hear about it. Open an issue, or read CONTRIBUTING.md to send a change.

MIT License · Made at Esta couve flor

Metadata

Release files for hurl-orchestra 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hurl-orchestra 0.11.0
File Size Uploaded
hurl_orchestra-0.11.0.tar.gz 42.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hurl-orchestra 0.11.0
File Interpreter ABI Platform
hurl_orchestra-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.5 kB

Release files / hurl_orchestra-0.11.0.tar.gz

Download URL hurl_orchestra-0.11.0.tar.gz
Size 42.5 kB
Tags Source
SHA-256 checksum
How to use checksums
70056f5b27a17be338f88f5e2734b99c3a6cc29ae1d4314f05ffaca654924bf5
BLAKE2b-256 checksum
How to use checksums
9efadd7c530308cd76c90ac90d2aa59f3919ce7257895b6b009390f61793485e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / hurl_orchestra-0.11.0-py3-none-any.whl

Download URL hurl_orchestra-0.11.0-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48b1e1424ff1702df58980cbd39d9dcf729a9e2ab1ca7c0c0d116547213a127e
BLAKE2b-256 checksum
How to use checksums
786cd8d64c5c327757ad5df955b02144d1b0244448a017ad1ed14daaa158b256
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page