# Install include-what-you-use with Homebrew, apk, dnf, MacPorts, Nix, zypper

Tool to analyze #includes in C and C++ source files. Version 0.26 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:include-what-you-use
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install include-what-you-use
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install include-what-you-use
```

  Evidence: MacPorts ports tree: devel/include-what-you-use/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add include-what-you-use
```

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

- dnf (92%):

```sh
sudo dnf install iwyu
```

  Evidence: Fedora Rawhide package metadata: iwyu from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#include-what-you-use
```

  Evidence: nixpkgs package indexes: include-what-you-use from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- zypper (92%):

```sh
sudo zypper install include-what-you-use
```

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

## Package facts

- **Package key:** brew:include-what-you-use
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/include-what-you-use>
- **Version:** 0.26
- **Source summary:** Tool to analyze #includes in C and C++ source files
- **Homepage:** <https://include-what-you-use.org/>
- **Repository:** <https://github.com/include-what-you-use/include-what-you-use>
- **Upstream docs:** <https://github.com/include-what-you-use/include-what-you-use#readme>
- **License:** NCSA
- **Source archive:** <https://include-what-you-use.org/downloads/include-what-you-use-0.26.src.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- fix_includes.py (cli)
- include-what-you-use (cli)
- iwyu_tool.py (cli)
- fix_includes.py (alias)
- include-what-you-use (alias)
- iwyu_tool.py (alias)

## Dependencies

- llvm

## Build dependencies

- cmake

## Uses from macOS

- ncurses

## 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: 0.26
- Local data: ok
- Upstream repository: https://include-what-you-use.org/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Include What You Use, often abbreviated IWYU, is a Clang-based C and C++ include analyzer. It tells developers which headers a source file should include directly and which includes can be removed or replaced with forward declarations.

### Project history

The project site announced a very-alpha 0.1 release in February 2011 and described an open-source release-early approach after Google-internal origins. Early releases tracked specific LLVM and Clang versions because IWYU depends heavily on Clang internals.

The release notes show a steady pattern: each IWYU release follows an LLVM/Clang line, updates mappings, and improves analysis of C, C++, templates, standard-library headers, and platform-specific headers. Version 0.5 in December 2015 marked migration to GitHub, updated documentation, improved testing infrastructure, and added Boost and Qt mappings.

### Adoption history

IWYU spread through C++ build culture because include hygiene directly affects compile time, rebuild fan-out, and refactoring safety. The official documentation explicitly frames the tool around large codebases, where transitive includes make it hard to remove dependencies safely.

Package-manager metadata in this batch lists Homebrew, Alpine, Fedora, MacPorts, Nix, and openSUSE packaging. That is a good fit for a compiler-adjacent developer tool: users install a binary matching their Clang generation and wire it into compilation databases, CMake workflows, CI, or local cleanup scripts.

### How it is used

IWYU is usually run against source files with the same compilation information used by Clang. The companion iwyu_tool.py works with compilation databases, and fix_includes.py can apply suggested include edits.

Its output is used during dependency cleanup, code-review preparation, CI checks, and large refactors where accidental reliance on another file's transitive include would otherwise hide missing direct dependencies.

### Why package nerds care

For package nerds, IWYU is significant because it turns a style rule into a compiler-backed CLI. It also illustrates a packaging challenge common to LLVM ecosystem tools: the useful binary has to stay aligned with Clang internals and therefore tends to move in lockstep with compiler releases.

It matters beyond neatness. Header dependency cleanup can shorten builds, reduce needless rebuilds, and make C++ packages less fragile when upstream headers change.

### Timeline

- 2011: IWYU 0.1 announced as a very-alpha open-source release.
- 2011: Clang 2.9 and 3.0 compatible tarballs published.
- 2014: Clang 3.4 and 3.5 compatible releases published; rudimentary C support added in the 3.5-era release.
- 2015: IWYU 0.5 migrated to GitHub and added Boost and Qt mappings.
- 2019: Release notes stated that binary releases would no longer be produced and pointed users to maintained packages.
- 2026: IWYU 0.26 released for LLVM and Clang 22.

### Related projects

- LLVM and Clang are the compiler infrastructure IWYU builds on.
- fix_includes.py and iwyu_tool.py are companion tools shipped by the project.
- CMake compilation databases, clang-tidy, and C++ include-order or dependency-cleanup workflows are adjacent developer-tooling surfaces.

### Sources

- <https://api.github.com/repos/include-what-you-use/include-what-you-use/releases>
- <https://formulae.brew.sh/formula/include-what-you-use>
- <https://github.com/include-what-you-use/include-what-you-use>
- <https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYU.md>
- <https://include-what-you-use.org/>
- input.json source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** include-what-you-use
- **Aliases:** iwyu
- **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 - include-what-you-use: normalized package name match | nixpkgs package indexes: include-what-you-use from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- apk - include-what-you-use - 0.26-r0: normalized package name match | Alpine Linux edge package indexes: include-what-you-use from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A tool for use with clang to analyze #includes in C and C++ source files | https://include-what-you-use.org
- apk - include-what-you-use-dbg - 0.26-r0: normalized package name match | Alpine Linux edge package indexes: include-what-you-use-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A tool for use with clang to analyze #includes in C and C++ source files (debug symbols) | https://include-what-you-use.org
- apk - include-what-you-use-doc - 0.26-r0: normalized package name match | Alpine Linux edge package indexes: include-what-you-use-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A tool for use with clang to analyze #includes in C and C++ source files (documentation) | https://include-what-you-use.org
- dnf - iwyu - 0.26-3.fc45: normalized package name match | Fedora Rawhide package metadata: iwyu from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | C/C++ source files #include analyzer based on clang | https://github.com/include-what-you-use/include-what-you-use
- zypper - include-what-you-use - 0.26-1.2: normalized package name match | openSUSE Tumbleweed package metadata: include-what-you-use from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A tool to analyze #includes in C and C++ source files | https://include-what-you-use.org/
- zypper - include-what-you-use-tools - 0.26-1.2: normalized package name match | openSUSE Tumbleweed package metadata: include-what-you-use-tools from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Additional tools to use include-what-you-use effectively | https://include-what-you-use.org/
- MacPorts - include-what-you-use: normalized package name match | MacPorts ports tree: devel/include-what-you-use/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [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.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [llvm](https://www.automicvault.com/pkg/brew/llvm/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [clang-include-graph](https://www.automicvault.com/pkg/brew/clang-include-graph/) - Shares av.db curated category or tags: clang, cli, code-analysis, cpp, developer-tools.
- [clangql](https://www.automicvault.com/pkg/brew/clangql/) - Shares av.db curated category or tags: clang, cli, cpp, developer-tools, static-analysis.
- [clazy](https://www.automicvault.com/pkg/brew/clazy/) - Shares av.db curated category or tags: clang, cli, cpp, developer-tools, static-analysis.
- [pmccabe](https://www.automicvault.com/pkg/brew/pmccabe/) - Shares av.db curated category or tags: c, cli, code-analysis, cpp, developer-tools.
- [castxml](https://www.automicvault.com/pkg/brew/castxml/) - Shares av.db curated category or tags: c, clang, cli, code-analysis, developer-tools.
- [ccheck](https://www.automicvault.com/pkg/brew/ccheck/) - Shares av.db curated category or tags: c, cli, code-analysis, developer-tools, static-analysis.
- [clang-uml](https://www.automicvault.com/pkg/brew/clang-uml/) - Shares av.db curated category or tags: clang, cli, code-analysis, cpp, developer-tools.
- [conan](https://www.automicvault.com/pkg/brew/conan/) - Shares av.db curated category or tags: c, cli, cpp, developer-tools.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- 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
