# Install hurl with Homebrew, apk, MacPorts, Nix, pacman, scoop, winget, zypper

Run and Test HTTP Requests with plain text and curl. Version 8.0.1 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:hurl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install hurl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install hurl
```

  Evidence: MacPorts ports tree: www/hurl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add hurl
```

  Evidence: Alpine Linux edge package indexes: hurl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#hurl
```

  Evidence: nixpkgs package indexes: pkgs/by-name/hu/hurl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S hurl
```

  Evidence: Arch Linux sync databases: hurl from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install hurl
```

  Evidence: openSUSE Tumbleweed package metadata: hurl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/hurl
```

  Evidence: Scoop official bucket manifest trees: bucket/hurl.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id Orange-OpenSource.Hurl -e
```

  Evidence: Windows Package Manager source index: Orange-OpenSource.Hurl from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:hurl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/hurl>
- **Version:** 8.0.1
- **Source summary:** Run and Test HTTP Requests with plain text and curl
- **Homepage:** <https://hurl.dev>
- **Repository:** <https://github.com/Orange-OpenSource/hurl>
- **Upstream docs:** <https://hurl.dev/docs/frequently-asked-questions.html>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/Orange-OpenSource/hurl/archive/refs/tags/8.0.1.tar.gz>
- **Last updated:** 2026-06-22T14:03:44-07:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- hurl (cli)
- hurlfmt (cli)
- hurl (alias)
- hurlfmt (alias)

## Build dependencies

- pkgconf
- rust

## Uses from macOS

- curl
- libxml2
- llvm

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 8.0.1
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/Orange-OpenSource/hurl
- Upstream latest detected: 8.0.1 (current)
## Project history and usage

Hurl is an Orange Open Source command-line tool for running HTTP requests and tests from a plain-text file format. It sits between curl-style request execution and API test tooling: users can chain requests, capture values, assert headers and bodies, and emit CI-friendly reports.

### Project history

The public GitHub repository was created in August 2020, and the release history shows a 1.0.0 tag in December 2020. The project evolved quickly from a plain-text HTTP runner into a broader API testing tool with captures, XPath and JSONPath assertions, SOAP and GraphQL examples, reports, and formatter/import tooling.

Hurl's own README emphasizes that the HTTP engine is powered by libcurl while the surrounding CLI and file format are written in Rust. That design gave the tool a package-nerd-friendly niche: curl-compatible network behavior wrapped in a reproducible test file that can live in a repository.

### Adoption history

The installation documentation and package metadata show distribution through Homebrew, MacPorts, Nix, Arch, Scoop, Winget, Alpine, and other channels. The changelog thanks outside contributors across releases, which indicates usage beyond the original Orange engineering team.

### How it is used

Hurl files usually describe one or more HTTP exchanges with expected status codes, captures, and assertions. The README examples cover HTML, REST/JSON, SOAP, GraphQL, performance assertions, hashes, and CI output formats such as JUnit, TAP, and HTML.

### Why package nerds care

Hurl matters to package and CLI users because it makes HTTP integration checks small, reviewable, and runtime-light. Instead of committing shell scripts around curl plus a separate assertion language, teams can commit one text fixture and run it locally or in CI.

### Timeline

- 2020: Public GitHub repository created and early 0.99.x releases published.
- 2020: 1.0.0 release tag published in December.
- 2021: 1.x releases continued the API-testing feature set.
- 2025: 7.1.0 added items such as secrets-file support and additional authentication options.
- 2026: 8.0.0 changed several CLI options and moved JSONPath handling toward RFC 9535 behavior.

### Related projects

- Hurl is closely related to curl and libcurl, and it overlaps with API-testing tools that store requests as text or collections. Its `hurlfmt` executable also connects it to the habit of importing, formatting, and reviewing HTTP requests as source files.

### Sources

- Project README, changelog, documentation, GitHub release metadata, and Homebrew package metadata were used.


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Credential files

- Unix: ~/.netrc
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** hurl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - hurl: normalized package name match | nixpkgs package indexes: pkgs/by-name/hu/hurl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - hurl - 7.1.0-r0: normalized package name match | Alpine Linux edge package indexes: hurl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | CLI to run HTTP requests defined in simple plain text format | https://hurl.dev/
- apk - hurl-bash-completion - 7.1.0-r0: normalized package name match | Alpine Linux edge package indexes: hurl-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Bash completions for hurl | https://hurl.dev/
- apk - hurl-doc - 7.1.0-r0: normalized package name match | Alpine Linux edge package indexes: hurl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | CLI to run HTTP requests defined in simple plain text format (documentation) | https://hurl.dev/
- apk - hurl-fish-completion - 7.1.0-r0: normalized package name match | Alpine Linux edge package indexes: hurl-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Fish completions for hurl | https://hurl.dev/
- apk - hurl-zsh-completion - 7.1.0-r0: normalized package name match | Alpine Linux edge package indexes: hurl-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Zsh completions for hurl | https://hurl.dev/
- pacman - hurl - 8.0.1-1: normalized package name match | Arch Linux sync databases: hurl from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Run and test HTTP requests with plain text | https://github.com/Orange-OpenSource/hurl
- zypper - hurl - 8.0.1-1.1: normalized package name match | openSUSE Tumbleweed package metadata: hurl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Run and test HTTP requests with plain text | https://github.com/Orange-OpenSource/hurl
- MacPorts - hurl: normalized package name match | MacPorts ports tree: www/hurl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/hurl: normalized package name match | Scoop official bucket manifest trees: bucket/hurl.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - Orange-OpenSource.Hurl: normalized package name match | Windows Package Manager source index: Orange-OpenSource.Hurl from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [req](https://www.automicvault.com/pkg/brew/req/) - Shares av.db curated category or tags: api-testing, cli, developer-tools, http.
- [jikken](https://www.automicvault.com/pkg/brew/jikken/) - Shares av.db curated category or tags: api-testing, cli, developer-tools.
- [keploy](https://www.automicvault.com/pkg/brew/keploy/) - Shares av.db curated category or tags: api-testing, cli, developer-tools.
- [newman](https://www.automicvault.com/pkg/brew/newman/) - Shares av.db curated category or tags: api-testing, cli, developer-tools.
- [resterm](https://www.automicvault.com/pkg/brew/resterm/) - Shares av.db curated category or tags: api-testing, cli, developer-tools, http.
- [wiremock-standalone](https://www.automicvault.com/pkg/brew/wiremock-standalone/) - Shares av.db curated category or tags: api-testing, cli, developer-tools, http.
- [curlie](https://www.automicvault.com/pkg/brew/curlie/) - Shares av.db curated category or tags: api-testing, cli, curl, developer-tools.
- [h2c](https://www.automicvault.com/pkg/brew/h2c/) - Shares av.db curated category or tags: cli, curl, developer-tools, http.
- [gavel](https://www.automicvault.com/pkg/npm/gavel/) - Local package facts share a topical domain. Shared terms: api, api-testing, cli, curl, developer.

## Combined YAML source

View the package source record on GitHub. [combined/hurl.yml](https://github.com/automic-vault/db/blob/main/combined/hurl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
