# Install idutils with Homebrew, MacPorts, Nix, zypper

ID database and query tools. Version 4.6 via Homebrew; verified 2026-06-09. Also installable with nix: nix profile install nixpkgs#idutils.

## 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/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:idutils
- **Package manager:** Homebrew
- **Version:** 4.6
- **Source summary:** ID database and query tools
- **Homepage:** <https://www.gnu.org/software/idutils/>
- **Last updated:** 2026-06-09T14:55:45+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

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

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 4.6
## 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

## 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.8: normalized package name match | openSUSE Tumbleweed package metadata: idutils from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Language-Independent Identifier Database Tool | http://www.gnu.org/software/idutils/
- zypper - idutils-lang - 4.6-5.8: normalized package name match | openSUSE Tumbleweed package metadata: idutils-lang from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-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


## Combined YAML source

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