# Install watchman with Homebrew, chocolatey, MacPorts, Nix, scoop, apt, winget

Watch files and take action when they change. Version 2026.07.06.00 via Homebrew; verified 2026-07-07.

## Install

```sh
sudo av install brew:watchman
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install watchman
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install watchman
```

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

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#watchman
```

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

- Ubuntu apt (92%):

```sh
sudo apt install python3-pywatchman
```

  Evidence: Ubuntu 24.04 LTS package indexes: python3-pywatchman from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz

### Windows

- Chocolatey (92%):

```sh
choco install watchman
```

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

- Scoop (92%):

```sh
scoop install main/watchman
```

  Evidence: Scoop official bucket manifest trees: bucket/watchman.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id facebook.watchman -e
```

  Evidence: Windows Package Manager source index: facebook.watchman from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:watchman
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/watchman>
- **Version:** 2026.07.06.00
- **Source summary:** Watch files and take action when they change
- **Homepage:** <https://facebook.github.io/watchman/>
- **Repository:** <https://github.com/facebook/watchman>
- **Upstream docs:** <https://facebook.github.io/watchman>
- **License:** MIT
- **Source archive:** <https://github.com/facebook/watchman/archive/refs/tags/v2026.07.06.00.tar.gz>
- **Last updated:** 2026-07-07T21:44:34Z
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- watchman (cli)
- watchman-diag (cli)
- watchman-make (cli)
- watchman-replicate-subscription (cli)
- watchman-wait (cli)
- watchmanctl (cli)
- watchman (alias)
- watchman-diag (alias)
- watchman-make (alias)
- watchman-replicate-subscription (alias)
- watchman-wait (alias)
- watchmanctl (alias)

## Dependencies

- edencommon
- fb303
- fbthrift
- fmt
- folly
- glog
- pcre2
- python@3.14

## Build dependencies

- cmake
- cpptoml
- gflags
- googletest
- libevent
- mvfst
- openssl@4
- pkgconf
- python-setuptools
- rust

## 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: 2026.07.06.00
- Package-manager updated: 2026-07-07
- Local data: ok
- Upstream repository: https://github.com/facebook/watchman
- info: No cached GitHub release or tag data was available.
## Project history and usage

Watchman is Meta's file-watching service for recording file changes, querying watched roots, and triggering actions. Unlike single-shot command rerunners, Watchman is a daemon-like service with clients, subscriptions, clocks, queries, triggers, and source-control-aware behavior for very large working trees.

### Project history

The Watchman documentation says the project has been used in production since a few weeks after it was first written, which explains its emphasis on backward compatibility and conservative behavior. The README states that Watchman is primarily maintained by Meta's source control team and supports Windows, macOS, Linux on recent Ubuntu and Fedora releases, and Python, Rust, and JavaScript clients.

Release notes show a mature 3.x and 4.x era by 2015. In 2015, Watchman added relative-root query support, BSER support for the Node client, official PyPI release machinery for pywatchman, server capabilities, recursive glob query improvements, and significant macOS and Linux recrawl/crawl-speed improvements. In 2016, the 4.x line continued with configuration and performance work, including source-control-settling behavior and the 4.7 release's shared-lock queries and Buck-oriented glob-generator integration.

The 4.8 notes describe a major internal transition: Watchman was converted from C to C++, subscriptions and triggers became more concurrent, BSERv2 was implemented, Python 3 support improved, and macOS launchd socket-activation behavior changed for Homebrew users. The 4.9.0 release in 2017 added content SHA-1 hashing, experimental source-control-aware query mode, Windows beta status, and several Windows reliability improvements. Since May 2020, the compatibility docs say Watchman is continuously deployed inside Facebook/Meta and public tags became date-based rather than manually versioned.

### Adoption history

Watchman's adoption is strongest where file watching must scale across large repos and developer tools. The official docs describe recursive roots, subscriptions, queries since a clock, triggers, and conservative handling of uncertain state. The Jest CLI still exposes a `--watchman` option for file crawling, defaulting to true, which is a visible example of Watchman becoming infrastructure under JavaScript test tooling.

The installation docs also reflect a split between Meta's upstream releases and community packaging. Homebrew and MacPorts are documented for macOS, Chocolatey for Windows, and upstream release packages for Fedora and Ubuntu are recommended over stale distro packages. That history fits Watchman's role: users often install it not because they plan to call it directly every day, but because another tool wants a reliable file-change indexer.

### How it is used

A basic Watchman workflow establishes a watch root and then adds a trigger, for example watching a source directory and running a minifier when CSS files change. More advanced users issue file queries, subscribe to changes, configure roots with `/etc/watchman.json` or `.watchmanconfig`, and tune OS-specific limits such as Linux inotify watch counts.

