Skip to content


Switch branches/tags

Latest commit

This commit basically reverts changes made in commits 7c89dfb ("Use
a closed pipe for stdin with -r") and 045bb0f ("Close also read end
of the pipe when it is no longer needed (#92)") and uses /dev/null
instead of closed pipe. Reading from /dev/null has exactly the same
effect like reading from closed pipe but it is simpler for construction,
all work is done in child process.

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Event Notify Test Runner

A utility for running arbitrary commands when files change. Uses kqueue(2) or inotify(7) to avoid polling. entr was written to make rapid feedback and automated testing natural and completely ordinary.

Source Installation - BSD, Mac OS, and Linux

make test
make install

To see available build options run ./configure -h

Docker and WSL

Incomplete inotify support on Windows Subsystem for Linux and Docker for Mac can cause entr to respond inconsistently. Setting the environment variable ENTR_INOTIFY_WORKAROUND will enable entr to operate in these environments.

Linux Features

Symlinks can be monitored for changes by setting the environment variable ENTR_INOTIFY_SYMLINK.

Man Page Examples

Rebuild a project if source files change, limiting output to the first 20 lines:

$ find src/ | entr sh -c 'make | head -n 20'

Launch and auto-reload a node.js server:

$ ls *.js | entr -r node app.js

Clear the screen and run a query after the SQL script is updated:

$ echo my.sql | entr -cp psql -f /_

Rebuild project if a source file is modified or added to the src/ directory:

$ while sleep 0.1; do ls src/*.rb | entr -d make; done

Auto-reload a web server, or terminate if the server exits

$ ls * | entr -rz ./httpd


A release history as well as features in the upcoming release are covered in the NEWS file.