Hurl
Command line tool that runs and tests HTTP requests defined in plain text files, with request chaining, captures, asserts, and CI reports.
Hurl is a command line tool that runs HTTP requests written in a plain text format. Each .hurl file lists requests with their method, URL, headers, and body, and can chain multiple requests in sequence. Values can be captured from a response, for example with XPath, and reused in later requests. One example captures a CSRF token from a page and submits it in a login form.
Hurl also works as an HTTP test tool. The [Asserts] section evaluates queries and predicates on the status code, response headers, and body. It supports XPath and JSONPath queries, regex matching, item counts, response duration, and sha256 checks on response bytes. The README shows samples for REST/JSON APIs, HTML, GraphQL, and SOAP. Other documented features include [Query], [Form], and [BasicAuth] sections, polling and retry, delaying or skipping requests, redacting secrets, AWS Signature V4, exporting curl commands, and proxy support.
Hurl is a single Rust binary whose HTTP engine is libcurl. By default it prints the last response like curl. The --test option switches to test-oriented output. It accepts files or directories and searches directories recursively for .hurl files. For CI/CD it produces text, JUnit, TAP, HTML, and JSON reports. Developers, QA engineers, and DevOps teams who test or script HTTP APIs would use it. Installation packages are available for Linux, macOS, Windows, and FreeBSD, as well as Cargo, npm, conda-forge, and Docker.
Installation
# via Homebrew
brew install hurl


Alternatives & related tools
asciinema
Command-line tool for recording and live streaming terminal sessions to lightweight asciicast files
tokei
Fast code statistics tool that counts lines of code, comments, and blanks across 150+ programming languages
difftastic
Structural diff tool that compares files based on their syntax rather than lines
fnm
Fast Node.js version manager built in Rust with support for .node-version and .nvmrc files
hexyl
Terminal hex viewer that colors bytes by category: NULL, printable ASCII, whitespace, other ASCII, and non-ASCII.
add a badge to your README
Maintain Hurl? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/hurl?utm_source=badge)<a href="https://www.trmn.sh/tools/hurl?utm_source=badge"><img src="https://www.trmn.sh/badge/hurl.svg" alt="Featured on trmn" height="20"></a>