A standalone tool that watches files and runs commands automatically when modifications are detected.
Watchexec is a command-line tool that automatically runs specified commands whenever it detects file modifications in a watched directory. It solves the repetitive task of manually executing commands like unit tests, linters, or build scripts during development by automating them based on file changes.
Developers across any language or ecosystem who need to automate command execution in response to file changes, such as running tests, linters, or rebuilds during local development.
Developers choose Watchexec for its simplicity, cross-platform support, and language-agnostic design, which avoids complex configurations and integrates seamlessly into diverse workflows without requiring specific runtime dependencies.
Executes commands in response to file modifications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs on OS X, Linux, and Windows, as stated in the README, ensuring consistent file-watching behavior across different operating systems without dependencies.
Coalesces multiple filesystem events into one to avoid redundant runs from editor swap or backup files, preventing unnecessary command executions during saves.
Automatically loads .gitignore and .ignore files to exclude irrelevant paths, reducing setup time by leveraging existing project ignore patterns.
Uses process groups to properly handle forking programs, ensuring clean process termination and preventing orphaned processes, as highlighted in the features.
Lacks a graphical user interface, which may hinder users preferring visual feedback or seamless integration with IDEs and graphical workflows.
While it coalesces events, it offers limited fine-grained control over debouncing or filtering, often requiring external tools like checkexec for advanced scenarios as noted in the augment section.
Monitoring all subdirectories by default can strain system resources in large codebases, though this is a common trade-off with file watchers.