watchexec
Executes commands in response to file modifications
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 74 committers (1.4%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.8%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Executes commands in response to file modifications
Basic Info
Statistics
- Stars: 6,312
- Watchers: 25
- Forks: 169
- Open Issues: 56
- Releases: 0
Topics
Metadata Files
README.md
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
.gitignoreand.ignorefiles - 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
- With your package manager for Arch, Debian, Homebrew, Nix, Scoop, Chocolatey…
- From binary with Binstall:
cargo binstall watchexec-cli<!-- this line does NOT contain a typo --> - As pre-built binary package from Github
- From source with Cargo:
cargo install --locked watchexec-cli
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
- watchexec library: to create more specialised watchexec-powered tools.
- watchexec-events: event types for watchexec.
- watchexec-signals: signal types for watchexec.
- watchexec-supervisor: process lifecycle manager (the exec part of watchexec).
- clearscreen: to clear the (terminal) screen on every platform.
- command group: to run commands in process groups.
- ignore files: to find, parse, and interpret ignore files.
- project origins: to find the origin(s) directory of a project.
- notify: to respond to file modifications (third-party).
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.
- dotter: a dotfile manager.
- ghciwatch: a specialised watcher for Haskell projects.
- tectonic: a TeX/LaTeX typesetting system.
Owner
- Name: watchexec
- Login: watchexec
- Kind: organization
- Repositories: 7
- Profile: https://github.com/watchexec
Citation (CITATION.cff)
cff-version: 1.2.0
message: |
If you use this software, please cite it using these metadata.
title: "Watchexec: a tool to react to filesystem changes, and a crate ecosystem to power it"
version: "2.3.2"
date-released: 2025-05-18
repository-code: https://github.com/watchexec/watchexec
license: Apache-2.0
authors:
- family-names: Green
given-names: Matt
- family-names: Saparelli
given-names: Félix
orcid: https://orcid.org/0000-0002-2010-630X
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Félix Saparelli | f****x@p****e | 1,006 |
| Matt Green | m****s@g****m | 180 |
| github-actions[bot] | 4****] | 64 |
| dependabot[bot] | 4****] | 39 |
| Chris Aumann | me@c****g | 27 |
| github-actions[bot] | g****s@g****m | 12 |
| Quint Guvernator | q****t@g****t | 5 |
| Jonathan Cammisuli | j****n@c****a | 4 |
| Sven-Hendrik Haase | s****o@g****m | 4 |
| daubaris | p****s@g****m | 4 |
| Thomas Etter | e****h@g****m | 3 |
| James Kominick | j****k@g****m | 3 |
| Igor Gnatenko | i****n@g****m | 3 |
| Bruce Guenter | b****e@u****g | 3 |
| David Raifaizen | d****f@h****m | 2 |
| Josh Gao | j****h@i****s | 2 |
| Les Aker | me@l****g | 2 |
| Matt Gathu | m****u@g****m | 2 |
| Philip Daniels | P****1@g****m | 2 |
| Tom Parker | p****y@t****t | 2 |
| Егор Куклин | 4****k | 2 |
| DaniPopes | 5****s | 2 |
| Chris Nicholls | c****s@i****o | 2 |
| David Calavera | d****a@g****m | 1 |
| Chris West | s****b@g****m | 1 |
| Caleb Schoepp | c****p@g****m | 1 |
| Atmajeet Kaur | b****4@g****m | 1 |
| Angel Yankov | 3****t | 1 |
| Anatoli Babenia | a****i@r****g | 1 |
| Adit | a****h@g****m | 1 |
| and 44 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 159
- Total pull requests: 363
- Average time to close issues: 9 months
- Average time to close pull requests: 19 days
- Total issue authors: 116
- Total pull request authors: 25
- Average comments per issue: 3.89
- Average comments per pull request: 0.91
- Merged pull requests: 181
- Bot issues: 7
- Bot pull requests: 241
Past Year
- Issues: 35
- Pull requests: 87
- Average time to close issues: 30 days
- Average time to close pull requests: 25 days
- Issue authors: 33
- Pull request authors: 9
- Average comments per issue: 1.6
- Average comments per pull request: 0.87
- Merged pull requests: 19
- Bot issues: 1
- Bot pull requests: 62
Top Authors
Issue Authors
- passcod (21)
- github-actions[bot] (6)
- unphased (5)
- max-sixty (5)
- nikitavoloboev (4)
- bjackman (3)
- kentonv (3)
- emilHof (2)
- calebschoepp (2)
- dependabot[bot] (2)
- alanwsmith (2)
- DaniPopes (2)
- ziimakc (1)
- colemickens (1)
- peabnuts123 (1)
Pull Request Authors
- dependabot[bot] (255)
- passcod (100)
- github-actions[bot] (54)
- TheBlek (5)
- DaniPopes (4)
- Cammisuli (4)
- FauxFaux (2)
- trymeouteh (2)
- nopeless (2)
- peabnuts123 (2)
- adit-umakanth (2)
- t3hmrman (2)
- lu-zero (2)
- mrnossiom (2)
- yankov-pt (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 39
-
Total downloads:
- cargo 18,988,782 total
- Total docker downloads: 140,013,398
-
Total dependent packages: 70
(may contain duplicates) -
Total dependent repositories: 430
(may contain duplicates) - Total versions: 563
- Total maintainers: 3
crates.io: watchexec
Library to execute commands in response to file modifications
- Homepage: https://watchexec.github.io
- Documentation: https://docs.rs/watchexec/
- License: Apache-2.0
-
Latest release: 8.0.1
published 8 months ago
Rankings
crates.io: ignore-files
Find, parse, and interpret ignore files
- Documentation: https://docs.rs/ignore-files/
- License: Apache-2.0
-
Latest release: 3.0.4
published 8 months ago
Rankings
Maintainers (1)
crates.io: watchexec-signals
Watchexec's signal types
- Documentation: https://docs.rs/watchexec-signals/
- License: Apache-2.0 OR MIT
-
Latest release: 5.0.0
published 8 months ago
Rankings
Maintainers (1)
crates.io: project-origins
Resolve project origins and kinds from a path
- Documentation: https://docs.rs/project-origins/
- License: Apache-2.0
-
Latest release: 1.4.2
published 8 months ago
Rankings
Maintainers (1)
crates.io: watchexec-events
Watchexec's event types
- Documentation: https://docs.rs/watchexec-events/
- License: Apache-2.0 OR MIT
-
Latest release: 6.0.0
published 8 months ago
Rankings
Maintainers (1)
crates.io: watchexec-filterer-ignore
Watchexec filterer component for ignore files
- Homepage: https://watchexec.github.io
- Documentation: https://docs.rs/watchexec-filterer-ignore/
- License: Apache-2.0
-
Latest release: 7.0.0
published 8 months ago
Rankings
Maintainers (1)
proxy.golang.org: github.com/WatchExec/watchexec
- Documentation: https://pkg.go.dev/github.com/WatchExec/watchexec#section-documentation
- License: apache-2.0
-
Latest release: v2.3.2+incompatible
published 7 months ago
Rankings
proxy.golang.org: github.com/Watchexec/watchexec
- Documentation: https://pkg.go.dev/github.com/Watchexec/watchexec#section-documentation
- License: apache-2.0
-
Latest release: v2.3.2+incompatible
published 7 months ago
Rankings
alpine-edge: watchexec-bash-completion
Bash completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-edge: watchexec-fish-completion
Fish completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
crates.io: watchexec-filterer-globset
Watchexec filterer component based on globset
- Homepage: https://watchexec.github.io
- Documentation: https://docs.rs/watchexec-filterer-globset/
- License: Apache-2.0
-
Latest release: 8.0.0
published 8 months ago
Rankings
Maintainers (1)
alpine-edge: watchexec-doc
Executes commands in response to file modifications (documentation)
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-edge: watchexec
Executes commands in response to file modifications
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-edge: watchexec-zsh-completion
Zsh completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
proxy.golang.org: github.com/watchexec/watchexec
- Documentation: https://pkg.go.dev/github.com/watchexec/watchexec#section-documentation
- License: apache-2.0
-
Latest release: v2.3.2+incompatible
published 7 months ago
Rankings
crates.io: watchexec-cli
Executes commands in response to file modifications
- Homepage: https://watchexec.github.io
- Documentation: https://docs.rs/watchexec-cli/
- License: Apache-2.0
-
Latest release: 2.3.2
published 7 months ago
Rankings
Maintainers (1)
crates.io: watchexec-filterer-tagged
Watchexec filterer component using tagged filters
- Homepage: https://watchexec.github.io
- Documentation: https://docs.rs/watchexec-filterer-tagged/
- License: Apache-2.0
-
Latest release: 2.0.0
published almost 2 years ago
Rankings
Maintainers (1)
crates.io: watchexec-supervisor
Watchexec's process supervisor component
- Documentation: https://docs.rs/watchexec-supervisor/
- License: Apache-2.0 OR MIT
-
Latest release: 5.0.1
published 8 months ago
Rankings
Maintainers (1)
crates.io: bosion
Gather build information for verbose versions flags
- Documentation: https://docs.rs/bosion/
- License: Apache-2.0 OR MIT
-
Latest release: 1.1.3
published 8 months ago
Rankings
Maintainers (1)
alpine-v3.22: watchexec-fish-completion
Fish completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.19: watchexec
Executes commands in response to file modifications
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 1.23.0-r1
published about 2 years ago
Rankings
alpine-v3.20: watchexec-fish-completion
Fish completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.1.1-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.19: watchexec-bash-completion
Bash completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 1.23.0-r1
published about 2 years ago
Rankings
Maintainers (1)
alpine-v3.19: watchexec-zsh-completion
Zsh completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 1.23.0-r1
published about 2 years ago
Rankings
Maintainers (1)
alpine-v3.20: watchexec
Executes commands in response to file modifications
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.1.1-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.20: watchexec-zsh-completion
Zsh completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.1.1-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.20: watchexec-doc
Executes commands in response to file modifications (documentation)
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.1.1-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.20: watchexec-bash-completion
Bash completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.1.1-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.22: watchexec
Executes commands in response to file modifications
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.21: watchexec-zsh-completion
Zsh completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.2.0-r0
published about 1 year ago
Rankings
Maintainers (1)
alpine-v3.22: watchexec-doc
Executes commands in response to file modifications (documentation)
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.21: watchexec-fish-completion
Fish completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.2.0-r0
published about 1 year ago
Rankings
Maintainers (1)
alpine-v3.22: watchexec-bash-completion
Bash completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.21: watchexec-doc
Executes commands in response to file modifications (documentation)
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.2.0-r0
published about 1 year ago
Rankings
Maintainers (1)
alpine-v3.22: watchexec-zsh-completion
Zsh completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.3.2-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.21: watchexec
Executes commands in response to file modifications
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.2.0-r0
published about 1 year ago
Rankings
Maintainers (1)
alpine-v3.21: watchexec-bash-completion
Bash completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 2.2.0-r0
published about 1 year ago
Rankings
Maintainers (1)
alpine-v3.19: watchexec-doc
Executes commands in response to file modifications (documentation)
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 1.23.0-r1
published about 2 years ago
Rankings
Maintainers (1)
alpine-v3.19: watchexec-fish-completion
Fish completions for watchexec
- Homepage: https://github.com/watchexec/watchexec
- License: Apache-2.0
-
Latest release: 1.23.0-r1
published about 2 years ago
Rankings
Dependencies
- actions/cache v3 composite
- actions/checkout v4 composite
- actions/cache v3 composite
- actions/checkout v4 composite
- actions/download-artifact v3 composite
- actions/upload-artifact v3 composite
- softprops/action-gh-release de2c0eb89ae2a093876385947365aca7b0e5f844 composite
- taiki-e/install-action v2 composite
- actions/checkout v4 composite
- cargo-bins/release-pr v2 composite
- chainguard-dev/actions/setup-gitsign main composite
- taiki-e/install-action v2 composite
- actions/checkout v4 composite
- mathieudutour/github-tag-action v6.1 composite
- actions/cache v3 composite
- actions/checkout v4 composite
- taiki-e/install-action v2 composite
- 410 dependencies
- 156 dependencies
- 169 dependencies
- bitflags 1.3.2
- cc 1.0.79
- concolor 0.0.12
- concolor-query 0.1.0
- errno 0.2.8
- errno-dragonfly 0.1.2
- hermit-abi 0.3.1
- io-lifetimes 1.0.5
- is-terminal 0.4.4
- itoa 1.0.6
- leon 0.0.1
- libc 0.2.139
- linux-raw-sys 0.1.4
- normalize-line-endings 0.3.0
- proc-macro2 1.0.51
- quote 1.0.23
- rustix 0.36.9
- serde 1.0.152
- similar 2.2.1
- snapbox 0.4.8
- snapbox-macros 0.3.1
- syn 1.0.109
- thiserror 1.0.38
- thiserror-impl 1.0.38
- time 0.3.20
- time-core 0.1.0
- time-macros 0.2.8
- unicode-ident 1.0.7
- winapi 0.3.9
- winapi-i686-pc-windows-gnu 0.4.0
- winapi-x86_64-pc-windows-gnu 0.4.0
- windows-sys 0.45.0
- windows-targets 0.42.1
- windows_aarch64_gnullvm 0.42.1
- windows_aarch64_msvc 0.42.1
- windows_i686_gnu 0.42.1
- windows_i686_msvc 0.42.1
- windows_x86_64_gnu 0.42.1
- windows_x86_64_gnullvm 0.42.1
- windows_x86_64_msvc 0.42.1
- yansi 0.5.1
- bitflags 1.3.2
- cc 1.0.79
- concolor 0.0.12
- concolor-query 0.1.0
- errno 0.2.8
- errno-dragonfly 0.1.2
- hermit-abi 0.3.1
- io-lifetimes 1.0.5
- is-terminal 0.4.4
- itoa 1.0.6
- leon 0.0.1
- libc 0.2.139
- linux-raw-sys 0.1.4
- normalize-line-endings 0.3.0
- proc-macro2 1.0.51
- quote 1.0.23
- rustix 0.36.9
- serde 1.0.152
- similar 2.2.1
- snapbox 0.4.8
- snapbox-macros 0.3.1
- syn 1.0.109
- thiserror 1.0.38
- thiserror-impl 1.0.38
- time 0.3.20
- time-core 0.1.0
- time-macros 0.2.8
- unicode-ident 1.0.7
- winapi 0.3.9
- winapi-i686-pc-windows-gnu 0.4.0
- winapi-x86_64-pc-windows-gnu 0.4.0
- windows-sys 0.45.0
- windows-targets 0.42.1
- windows_aarch64_gnullvm 0.42.1
- windows_aarch64_msvc 0.42.1
- windows_i686_gnu 0.42.1
- windows_i686_msvc 0.42.1
- windows_x86_64_gnu 0.42.1
- windows_x86_64_gnullvm 0.42.1
- windows_x86_64_msvc 0.42.1
- yansi 0.5.1
- serde_json 1.0.94 development
- snapbox 0.4.10 development
- watchexec-events * development
- notify 5.0.0
- serde 1.0.152
- watchexec-signals 1.0.0
- project-origins 1.2.0 development
- tokio 1.24.2 development
- tracing-subscriber 0.3.6 development
- ignore 0.4.18
- ignore-files 1.3.1
- tracing 0.1.26
- watchexec 2.3.0
- watchexec-filterer-ignore 1.2.1
- project-origins 1.2.0 development
- tokio 1.24.2 development
- tracing-subscriber 0.3.6 development
- dunce 1.0.4
- ignore 0.4.18
- ignore-files 1.3.1
- tracing 0.1.26
- watchexec 2.3.0
- watchexec-signals 1.0.0
- project-origins 1.2.0 development
- tokio 1.24.2 development
- tracing-subscriber 0.3.6 development
- futures 0.3.25
- globset 0.4.8
- ignore 0.4.18
- ignore-files 1.3.1
- miette 5.3.0
- nom 7.0.0
- regex 1.5.4
- thiserror 1.0.26
- tokio 1.24.2
- tracing 0.1.26
- unicase 2.6.0
- watchexec 2.3.0
- watchexec-filterer-ignore 1.2.1
- watchexec-signals 1.0.0
- tracing-subscriber 0.3.6 development
- async-priority-channel 0.1.0
- async-recursion 1.0.0
- atomic-take 1.0.0
- clearscreen 2.0.1
- command-group 2.1.0
- futures 0.3.16
- ignore-files 1.3.1
- miette 5.3.0
- normalize-path 0.2.0
- notify 5.0.0
- once_cell 1.8.0
- project-origins 1.2.0
- thiserror 1.0.26
- tokio 1.24.2
- tracing 0.1.26
- watchexec-events 1.0.0
- watchexec-signals 1.0.0
- miette 5.3.0 development
- tracing-subscriber 0.3.11 development
- futures 0.3.21
- tokio 1.24.2
- tokio-stream 0.1.9