# Install zf with Homebrew, Nix

Command-line fuzzy finder that prioritizes matches on filenames. Version 0.10.4 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#zf.

## Install

```sh
sudo av install brew:zf
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install zf
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#zf
```

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

## Package facts

- **Package key:** brew:zf
- **Package manager:** Homebrew
- **Version:** 0.10.4
- **Source summary:** Command-line fuzzy finder that prioritizes matches on filenames
- **Homepage:** <https://github.com/natecraddock/zf>
- **Repository:** <https://github.com/natecraddock/zf>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- zf (alias)

## Install behavior

- Bottle: not available

## Freshness

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

zf is a command-line fuzzy finder and Zig/C fuzzy-ranking library designed around a common developer workflow: filtering file paths where the basename usually matters more than parent directories.

### Project history

Nathan Craddock describes zf as coming from frustration with existing fuzzy finders ranking the intended file below path matches. In 2021 he began experimenting with filename-prioritized matching, later separating the ranking idea from a Neovim file picker so it could be used as a standalone command and library.

### How it is used

zf reads newline-separated candidates from stdin and writes selected candidates to stdout, so it fits the same shell slot as tools like fzf. Its key behavior is ranking filename matches ahead of full-path matches, adding strict path matching when the query contains path separators, and supporting whitespace-separated query tokens for narrowing results.

### Why package nerds care

zf matters in package catalogs as a deliberately narrower fuzzy finder: it does not try to out-feature fzf, but packages one ranking opinion that is useful enough to be reused in editors, shell pipelines, and libraries.

### Timeline

- 2021: The author starts experimenting with filename-prioritized fuzzy matching after repeated file-search ranking misses.
- 2023-03-17: The author publishes a design write-up explaining zf, strict path matching, and the standalone tool/library direction.

### Related projects

- fzf and fzy are the comparison points used in the author write-up.
- telescope-zf-native.nvim reuses the zf ranking idea inside Neovim Telescope.
- nvim-find was an earlier Neovim file finder by the same author that helped motivate extracting the algorithm.

### Sources

- <https://github.com/natecraddock/nvim-find>
- <https://github.com/natecraddock/telescope-zf-native.nvim>
- <https://github.com/natecraddock/zf>
- <https://nathancraddock.com/blog/a-different-approach-to-fuzzy-finding/>


## Security Notes

narrow executable package without higher-risk signals.

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

## Other Package-Manager Records

- Nix - zf: normalized package name match | nixpkgs package indexes: pkgs/by-name/zf/zf/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Combined YAML source

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