The service model is the key distinction. Clients ask what changed since a clock, subscribe to a stream, or defer events during source-control operations. Source-control-aware subscriptions can defer during Mercurial updates, and the 4.9 release notes describe source-control-aware queries as a way to keep responses closer to the size of the user's changes rather than the size of the entire repository.

### Why package nerds care

Watchman matters to package nerds because it is a serious answer to the unreliable, platform-specific, resource-limited world of filesystem notifications. It sits underneath build systems, test runners, source-control tooling, and editor-adjacent workflows, exposing stable APIs while hiding inotify, FSEvents, Windows, recrawl, overflow, and large-tree behavior behind a service boundary.

### Timeline

- 2015-06: Watchman 3.3.0 adds relative-root query and subscription support.
- 2015-08: pywatchman 1.0.0 and Node fb-watchman BSER support appear in release notes.
- 2015-09: Watchman 3.8.0 adds capabilities and client capability checks.
- 2016-09: Watchman 4.7.0 reduces memory use, adds shared-lock queries, and notes Buck integration with the glob generator.
- 2017-08-24: Watchman 4.9.0 adds content SHA-1 fields, experimental source-control-aware query mode, and promotes Windows support to beta.
- 2020-05: Compatibility docs describe the move to continuous deployment and date-based tags.
- 2023: Watchman documentation site identifies Meta Platforms as the site owner and README names Meta's source control team as primary maintainer.

### Related projects

- Watchman is related to Sapling and Meta source-control infrastructure, Jest's file crawling, Buck-style build tooling, React Native and Metro-era watch workflows, pywatchman, fb-watchman for Node, and simpler file-watching command runners such as watchexec and entr.

### Sources

- <https://facebook.github.io/watchman/>
- <https://facebook.github.io/watchman/docs/config>
- <https://facebook.github.io/watchman/docs/install>
- <https://facebook.github.io/watchman/docs/scm-query>
- <https://jestjs.io/docs/cli>
- <https://raw.githubusercontent.com/facebook/watchman/main/README.markdown>
- <https://raw.githubusercontent.com/facebook/watchman/main/website/docs/compatibility.md>
- <https://raw.githubusercontent.com/facebook/watchman/main/website/docs/release-notes.md>


## Security Notes

No matching local secret-handling manifest was found for watchman. Nucleus package metadata is still published here so future coverage has a stable package URL.



## 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: /etc/watchman.json, .watchmanconfig
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** watchman
- **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 - watchman: normalized package name match | nixpkgs package indexes: pkgs/by-name/wa/watchman/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - python3-pywatchman - 4.9.0-7build4: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-pywatchman from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python library for Watchman and related utilities | https://facebook.github.io/watchman
- Ubuntu apt - watchman - 4.9.0-7build4: normalized package name match | Ubuntu 24.04 LTS package indexes: watchman from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | File watching service | https://facebook.github.io/watchman
- MacPorts - watchman: normalized package name match | MacPorts ports tree: sysutils/watchman/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - watchman: normalized package name match | Chocolatey community package catalog: watchman from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','vscode'
- Scoop - main/watchman: normalized package name match | Scoop official bucket manifest trees: bucket/watchman.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - facebook.watchman: normalized package name match | Windows Package Manager source index: facebook.watchman from https://cdn.winget.microsoft.com/cache/source.msix


## 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.
- [fbthrift](https://www.automicvault.com/pkg/brew/fbthrift/) - Runtime dependency declared by Homebrew.
- [pcre2](https://www.automicvault.com/pkg/brew/pcre2/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [gflags](https://www.automicvault.com/pkg/brew/gflags/) - Build dependency declared by Homebrew.
- [watchexec](https://www.automicvault.com/pkg/brew/watchexec/) - Shares av.db curated category or tags: automation, cli, developer-tools, file-watcher, file-watching.
- [fsw](https://www.automicvault.com/pkg/brew/fsw/) - Shares av.db curated category or tags: automation, cli, developer-tools, file-watcher, file-watching.
- [funzzy](https://www.automicvault.com/pkg/brew/funzzy/) - Shares av.db curated category or tags: automation, cli, developer-tools, file-watcher, file-watching.
- [gaze](https://www.automicvault.com/pkg/brew/gaze/) - Shares av.db curated category or tags: automation, cli, developer-tools, file-watcher, file-watching.
- [wgo](https://www.automicvault.com/pkg/brew/wgo/) - Shares av.db curated category or tags: automation, cli, developer-tools, file-watcher, file-watching.
- [fswatch](https://www.automicvault.com/pkg/brew/fswatch/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [watcher](https://www.automicvault.com/pkg/brew/watcher/) - Shares av.db curated category or tags: cli, developer-tools, file-watcher, file-watching.
- [atomist-cli](https://www.automicvault.com/pkg/brew/atomist-cli/) - Shares av.db curated category or tags: automation, cli, developer-tools.

## Combined YAML source

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