# Install tree with Homebrew, apk, chocolatey, apt, dnf, MacPorts, Nix, pacman, zypper

Display directories as trees (with optional color/HTML output). Version 2.3.2 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:tree
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install tree
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install tree
```

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

### Linux

- apk (92%):

```sh
sudo apk add tree
```

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

- Debian apt (92%):

```sh
sudo apt install tree
```

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

- dnf (92%):

```sh
sudo dnf install tree
```

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

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

- pacman (92%):

```sh
sudo pacman -S tree
```

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

- zypper (92%):

```sh
sudo zypper install tree
```

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

### Windows

- Chocolatey (92%):

```sh
choco install tree
```

  Evidence: Chocolatey community package catalog: tree from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','timberwinr'

## Package facts

- **Package key:** brew:tree
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/tree>
- **Version:** 2.3.2
- **Source summary:** Display directories as trees (with optional color/HTML output)
- **Homepage:** <https://oldmanprogrammer.net/source.php?dir=projects/tree>
- **Repository:** <https://github.com/Old-Man-Programmer/tree>
- **Upstream docs:** <https://github.com/Old-Man-Programmer/tree#readme>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://github.com/Old-Man-Programmer/tree/archive/refs/tags/2.3.2.tar.gz>
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- tree (cli)
- tree (alias)

## 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-09
- Package-manager version: 2.3.2
- Local data: ok
- Upstream repository: https://github.com/Old-Man-Programmer/tree
- Upstream latest detected: 2.3.2 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

tree is the classic Unix-style command that prints directory contents as an indented tree, with options for color, filtering, metadata, and machine-readable output.

### Project history

Steve Baker's README describes tree as a handy utility he had written earlier to display a directory tree and later released after adding color support. The man page identifies the program as copyright 1996-2026 and describes it as listing directory contents in a tree-like format.

The command grew by accretion in the Unix tradition. Early releases added filtering, modification-time sorting, ownership display, dircolors support, ANSI line drawing, HTML output, output redirection, depth limits, recursive HTML generation, portability fixes, and symlink handling.

Later releases made tree more useful for scripts and modern repositories: XML output, JSON output, UTF-8 handling, file-size sorting, gitignore support, NO_COLOR support, hyperlink output, from-file modes, ACL/SELinux display, and extensive portability fixes across Linux, macOS, Solaris, Cygwin, OS/2, HP NonStop, and other systems.

### Adoption history

tree became one of those small commands many users expect even though it is not part of every base system. Its broad package-manager presence reflects that: Homebrew, Debian, Ubuntu, Fedora, Arch, Alpine, MacPorts, Nix, Chocolatey, and others package a compatible `tree` executable.

Its adoption is driven less by a framework ecosystem than by muscle memory: README examples, dotfile screenshots, CI diagnostics, support tickets, and filesystem explanations often become easier once a directory hierarchy can be pasted as text.

### How it is used

Common use is simply `tree` or `tree DIR`, with options such as `-L` for depth, `-a` for hidden files, `-d` for directories only, `-I` or `-P` for filtering, `-J` for JSON, `-X` for XML, and `-H` for HTML.

In package-nerd culture, tree is both a diagnostic tool and a packaging sanity check: after install, after build, or inside a fixture, it gives a compact visual proof of what files landed where.

### Why package nerds care

tree is significant because it turns filesystem shape into a stable text artifact. That makes it unusually useful in package recipes, bug reports, documentation, and tests where `find` is correct but hard to read.

### Timeline

- 1996: Man page copyright range begins, matching the early public life of the Unix tree utility.
- 1997: version 1.2 adds date sorting, ignore patterns, name display controls, ownership output, and fuller dircolors support.
- 1999: version 1.3 adds HTML output, output redirection, depth limits, portability work, and symlink fixes.
- 2004: version 1.5.0 adds locale/UTF-8 work, OS/2 support, charset options, and switches license text to GPLv2.
- 2014: version 1.7.0 adds JSON output and more sorting and matching options.
- 2021: version 2.0.0 adds gitignore support and refactors output handling.
- 2026: version 2.3.2 continues portability and output fixes.

### Related projects

- tree overlaps with `find`, `ls`, `du`, and `git status --ignored`, but optimizes for readable hierarchy output rather than exhaustive query language.
- Its HTML, XML, and JSON modes made it useful beyond interactive terminal browsing.

### Sources

- <https://github.com/Old-Man-Programmer/tree>
- <https://raw.githubusercontent.com/Old-Man-Programmer/tree/master/CHANGES>
- <https://raw.githubusercontent.com/Old-Man-Programmer/tree/master/README>
- <https://raw.githubusercontent.com/Old-Man-Programmer/tree/master/doc/tree.1>


## Security Notes

doc example: narrow filesystem listing tool.

- **Geiger risk:** green / high
- doc example: narrow filesystem listing tool

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** tree
- **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 - tree - 2.2.1-1: normalized package name match | Debian stable package indexes: tree from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | displays an indented directory tree, in color | http://oldmanprogrammer.net/source.php?dir=projects/tree
- Nix - tree: normalized package name match | nixpkgs package indexes: pkgs/by-name/tr/tree/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - tree - 2.1.1-2ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: tree from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | displays an indented directory tree, in color | http://oldmanprogrammer.net/source.php?dir=projects/tree
- apk - tree - 2.3.2-r0: normalized package name match | Alpine Linux edge package indexes: tree from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Recursive directory indented listing of files | https://oldmanprogrammer.net/source.php?dir=projects/tree
- apk - tree-doc - 2.3.2-r0: normalized package name match | Alpine Linux edge package indexes: tree-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Recursive directory indented listing of files (documentation) | https://oldmanprogrammer.net/source.php?dir=projects/tree
- dnf - tree - 2.3.1-1.fc45: normalized package name match | Fedora Rawhide package metadata: tree from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | File system tree viewer | https://oldmanprogrammer.net/source.php?dir=projects/tree
- pacman - tree - 2.3.2-1: normalized package name match | Arch Linux sync databases: tree from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A directory listing program displaying a depth indented list of files | https://gitlab.com/OldManProgrammer/unix-tree
- zypper - tree - 2.3.2-1.1: normalized package name match | openSUSE Tumbleweed package metadata: tree from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | File listing as a tree | https://oldmanprogrammer.net/tar/tree/
- MacPorts - tree: normalized package name match | MacPorts ports tree: sysutils/tree/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - tree: normalized package name match | Chocolatey community package catalog: tree from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','timberwinr'


## 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.
- [ansible](https://www.automicvault.com/pkg/brew/ansible/) - Popular package that depends on this formula.
- [pass](https://www.automicvault.com/pkg/brew/pass/) - Popular package that depends on this formula.
- [tre-command](https://www.automicvault.com/pkg/brew/tre-command/) - Shares av.db curated category or tags: cli, directory-listing, filesystem, system.
- [dfc](https://www.automicvault.com/pkg/brew/dfc/) - Shares av.db curated category or tags: cli, filesystem, system, terminal.
- [facad](https://www.automicvault.com/pkg/brew/facad/) - Shares av.db curated category or tags: cli, directory-listing, filesystem, system, terminal.
- [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.
- [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.

## Combined YAML source

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