Rust Apache-2.0

watchexec

Executes commands in response to file modifications

W

watchexec

Dernière activité 28 sept. 2026
watchexec/watchexec

7,2 k

étoiles

203

forks

36

issues ouvertes

command-linedeveloper-toolsfile-watcherslinuxmacosrustwindows

Ce README est souvent en anglais.

CI status on main branch

Watchexec

Software development often involves running the same commands over and over. Boring!

watchexec is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.

Example use cases:

  • Automatically run unit tests
  • Run linters/syntax checkers
  • Rebuild artifacts

Features

  • Simple invocation and use, does not require a cryptic command line involving xargs
  • Runs on OS X, Linux, and Windows
  • Monitors current directory and all subdirectories for changes
  • Coalesces multiple filesystem events into one, for editors that use swap/backup files during saving
  • Loads .gitignore and .ignore files
  • Uses process groups to keep hold of forking programs
  • Provides the paths that changed in environment variables or STDIN
  • Does not require a language runtime, not tied to any particular language or ecosystem
  • And more!

Quick start

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

$ watchexec -e js,css,html npm run build

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

$ watchexec -r -e py -- python server.py

More usage examples: in the CLI README!

Install

Packaging status

All options in detail: in the CLI README, in the online help (watchexec -h, watchexec --help, or watchexec --manual), and in the manual page.

Augment

Watchexec pairs well with:

  • checkexec: to run only when source files are newer than a target file
  • just: a modern alternative to make
  • systemfd: socket-passing in development

Extend

Downstreams

Selected downstreams of watchexec and associated crates:

  • cargo watch: a specialised watcher for Rust/Cargo projects.
  • cargo lambda: a dev tool for Rust-powered AWS Lambda functions.
  • create-rust-app: a template for Rust+React web apps.
  • devenv.sh: a developer environment with nix-based declarative configs.
  • dotter: a dotfile manager.
  • ghciwatch: a specialised watcher for Haskell projects.
  • tectonic: a TeX/LaTeX typesetting system.

Projets similaires

Simple, modern and fast file watching and code reload for Python, written in Rust

Pythonasynciofilesysteminotify
Ssamuelcolvin
2,5 k étoiles147

Watches files and records, or triggers actions, when they change.

C++
Ffacebook
13,7 k étoiles1,1 k

inotify-tools is a library and a set of command-line programs providing a simple interface to inotify.

Rustcfsnotifyinotify
Iinotify-tools
3,4 k étoiles403