Programming language: Rust
License: Apache License 2.0
Latest version: v1.14.1

watchexec alternatives and similar packages

Based on the "System tools" category.
Alternatively, view watchexec alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of watchexec or a related project?

Add another 'System tools' Package


CI status on main branch


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


  • 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
  • Does not require a language runtime, not tied to any particular language or ecosystem
  • [And more!](./crates/cli/#features)

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](./crates/cli/#usage-examples)!


  • With [your package manager](./doc/packages.md) for Arch, Homebrew, Nix, Scoop, Chocolatey…
  • From binary with Binstall: cargo binstall watchexec-cli
  • As pre-built binary package from Github
  • From source with Cargo: cargo install watchexec-cli

All options in detail: [in the CLI README](./crates/cli/#installation) and [in the manual page](./doc/watchexec.1.ronn).


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


  • [watchexec library](./crates/lib/): to create more specialised watchexec-powered tools! such as:
  • clearscreen: to clear the (terminal) screen on every platform.
  • command group: to run commands in process groups.
  • [ignore files](./crates/ignore-files/): to find, parse, and interpret ignore files.
  • [project origins](./crates/project-origins/): to find the origin(s) directory of a project.
  • notify: to respond to file modifications (third-party).
  • globset: to match globs (third-party).