Watchexec CLI

A simple standalone tool that watches a path and runs a command whenever it detects modifications.

Example use cases:

Features

Anti-Features

Usage Examples

Watch all JavaScript, CSS and HTML files in the current directory and all subdirectories for changes, running make when a change is detected:

$ watchexec --exts js,css,html make

Call make test when any file changes in this directory/subdirectory, except for everything below target:

$ watchexec -i target make test

Call ls -la when any file changes in this directory/subdirectory:

$ watchexec -- ls -la

Call/restart python server.py when any Python file in the current directory (and all subdirectories) changes:

$ watchexec -e py -r python server.py

Call/restart my_server when any file in the current directory (and all subdirectories) changes, sending SIGKILL to stop the command:

$ watchexec -r -s SIGKILL my_server

Send a SIGHUP to the command upon changes (Note: using -n here we're executing my_server directly, instead of wrapping it in a shell:

$ watchexec -n -s SIGHUP my_server

Run make when any file changes, using the .gitignore file in the current directory to filter:

$ watchexec make

Run make when any file in lib or src changes:

$ watchexec -w lib -w src make

Run bundle install when the Gemfile changes:

$ watchexec -w Gemfile bundle install

Run two commands:

$ watchexec 'date; make'

If you come from entr, note that the watchexec command is run in a shell by default. You can use -n or --shell=none to not do that:

$ watchexec -n -- echo ';' lorem ipsum

On Windows, you may prefer to use Powershell:

$ watchexec --shell=powershell -- test-connection localhost

Installation

All platforms

Cargo

Requires Rust 1.43 or later.

$ cargo install watchexec-cli

Binstall

$ cargo binstall watchexec-cli

Pre-built

Use the GitHub Releases tab to obtain the tarball/zipfile appropriate for your platform and architecture, extract it, and place it in your PATH.

macOS

Homebrew

$ brew install watchexec

Nix

$ nix-env -iA nixpkgs.watchexec

Webi

$ curl -sS https://webinstall.dev/watchexec | bash

Linux

PRs for packaging in unsupported distros are welcome.

Debian

A deb package is available for several architectures in the GitHub Releases.

Arch Linux

Available in the community repository:

$ pacman -S watchexec

NixOS

$ nix-env -iA nixos.watchexec

Webi

$ curl -sS https://webinstall.dev/watchexec/ | bash

Windows

Scoop

#> scoop install watchexec

Chocolatey

#> choco install watchexec

Webi

#> curl.exe -A MS https://webinstall.dev/watchexec | powershell

Shell completions

Currently available shell completions: