# Install bfs with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman

Breadth-first version of find. Version 4.1.4 via Homebrew; verified 2026-06-29.

## Install

```sh
sudo av install brew:bfs
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install bfs
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install bfs
```

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

### Linux

- apk (92%):

```sh
sudo apk add bfs
```

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

- Debian apt (92%):

```sh
sudo apt install bfs
```

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

- dnf (92%):

```sh
sudo dnf install bfs
```

  Evidence: Fedora Rawhide package metadata: bfs 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#bfs
```

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

- pacman (92%):

```sh
sudo pacman -S bfs
```

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

## Package facts

- **Package key:** brew:bfs
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/bfs>
- **Version:** 4.1.4
- **Source summary:** Breadth-first version of find
- **Homepage:** <https://tavianator.com/projects/bfs.html>
- **Repository:** <https://github.com/tavianator/bfs>
- **Upstream docs:** <https://tavianator.com/projects/bfs.html>
- **License:** 0BSD
- **Source archive:** <https://github.com/tavianator/bfs/archive/refs/tags/4.1.4.tar.gz>
- **Last updated:** 2026-06-29T20:47:31Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bfs (cli)
- bfs (alias)

## Dependencies

- oniguruma

## Build dependencies

- pkgconf

## 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: 4.1.4
- Package-manager updated: 2026-06-29
- Local data: ok
- Upstream repository: https://github.com/tavianator/bfs
- Upstream latest detected: 4.1.4 (current)
## Project history and usage

bfs is a C implementation of a breadth-first variant of the Unix find command. It aims to remain compatible with POSIX, GNU, BSD, and macOS find behavior while adding a friendlier command-line parser, diagnostics, and practical extensions.

### Project history

The official repository was created in June 2015. Early tags show a pre-1.0 series before the project reached 1.0 in 2017, followed by 2.0 in October 2020, 3.0 in July 2023, 4.0 in August 2024, and active 4.1.x maintenance through June 2026.

The README documents the core design choice: unlike traditional depth-first find traversal, bfs lists shallower paths first. Around that foundation it adds compatibility with several find dialects, argument-order leniency, typo suggestions, expression warnings, and convenience extensions such as -exclude and -nohidden.

### Adoption history

bfs has unusually broad packaging for a small Unix utility. Its README lists packages for Alpine, Arch, Debian/Ubuntu, Fedora, Gentoo, Guix, macOS, and other systems, and the input separately records Homebrew, MacPorts, Nix, pacman, zypper, Debian, Ubuntu, and Alpine packaging.

That packaging footprint reflects the niche: bfs is not a replacement for every find use, but it is attractive to users who want familiar find syntax with better traversal behavior, diagnostics, and cross-platform consistency.

### How it is used

Users run bfs much like find: searching directory trees by name, type, size, metadata, predicates, and actions. Its breadth-first order can surface shallow matches earlier, and its parser accepts common argument placements that traditional find variants reject.

The tool is also useful in scripts when its extensions matter, but its package value is strongest for interactive shell use where friendlier errors and faster discovery of shallow matches save time.

### Why package nerds care

bfs is notable to package-focused users because it reimagines one of Unix's oldest daily-driver commands without throwing away compatibility. That makes it a rare modern system utility that can be installed next to the base tool and immediately compared on real workflows.

Its significance is not just breadth-first search. The interesting packaging story is a small, carefully maintained C utility earning broad distro adoption by being faster to understand than find, stricter about warning users when expressions are probably wrong, and portable enough to ship across Linux and macOS ecosystems.

### Timeline

- 2015: Repository created in June.
- 2017: 1.0 released.
- 2020: 2.0 released in October.
- 2023: 3.0 released in July.
- 2024: 4.0 released in August.
- 2026: 4.1.4 released in June.

### Related projects

- Related projects include POSIX find, GNU findutils, BSD find implementations, fd for simple name-based search, and locate/plocate for indexed filename search.

### Sources

- <https://api.github.com/repos/tavianator/bfs>
- <https://api.github.com/repos/tavianator/bfs/releases>
- <https://raw.githubusercontent.com/tavianator/bfs/main/README.md>
- <https://raw.githubusercontent.com/tavianator/bfs/main/docs/CHANGELOG.md>
- 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:** bfs
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - bfs - 4.0.6-1: normalized package name match | Debian stable package indexes: bfs from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Breadth-first version of find(1) | https://github.com/tavianator/bfs
- Nix - bfs: normalized package name match | nixpkgs package indexes: pkgs/by-name/bf/bfs/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - bfs - 3.1.2-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: bfs from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Breadth-first version of find(1) | https://github.com/tavianator/bfs
- apk - bfs - 4.1-r1: normalized package name match | Alpine Linux edge package indexes: bfs from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Breadth-first variant of the UNIX find command | https://github.com/tavianator/bfs
- apk - bfs-bash-completion - 4.1-r1: normalized package name match | Alpine Linux edge package indexes: bfs-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for bfs | https://github.com/tavianator/bfs
- apk - bfs-doc - 4.1-r1: normalized package name match | Alpine Linux edge package indexes: bfs-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Breadth-first variant of the UNIX find command (documentation) | https://github.com/tavianator/bfs
- apk - bfs-fish-completion - 4.1-r1: normalized package name match | Alpine Linux edge package indexes: bfs-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fish completions for bfs | https://github.com/tavianator/bfs
- apk - bfs-zsh-completion - 4.1-r1: normalized package name match | Alpine Linux edge package indexes: bfs-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for bfs | https://github.com/tavianator/bfs
- dnf - bfs - 4.1.2-1.fc45: normalized package name match | Fedora Rawhide package metadata: bfs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A breadth-first version of the UNIX find command | https://tavianator.com/projects/bfs.html
- pacman - bfs - 4.1.2-1: normalized package name match | Arch Linux sync databases: bfs from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A breadth-first version of find | https://tavianator.com/projects/bfs.html
- MacPorts - bfs: normalized package name match | MacPorts ports tree: sysutils/bfs/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.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Web development packages](https://www.automicvault.com/pkg/web-dev-tools/) - Matched web development metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [oniguruma](https://www.automicvault.com/pkg/brew/oniguruma/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [findutils](https://www.automicvault.com/pkg/brew/findutils/) - Shares av.db curated category or tags: cli, filesystem, find, system.
- [acl](https://www.automicvault.com/pkg/brew/acl/) - Shares av.db curated category or tags: cli, filesystem, system.
- [afuse](https://www.automicvault.com/pkg/brew/afuse/) - Shares av.db curated category or tags: cli, filesystem, system.
- [agedu](https://www.automicvault.com/pkg/brew/agedu/) - Shares av.db curated category or tags: cli, filesystem, system.
- [archivemount](https://www.automicvault.com/pkg/brew/archivemount/) - Shares av.db curated category or tags: cli, filesystem, system.
- [attr](https://www.automicvault.com/pkg/brew/attr/) - Shares av.db curated category or tags: cli, filesystem, system.
- [avfs](https://www.automicvault.com/pkg/brew/avfs/) - Shares av.db curated category or tags: cli, filesystem, system.
- [bindfs](https://www.automicvault.com/pkg/brew/bindfs/) - Shares av.db curated category or tags: cli, filesystem, system.
- [btrfs-progs](https://www.automicvault.com/pkg/brew/btrfs-progs/) - Local package facts share a topical domain. Shared terms: cli, filesystem, find, system.
- [duff](https://www.automicvault.com/pkg/brew/duff/) - Local package facts share a topical domain. Shared terms: cli, filesystem, find, system.
- [dust](https://www.automicvault.com/pkg/brew/dust/) - Local package facts share a topical domain. Shared terms: cli, filesystem, system, version.

## Combined YAML source

View the package source record on GitHub. [combined/bfs.yml](https://github.com/automic-vault/db/blob/main/combined/bfs.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
