# Install watcher with Homebrew, apt, Nix

Filesystem watcher, works anywhere, simple, efficient and friendly. Version 0.14.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:watcher
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install watcher
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install python3-watcher
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#watcher
```

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

## Package facts

- **Package key:** brew:watcher
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/watcher>
- **Version:** 0.14.5
- **Source summary:** Filesystem watcher, works anywhere, simple, efficient and friendly
- **Homepage:** <https://github.com/e-dant/watcher>
- **Repository:** <https://github.com/e-dant/watcher>
- **Upstream docs:** <https://github.com/e-dant/watcher#readme>
- **License:** MIT
- **Source archive:** <https://github.com/e-dant/watcher/archive/refs/tags/0.14.5.tar.gz>
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- wtr.watcher (cli)
- wtr.watcher (alias)

## Build dependencies

- cmake

## 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: 0.14.5
- Local data: ok
- Upstream repository: https://github.com/e-dant/watcher
- Upstream latest detected: 0.14.5 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

Watcher is e-dant's cross-platform filesystem event watcher, exposed both as a C++ library and as a CLI that prints filesystem events. Its niche is deliberately small and systems-oriented: a dependency-minimal watcher that can be embedded from C++ or reached through C, Python, Rust, Node.js, and Go bindings.

### Project history

Watcher appeared publicly as a Show HN post on October 18, 2022, where the author described it as a simple, efficient, dependency-free, header-only filesystem event watcher. In that launch discussion, the author explained the early implementation tradeoff: a baseline standard-library watcher, OS-specific support where useful, and attention to correctness on large trees rather than simply wrapping one kernel notification API.

The repository's release history shows the project maturing from the 0.9 and 0.10 series into 0.12, 0.13, and 0.14. By the 0.14.0 release, the project had added a Go package, refined Windows DLL exports for the C interface, and improved CMake behavior for subproject use. The 0.13.7 and later releases also show the kind of maintenance expected from filesystem tools: inotify rename fixes, Darwin/FSEvents fixes, pkg-config files, version flags, C++17 portability, and test/CI updates.

### Adoption history

Watcher remains a modest project compared with older file watching services, but its adoption signals are visible in developer packaging channels. The GitHub project page shows hundreds of stars, the README badges point to Conan, Cargo, PyPI, Go modules, Homebrew, Nix, and GNU Guix, and release artifacts are published for multiple operating systems and architectures.

### How it is used

The README presents Watcher as both a library and a program. Library users call a `watch` function or class with a path and callback, then receive event objects containing path name, path type, effect type, event time, and an associated path for rename-style events. CLI users can run the bundled watcher program and pipe the resulting JSON stream into other tools.

The project is unusually binding-heavy for its size. The README includes quick starts for C++, C, Python, Rust, Node.js, and Go, which positions Watcher less as an end-user automation command like watchexec and more as a portable event substrate for developers who want file-change events inside their own applications.

### Why package nerds care

Watcher is significant to package nerds because it tackles a famously awkward portability problem: every major OS exposes different filesystem event semantics, and correctness around renames, recursive trees, symlinks, and editor save patterns is full of edge cases. A small, dependency-minimal C++17 implementation with pkg-config, CMake, C ABI, and language bindings is exactly the sort of library packagers scrutinize for ABI surface, portability, testability, and platform-specific behavior.

### Timeline

- 2022-10-18: Watcher is introduced on Hacker News as a filesystem watcher.
- 2023-2024: 0.10 through 0.12 release tags mark early public library and CLI maturation.
- 2025-09-01: 0.13.7 adds pkg-config files, a CLI version flag, C++17 portability fixes, and inotify rename fixes.
- 2025-12-08: 0.14.0 adds a Go package and improves C/CMake integration.
- 2026-02-23: 0.14.5 fixes cross-directory path-name caching and inotify/Linux reporting.

### Related projects

- Watcher sits near fsnotify-style libraries, kqueue/inotify/FSEvents/ReadDirectoryChangesW wrappers, Watchman, watchexec, entr, and language-specific file-watching packages. Its closest distinction is being an embeddable C++ library with a CLI, rather than a long-running service or a command rerunner.

### Sources

- <https://conan.io/center/recipes/watcher>
- <https://github.com/e-dant/watcher>
- <https://github.com/e-dant/watcher/releases>
- <https://news.ycombinator.com/item?id=33247155>


## 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:** watcher
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Conflicts With:** tabiew
- **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 - python3-watcher - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: python3-watcher from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - Python libraries | https://github.com/openstack/watcher
- Debian apt - watcher-api - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: watcher-api from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - API server | https://github.com/openstack/watcher
- Debian apt - watcher-applier - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: watcher-applier from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - Applier | https://github.com/openstack/watcher
- Debian apt - watcher-common - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: watcher-common from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - common files | https://github.com/openstack/watcher
- Debian apt - watcher-decision-engine - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: watcher-decision-engine from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - Decision Engine | https://github.com/openstack/watcher
- Debian apt - watcher-doc - 14.0.0-1+deb13u1: normalized package name match | Debian stable package indexes: watcher-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | OpenStack Cloud Optimization as a Service - doc | https://github.com/openstack/watcher
- Nix - watcher: normalized package name match | nixpkgs package indexes: pkgs/by-name/wa/watcher/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - python3-watcher - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-watcher from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - Python 3 libraries | https://opendev.org/openstack/watcher
- Ubuntu apt - watcher-api - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: watcher-api from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - API server | https://opendev.org/openstack/watcher
- Ubuntu apt - watcher-applier - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: watcher-applier from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - Applier | https://opendev.org/openstack/watcher
- Ubuntu apt - watcher-common - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: watcher-common from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - common files | https://opendev.org/openstack/watcher
- Ubuntu apt - watcher-decision-engine - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: watcher-decision-engine from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - Decision Engine | https://opendev.org/openstack/watcher
- Ubuntu apt - watcher-doc - 2:12.0.0-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: watcher-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | OpenStack Cloud Optimization as a Service - doc | https://opendev.org/openstack/watcher


## 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.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [fswatch](https://www.automicvault.com/pkg/brew/fswatch/) - Shares av.db curated category or tags: cli, cross-platform, developer-tools, file-watcher, file-watching.
- [fsw](https://www.automicvault.com/pkg/brew/fsw/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [funzzy](https://www.automicvault.com/pkg/brew/funzzy/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [gaze](https://www.automicvault.com/pkg/brew/gaze/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [watchexec](https://www.automicvault.com/pkg/brew/watchexec/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [watchman](https://www.automicvault.com/pkg/brew/watchman/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [wgo](https://www.automicvault.com/pkg/brew/wgo/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [abi-dumper](https://www.automicvault.com/pkg/brew/abi-dumper/) - Shares av.db curated category or tags: cli, cpp, developer-tools.

## Combined YAML source

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