# Install idutils with Homebrew, MacPorts, Nix, zypper

ID database and query tools. Version 4.6 via Homebrew; verified 2026-06-09.

## Install

```sh
sudo av install brew:idutils
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install idutils
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install idutils
```

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

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#idutils
```

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

- zypper (92%):

```sh
sudo zypper install idutils
```

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

## Package facts

- **Package key:** brew:idutils
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/idutils>
- **Version:** 4.6
- **Source summary:** ID database and query tools
- **Homepage:** <https://www.gnu.org/software/idutils/>
- **Repository:** <https://git.savannah.gnu.org/cgit/idutils.git>
- **Upstream docs:** <https://www.gnu.org/software/idutils>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/idutils/idutils-4.6.tar.xz>
- **Last updated:** 2026-06-09T14:55:45+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- aid (cli)
- defid (cli)
- eid (cli)
- fid (cli)
- fnid (cli)
- lid (cli)
- mkid (cli)
- xtokid (cli)
- aid (alias)
- defid (alias)
- eid (alias)
- fid (alias)
- fnid (alias)
- lid (alias)
- mkid (alias)
- xtokid (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.6
- Package-manager updated: 2026-06-09
- Local data: ok
- Upstream repository: https://www.gnu.org/software/idutils/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GNU idutils is a family of command-line tools for building and querying an ID database: a token index over a set of files. The manual describes the database as containing file names, tokens, and a sparse matrix connecting tokens to the files where they appear.

The package sits in the lineage of pre-LSP code navigation: mkid builds the index, lid and related tools query it, and developers get fast answers about identifiers, includes, strings, and file names across large source trees.

### Project history

The mkid program predates GNU idutils. The historical notes preserved in the idutils source tree say Greg McGary posted mkid to comp.sources.unix in September 1987; Tom Horsley later led maintenance and released mkid2 in March 1991; McGary resumed maintenance until 2000.

GNU idutils generalized that idea into a suite: mkid for database creation, lid for token queries, fid for tokens in files, fnid for file-name lookup, xtokid for scanner testing, and historical specializations of lid. The GNU manual presents the tools as useful for large software projects and large text collections.

GNU release archives show packaged id-utils 3.2 in 1996, a 4.0 release in 2005, 4.x releases through 2012, and a Savannah git repository for the maintained source.

### Adoption history

idutils belongs to the older Unix developer-tool ecosystem alongside ctags, etags, grep, find, and early source browsers. Its adoption came from users who wanted a reusable token index before interactive IDE indexing became common.

Package metadata shows it remains available through Homebrew, MacPorts, Nix, and openSUSE-style package names. That longevity matters: the tool has outlived many editor-specific indexing systems because it is small, scriptable, and independent of any single editor.

### How it is used

A typical workflow is to run mkid over a source tree and then query the resulting database with lid or related commands. The manual's examples include finding files that reference a header, searching memos for a project token, and invoking an editor on files containing a function or variable.

Although ID originally stood for identifier, the manual is explicit that idutils indexes more than identifiers: it also treats numeric constants and some string contents as searchable tokens.

### Why package nerds care

GNU idutils is interesting because it packages source-code navigation as plain Unix data plumbing. The ID database is a compact artifact that can be regenerated, moved, queried, and scripted without a language server or project model.

It also preserves a pre-web-search, pre-IDE philosophy of code search: build a specialized local index once, then answer many small questions quickly from shell commands.

### Timeline

- 1987-09: mkid is posted to comp.sources.unix.
- 1991-03: mkid2 is released to comp.sources.unix.
- 1996-08-12: id-utils 3.2 appears in GNU FTP archives.
- 2005-12-23: id-utils 4.0 appears in GNU FTP archives.
- 2010-06-17: idutils 4.5 appears in GNU FTP archives.
- 2012-02-03: idutils 4.6 appears in GNU FTP archives.

### Related projects

- ctags, etags, grep, find, and later code-search tools such as GNU Global occupy adjacent code-navigation territory.
- The mkid lineage is the direct ancestor inside the idutils package history.

### Sources

- <https://formulae.brew.sh/formula/idutils>
- <https://ftp.gnu.org/gnu/idutils/>
- <https://git.savannah.gnu.org/cgit/idutils.git>
- <https://github.com/jimblandy/idutils>
- <https://www.gnu.org/software/idutils/manual/idutils.html>


## Security Notes

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

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

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** idutils
- **Version Scheme:** 0
- **Revision:** 1
- **Conflicts With:** coreutils
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - idutils: normalized package name match | nixpkgs package indexes: pkgs/by-name/id/idutils/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - idutils - 4.6-5.6: normalized package name match | openSUSE Tumbleweed package metadata: idutils from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Language-Independent Identifier Database Tool | http://www.gnu.org/software/idutils/
- zypper - idutils-lang - 4.6-5.6: normalized package name match | openSUSE Tumbleweed package metadata: idutils-lang from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Translations for package idutils | http://www.gnu.org/software/idutils/
- MacPorts - idutils: normalized package name match | MacPorts ports tree: devel/idutils/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## 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.
- [ack](https://www.automicvault.com/pkg/brew/ack/) - Shares av.db curated category or tags: cli, code-search, developer-tools.
- [cgrep](https://www.automicvault.com/pkg/brew/cgrep/) - Shares av.db curated category or tags: cli, code-search, developer-tools.
- [chainhook](https://www.automicvault.com/pkg/brew/chainhook/) - Shares av.db curated category or tags: cli, developer-tools, indexing.
- [codequery](https://www.automicvault.com/pkg/brew/codequery/) - Shares av.db curated category or tags: cli, code-search, developer-tools.
- [serpl](https://www.automicvault.com/pkg/brew/serpl/) - Shares av.db curated category or tags: cli, code-search, developer-tools.
- [the_silver_searcher](https://www.automicvault.com/pkg/brew/the-silver-searcher/) - Shares av.db curated category or tags: cli, code-search, developer-tools.
- [arm-linux-gnueabihf-binutils](https://www.automicvault.com/pkg/brew/arm-linux-gnueabihf-binutils/) - Shares av.db curated category or tags: cli, developer-tools, gnu.
- [arm-none-eabi-binutils](https://www.automicvault.com/pkg/brew/arm-none-eabi-binutils/) - Shares av.db curated category or tags: cli, developer-tools, gnu.
- [cflow](https://www.automicvault.com/pkg/brew/cflow/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, gnu.
- [cppi](https://www.automicvault.com/pkg/brew/cppi/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, gnu.
- [gperf](https://www.automicvault.com/pkg/brew/gperf/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, gnu.

## Combined YAML source

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