# Install xdg-ninja with Homebrew, apk, Nix

Check your $HOME for unwanted files and directories. Version 0.2.0.2 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:xdg-ninja
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install xdg-ninja
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add xdg-ninja
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#xdg-ninja
```

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

## Package facts

- **Package key:** brew:xdg-ninja
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/xdg-ninja>
- **Version:** 0.2.0.2
- **Source summary:** Check your $HOME for unwanted files and directories
- **Homepage:** <https://github.com/b3nj5m1n/xdg-ninja>
- **Repository:** <https://github.com/b3nj5m1n/xdg-ninja>
- **Upstream docs:** <https://github.com/b3nj5m1n/xdg-ninja#readme>
- **License:** MIT
- **Source archive:** <https://github.com/b3nj5m1n/xdg-ninja/archive/refs/tags/v0.2.0.2.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- xdg-ninja (cli)
- xdg-ninja (alias)

## Dependencies

- glow

## Uses from macOS

- jq

## Install behavior

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

## Freshness

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

xdg-ninja is a shell-based checker for users who want a cleaner home directory and better XDG Base Directory compliance. It scans for known dotfiles and directories in $HOME, then reports whether each one can be moved and how to do it.

### Project history

The project began in May 2022 with an initial shell implementation and an early import of supported-program data from the Arch Wiki XDG Base Directory page. The README still describes the configuration corpus as coming from the Arch Wiki, antidot, and user contributions.

The tool deliberately keeps the main checker simple: a POSIX-like shell script, jq, and find are enough to run the tests. Later work added a Haskell helper, xdgnj, for generating and editing the JSON program configurations, while the README emphasizes that the shell script remains the core checker.

### Adoption history

xdg-ninja grew with dotfiles culture and the recurring frustration that many command-line programs still create legacy ~/.name files even after the freedesktop.org XDG Base Directory Specification defined preferred locations for config, data, state, cache, and runtime files.

The README documents Nix and Homebrew usage, but also warns that because upstream does not cut regular releases, Homebrew users should install and upgrade from HEAD. That is an unusually transparent adoption note and explains why package-manager versions may lag behind the living configuration database.

### How it is used

Users run xdg-ninja in their home environment. The script checks known paths, prints warnings for unwanted files or directories, and renders Markdown help explaining whether the item is movable and what setting or migration step can relocate it.

Contributors add JSON files under programs/. Each file names a program and the $HOME paths it creates, plus Markdown help for movable or unsupported cases. The XN_PROGRAMS_DIR environment variable can point the checker at an alternate configuration directory.

### Why package nerds care

xdg-ninja is important to package nerds because it turns the messy social problem of XDG compliance into a testable, crowd-maintained catalog. It is half lint tool, half living index of which CLI programs respect modern Unix home-directory conventions.

It also exposes a subtle packaging issue: data freshness matters more than binary freshness. A stale packaged xdg-ninja can miss newly documented offenders even if the shell code itself still works.

### Timeline

- 2021-05-08: XDG Base Directory Specification 0.8 publication date.
- 2022-05-12: xdg-ninja initial commit and first implementation.
- 2022-05-12: Early supported-program data imported from the Arch Wiki article.
- 2022-06-06: v0.2.0.0 tag.
- 2024-02-03: v0.2.0.2 tag for the xdgnj helper release line.

### Related projects

- XDG Base Directory Specification: defines the directory conventions xdg-ninja checks against.
- Arch Wiki XDG Base Directory page: one of the configuration-data sources named by upstream.
- antidot: another source of XDG migration knowledge credited by the README.
- xdgnj: upstream helper for creating and previewing xdg-ninja program configuration files.

### Sources

- Git history and tags: https://github.com/b3nj5m1n/xdg-ninja
- README, b3nj5m1n/xdg-ninja: https://github.com/b3nj5m1n/xdg-ninja#readme
- XDG Base Directory Specification: https://specifications.freedesktop.org/basedir-spec/latest/
- xdg-ninja shell script: https://github.com/b3nj5m1n/xdg-ninja/blob/main/xdg-ninja.sh


## Security Notes

narrow executable package without higher-risk signals.

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


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ./programs/
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** xdg-ninja
- **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

- Nix - xdg-ninja: normalized package name match | nixpkgs package indexes: pkgs/by-name/xd/xdg-ninja/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - xdg-ninja - 0.2.0.2-r0: normalized package name match | Alpine Linux edge package indexes: xdg-ninja from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Shell script which checks your home directory for unwanted files and directories | https://github.com/b3nj5m1n/xdg-ninja


## 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.
- [glow](https://www.automicvault.com/pkg/brew/glow/) - Runtime dependency declared by Homebrew.
- [augeas](https://www.automicvault.com/pkg/brew/augeas/) - Shares av.db curated category or tags: cli, configuration, system.
- [borgmatic](https://www.automicvault.com/pkg/brew/borgmatic/) - Shares av.db curated category or tags: cli, configuration, system.
- [comtrya](https://www.automicvault.com/pkg/brew/comtrya/) - Shares av.db curated category or tags: cli, dotfiles, system.
- [desktop-file-utils](https://www.automicvault.com/pkg/brew/desktop-file-utils/) - Shares av.db curated category or tags: cli, system, xdg.
- [displayplacer](https://www.automicvault.com/pkg/brew/displayplacer/) - Shares av.db curated category or tags: cli, configuration, system.
- [dwatch](https://www.automicvault.com/pkg/brew/dwatch/) - Shares av.db curated category or tags: cli, configuration, system.
- [kanata](https://www.automicvault.com/pkg/brew/kanata/) - Shares av.db curated category or tags: cli, configuration, system.
- [libpaper](https://www.automicvault.com/pkg/brew/libpaper/) - Shares av.db curated category or tags: cli, configuration, system.
- [modclean](https://www.automicvault.com/pkg/npm/modclean/) - Local package facts share a topical domain. Shared terms: cli, directories, files, system, unwanted.
- [copy-files-from-to](https://www.automicvault.com/pkg/npm/copy-files-from-to/) - Local package facts share a topical domain. Shared terms: cli, configuration, directory, files, system.
- [cpx](https://www.automicvault.com/pkg/npm/cpx/) - Local package facts share a topical domain. Shared terms: cli, directories, directory, files, system.

## Combined YAML source

View the package source record on GitHub. [combined/xdg-ninja.yml](https://github.com/automic-vault/db/blob/main/combined/xdg-ninja.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
