# Install xdot with Homebrew, apt, Nix, pacman

Interactive viewer for graphs written in Graphviz's dot language. Version 1.6 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:xdot
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install xdot
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install xdot
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#xdot
```

  Evidence: nixpkgs package indexes: xdot from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S xdot
```

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

## Package facts

- **Package key:** brew:xdot
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/xdot>
- **Version:** 1.6
- **Source summary:** Interactive viewer for graphs written in Graphviz's dot language
- **Homepage:** <https://github.com/jrfonseca/xdot.py>
- **Repository:** <https://github.com/jrfonseca/xdot.py>
- **Upstream docs:** <https://github.com/jrfonseca/xdot.py#readme>
- **License:** LGPL-3.0-or-later
- **Source archive:** <https://files.pythonhosted.org/packages/32/68/13f80d47bffda03eaf05bd076d1b2ef9a1cf39b461b37e32f303bcf048de/xdot-1.6.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- xdot (cli)
- xdot (alias)

## Dependencies

- adwaita-icon-theme
- graphviz
- gtk+3
- numpy
- py3cairo
- pygobject3
- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.6
- Local data: ok
- Upstream repository: https://github.com/jrfonseca/xdot.py
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

xdot.py is an interactive GTK/Cairo viewer for graphs written in Graphviz DOT. It runs Graphviz to produce xdot drawing commands, then renders and navigates the result as a desktop viewer or embeddable Python widget.

### Project history

The project started in December 2007 with early commits for click handling, parser cleanup, and separating the graph widget from the window. Its README explains the core design: use Graphviz xdot output as an intermediate format and render it with Python GTK bindings and Cairo.

xdot.py matured through small releases rather than a large rewrite. Tags show 0.4 in 2009, 0.5 in 2013, 1.0 in 2018, and later 1.x releases into the mid-2020s. Git history also records the GTK3 port in 2013, Python 3 enforcement in 2017, automatic PyPI release uploads in 2017, and PyGObject being listed explicitly as a dependency in 2023.

The README status note is unusually candid: the script became more popular than expected, met the original maintainer needs, and needed broader community maintenance or an official fork. That helps explain why xdot.py has persisted as a useful but conservative viewer in the Graphviz ecosystem.

### Adoption history

xdot.py was adopted by developers who generate DOT graphs from compilers, profilers, build systems, static analysis tools, and documentation pipelines and need an interactive viewer rather than a static PNG or PDF. The README highlights zooming, keyboard and mouse navigation, URL events, animated jumps, and highlighting nodes and edges under the mouse.

The project is distributed through PyPI, Linux distribution packages, and Homebrew. Its adoption is bound to Graphviz itself: Graphviz documents xdot as an extended DOT output that carries detailed drawing information, and xdot.py uses that as its rendering substrate.

### How it is used

From the command line, users run xdot with a DOT file or standard input. By default it filters through Graphviz dot, while -n tells xdot.py to assume input is already in xdot format, such as output from dot -Txdot.

As a library, applications can embed the xdot widget to display generated graphs inside their own Python GTK interfaces. That made it useful for tools that already generate DOT internally and want inspection, zoom, search, or clickable graph nodes.

### Why package nerds care

xdot.py is the package index answer to a specific Graphviz pain point: DOT is everywhere, but static image output is awkward for large graphs. It is a small GUI utility whose dependencies explain a lot about desktop Python packaging: Graphviz, GTK, PyGObject, Cairo, and NumPy all have to line up.

For package nerds, it is also a bridge between CLI graph generators and interactive desktop inspection. Installing xdot often means turning a pile of .dot files from other tools into something navigable.

### Timeline

- 2007-12-22: First public commits for the interactive viewer.
- 2009-08-09: 0.4 tag.
- 2013-04-03: GTK3 port appears in Git history.
- 2017-05-16: Python 3 use asserted in Git history.
- 2018-09-12: 1.0 tag.
- 2024-05-14: 1.4 tag.
- 2025-12-08: 1.6 tag.

### Related projects

- Graphviz: layout engine and xdot output producer used by xdot.py.
- Graphviz xdot format: extended DOT drawing-language output consumed by the viewer.
- ZGRViewer: another Graphviz/DOT viewer linked by the README.
- dot2tex: related converter for Graphviz output into TeX drawing formats, linked by the README.

### Sources

- Git history and tags: https://github.com/jrfonseca/xdot.py
- Graphviz DOT/xdot output docs: https://graphviz.org/docs/outputs/canon/#xdot
- Graphviz xdot attribute type docs: https://graphviz.org/docs/attr-types/xdot/
- README, jrfonseca/xdot.py: https://github.com/jrfonseca/xdot.py#readme


## 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:** xdot
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - xdot - 1.4-1: normalized package name match | Debian stable package indexes: xdot from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | interactive viewer for Graphviz dot files | https://github.com/jrfonseca/xdot.py
- Nix - xdot: normalized package name match | nixpkgs package indexes: xdot from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - xdot - 1.3-1: normalized package name match | Ubuntu 24.04 LTS package indexes: xdot from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | interactive viewer for Graphviz dot files | https://github.com/jrfonseca/xdot.py
- pacman - xdot - 1.6-1: normalized package name match | Arch Linux sync databases: xdot from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Interactive viewer for graphs written in Graphviz's dot language | https://github.com/jrfonseca/xdot.py


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [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.
- [graphviz](https://www.automicvault.com/pkg/brew/graphviz/) - Runtime dependency declared by Homebrew.
- [gtk+3](https://www.automicvault.com/pkg/brew/gtk-3/) - Runtime dependency declared by Homebrew.
- [numpy](https://www.automicvault.com/pkg/brew/numpy/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [git-big-picture](https://www.automicvault.com/pkg/brew/git-big-picture/) - Shares av.db curated category or tags: cli, developer-tools, graphviz, python, visualization.
- [gprof2dot](https://www.automicvault.com/pkg/brew/gprof2dot/) - Shares av.db curated category or tags: cli, developer-tools, dot, graphviz, visualization.
- [makefile2graph](https://www.automicvault.com/pkg/brew/makefile2graph/) - Shares av.db curated category or tags: cli, developer-tools, graphviz, visualization.
- [snakeviz](https://www.automicvault.com/pkg/brew/snakeviz/) - Shares av.db curated category or tags: cli, developer-tools, python, visualization.
- [chronograf](https://www.automicvault.com/pkg/brew/chronograf/) - Shares av.db curated category or tags: cli, developer-tools, visualization.
- [codevis](https://www.automicvault.com/pkg/brew/codevis/) - Shares av.db curated category or tags: cli, developer-tools, visualization.
- [flamebearer](https://www.automicvault.com/pkg/brew/flamebearer/) - Shares av.db curated category or tags: cli, developer-tools, visualization.
- [flamegraph](https://www.automicvault.com/pkg/brew/flamegraph/) - Shares av.db curated category or tags: cli, developer-tools, visualization.
- [graphviz2drawio](https://www.automicvault.com/pkg/brew/graphviz2drawio/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, developer, developer-tools, dot, graphviz.

## Combined YAML source

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