macOS
brew install entrlocal Homebrew formula metadata
sudo port install entrMacPorts ports tree · sysutils/entr/Portfile · source: api.github.com
brew
Run arbitrary commands when files change. Version 5.8 via Homebrew; verified from local package data.
install
brew install entrlocal Homebrew formula metadata
sudo port install entrMacPorts ports tree · sysutils/entr/Portfile · source: api.github.com
sudo apk add entrAlpine Linux edge package indexes · entr · source: dl-cdn.alpinelinux.org
sudo apt install entrDebian stable package indexes · entr · source: deb.debian.org
sudo dnf install entrFedora Rawhide package metadata · entr · source: dl.fedoraproject.org
nix profile install nixpkgs#entrnixpkgs package indexes · pkgs/by-name/en/entr/package.nix · source: api.github.com
sudo pacman -S entrArch Linux sync databases · entr · source: geo.mirror.pkgbuild.com
sudo zypper install entropenSUSE Tumbleweed package metadata · entr · source: download.opensuse.org
overview
Run arbitrary commands when files change
history
entr is a small Unix command that runs arbitrary commands when input files change. Its appeal comes from staying close to shell pipelines: users pipe a file list into `entr`, and the tool uses kqueue or inotify to avoid polling.
The README describes entr as an Event Notify Test Runner written to facilitate rapid feedback on the command line. Its implementation deliberately relies on native operating-system event facilities, using kqueue on BSD/macOS-style systems and inotify on Linux.
The release history shows steady maintenance across portability, process-control, and file-notification edge cases. Version 4.3 in 2019 moved hosting from Bitbucket to GitHub and replaced Mercurial with Git in its system-test workflow, a useful marker in the project's packaging history.
entr is broadly packaged for Unix-like systems. The input package facts list Alpine, Homebrew, Debian, Fedora, MacPorts, Nix, Arch, Ubuntu, and openSUSE package names, and Homebrew formula analytics showed thousands of annual installs during this run.
Its adoption is helped by having no project-specific build system assumptions: examples use standard shell pipelines with `ls`, `find`, `make`, `psql`, Node, Ruby, and web servers, so it fits into many language ecosystems without becoming part of any one of them.
Common uses include rebuilding a project when source files change, running tests after successful builds, restarting a development server, clearing a terminal before command output, and re-running database scripts. The web documentation explains restart mode, directory watching for new files, status filters, and the `/_` placeholder for the changed file.
entr's design leaves file discovery to other tools and command execution to the shell. That keeps the package small, but it also means users compose it with `find`, `ls`, `ag`, `ack`, `make`, or language-specific commands depending on the project.
entr is a classic package-manager tool: tiny, portable, scriptable, and more powerful because it composes with everything else. It occupies the space between ad hoc shell loops and heavier file-watcher daemons, which is why it shows up in many Unix package collections.
For maintainers, the interesting bits are platform event semantics and terminal/process behavior, not dependency management. The NEWS file is mostly a chronicle of inotify, kqueue, signals, file limits, child processes, and terminal handling.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
entr | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://eradman.com/entrproject/
install metadata
| Package key | brew:entr |
|---|---|
| Version | 5.8 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/entr |
| Homepage | https://eradman.com/entrproject/ |
| Repository | https://github.com/eradman/entr |
| Upstream docs | https://eradman.com/entrproject |
| License | ISC |
| Source archive | https://eradman.com/entrproject/code/entr-5.8.tar.gz |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | entr |
| 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 |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
entr 5.7-1
Run arbitrary commands when files change
https://eradman.com/entrproject/
sudo apt install entrentr
nix profile install nixpkgs#entrentr 5.5-1
Run arbitrary commands when files change
https://eradman.com/entrproject/
sudo apt install entrentr 5.8-r0
Event Notify Test Runner: Run arbitrary commands when files change
https://eradman.com/entrproject
sudo apk add entrentr-doc 5.8-r0
Event Notify Test Runner: Run arbitrary commands when files change (documentation)
https://eradman.com/entrproject
sudo apk add entr-docentr 5.8-1.fc45
Run arbitrary commands when files change
http://eradman.com/entrproject/
sudo dnf install entrentr 5.8-1
Run arbitrary commands when files change
http://eradman.com/entrproject
sudo pacman -S entrentr 5.8-1.2
A utility for running arbitrary commands when files change
https://eradman.com/entrproject/
sudo zypper install entrentr
sudo port install entrsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.