ScriptsApr 12, 2026·1 min read

Hurl — Run and Test HTTP Requests with Plain Text

Hurl is a command-line tool that runs HTTP requests defined in a simple plain text format. Chain requests, capture values, assert responses, and use it for API testing in CI/CD. Written in Rust on top of libcurl for maximum compatibility.

SC
Script Depot · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

# Install
brew install hurl                           # macOS
cargo install hurl                          # Rust
sudo apt install hurl                       # Debian/Ubuntu

Create api.hurl:

# Test login endpoint
POST https://api.example.com/login
Content-Type: application/json
{
  "email": "w@tokrepo.com",
  "password": "secret"
}

HTTP 200
[Captures]
token: jsonpath "$.token"
[Asserts]
jsonpath "$.token" isString

# Use captured token
GET https://api.example.com/me
Authorization: Bearer {{token}}

HTTP 200
[Asserts]
jsonpath "$.email" == "w@tokrepo.com"
jsonpath "$.roles" includes "admin"
hurl api.hurl                # Run requests
hurl --test api.hurl         # Test mode (CI)
hurl --very-verbose api.hurl # Debug
hurl --json api.hurl         # JSON output
hurl --variable host=staging api.hurl
Intro

Hurl is a command-line tool that runs HTTP requests defined in a simple plain text format. Chain multiple requests, capture response values into variables, and assert on status codes, headers, body content, and JSONPath expressions. Written in Rust on top of libcurl. Created by Orange (France Telecom) and open-sourced.

What Hurl Does

  • Plain text format — readable, version-controllable .hurl files
  • Request chaining — multiple requests in one file
  • Captures — extract values from responses into variables
  • Assertions — status, header, body, JSONPath, XPath, regex
  • Variables — inject via CLI or capture
  • Cookie handling — automatic across requests
  • Certificate — client certs and custom CA
  • Performance — libcurl-based, very fast
  • CI-friendly--test mode with exit codes
  • Report — HTML, JSON, JUnit XML output

Comparison

Tool Format CI Language
Hurl Plain text Excellent Rust
HTTPie CLI args OK Python
curl CLI args OK C
Bruno .bru files CLI JS
Postman JSON/GUI Newman JS

常见问题 FAQ

Q: Hurl vs curl? A: curl 是单请求工具,Hurl 是多请求编排 + 断言工具。Hurl 内部用 libcurl,但加了链式请求、capture/assert、test mode。API 测试用 Hurl 更好。

Q: 和 Postman 比? A: Hurl 是纯文本 + CLI(Git 友好、CI 原生),Postman 是 GUI(可视化好但文件不好 diff)。开发者倾向 Hurl。

来源与致谢 Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets