# Install hey with Homebrew, apk, apt, MacPorts, Nix, zypper

HTTP load generator, ApacheBench (ab) replacement. Version 0.1.5 via Homebrew; verified 2026-07-25. Also installable with debian: sudo apt install hey.

## Install

```sh
sudo av install brew:hey
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install hey
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install hey
```

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

### Linux

- apk (92%):

```sh
sudo apk add hey
```

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

- Debian apt (92%):

```sh
sudo apt install hey
```

  Evidence: Debian stable package indexes: hey from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#hey
```

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

- zypper (92%):

```sh
sudo zypper install hey
```

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

## Package facts

- **Package key:** brew:hey
- **Package manager:** Homebrew
- **Version:** 0.1.5
- **Source summary:** HTTP load generator, ApacheBench (ab) replacement
- **Homepage:** <https://github.com/rakyll/hey>
- **Repository:** <https://github.com/rakyll/hey>
- **Last updated:** 2026-07-25T20:56:30-04:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- hey (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.1.5
## Project history and usage

hey is a small Go HTTP load generator and benchmarking CLI, explicitly described as an ApacheBench replacement. It sends concurrent requests to a URL and reports timing and response statistics.

### Project history

The GitHub repository was created in September 2016. The README explains the naming history: the project was originally called boom, was influenced by Tarek Ziade's boom, and was renamed to hey to avoid binary-name conflicts and preserve the original boom name for its owner.

The project stayed deliberately small: a single-purpose executable with flags for request count, concurrency, rate limiting, duration-based runs, output format, HTTP method, headers, body data, basic auth, proxy, keep-alive behavior, redirects, CPU count, and HTTP/2.

### Adoption history

Homebrew packaging is documented directly in the README, and the batch metadata lists additional package-manager coverage in Alpine, Debian, MacPorts, Nix, Ubuntu, and openSUSE/Zypper. That spread reflects hey's role as a drop-in CLI utility for quick HTTP load checks.

GitHub release pages show tagged 0.1.x releases and downloadable assets, including platform binaries in older releases. Later release notes document community pull requests and additions such as Dockerfile support, CI, DNS-output fixes, dependency upgrades, and a request-function hook for library-style traffic variation.

### How it is used

The common use is intentionally direct: run hey against a URL, optionally choose total requests with -n, concurrency with -c, duration with -z, per-worker QPS with -q, and method/body/header options for non-GET requests. The README examples cover default requests, a 1000-request/100-worker run, duration-based load, POST bodies, custom headers, HTTP/2, and rate limiting.

The tool sits between curl-style manual checks and heavier load-testing systems. It is most useful when a developer, operator, or package maintainer wants a quick repeatable command that can be installed with the local package manager and run without a service or scenario file.

### Why package nerds care

hey is package-nerd significant because ApacheBench is ubiquitous but historically tied to Apache httpd packaging. hey gives users a small standalone Go binary with a modern CLI surface, HTTP/2 support, and easy cross-platform distribution.

The rename from boom to hey is also a packaging lesson: executable names collide, and a short memorable binary name only works if it does not trample an existing tool's namespace.

### Timeline

- 2016-09: GitHub repository metadata records creation of rakyll/hey.
- 2016: The README records the rename from boom to hey after conflicts with Tarek Ziade's boom.
- 2010s: README installation notes include platform binaries and Homebrew packaging.
- 2020s: Release notes document continued maintenance through 0.1.x tags, including request-generation hooks, Dockerfile support, CI, and dependency updates.

### Related projects

- Related tools include ApacheBench (ab), Tarek Ziade's boom, wrk, vegeta, bombardier, curl for single-request checks, and larger scenario-based load-testing systems.

### Sources

- GitHub README provides the origin/rename explanation, ApacheBench-replacement description, installation, package-manager note, usage flags, HTTP/2 support, and examples.
- GitHub release pages provide tagged release history and maintenance notes.
- Homebrew formula metadata and the input package-manager map support the package-manager adoption summary.


## Security Notes

broad file, network, media, or database tool signal. generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- broad file, network, media, or database tool signal
- generalized runtime or code generation signal

## Other Package-Manager Records

- Debian apt - hey - 0.1.4+ds-1+b8: normalized package name match | Debian stable package indexes: hey from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Sends some load to a web application | https://github.com/rakyll/hey
- Nix - hey: normalized package name match | nixpkgs package indexes: pkgs/by-name/he/hey/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - hey - 0.1.4-2build1: normalized package name match | Ubuntu 24.04 LTS package indexes: hey from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Sends some load to a web application | https://github.com/rakyll/hey
- apk - hey - 0.1.4-r42: normalized package name match | Alpine Linux edge package indexes: hey from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | HTTP load generator | https://github.com/rakyll/hey
- zypper - hey - 0.1.5-1.7: normalized package name match | openSUSE Tumbleweed package metadata: hey from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | HTTP load generator, ApacheBench (ab) replacement | https://github.com/rakyll/hey
- MacPorts - hey: normalized package name match | MacPorts ports tree: www/hey/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/hey.yml](https://github.com/mxcl/pkgdb/blob/main/combined/hey.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
