Files
vim-ale/watchexec
AJ ONeal 9f28505af7 ref: delete unreachable upstream-fetcher modules
Stacked on the modifications PR. Now that no live code path references
the per-package fetchers, the shared HTTP/parsing helpers, the
in-process normalizer, or the example template, delete them. Pure
deletion — no behavior change.

- ~93 per-package <pkg>/releases.js fetcher modules.
- _common/{brew,fetcher,git-tag,gitea,github,github-source,
  githubish,githubish-source}.js shared HTTP/parsing helpers.
- _webi/normalize.js in-process normalization layer (cache files
  arrive normalized from webicached).
- _example/releases.js fetcher template for new packages.

The Go cache daemon (webicached) is now the sole producer of release
metadata; the Node process never makes an upstream request.
2026-05-08 16:31:59 -06:00
..
2026-03-08 19:38:49 -06:00

title, homepage, tagline
title homepage tagline
watchexec https://github.com/watchexec/watchexec watchexec is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.

To update or switch versions, run webi watchexec@stable (or @v1.17, @beta, etc).

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
~/.local/bin/watchexec

Cheat Sheet

watchexec runs a given command when any files in watched directories change.
It respects .[git]ignore.

Here's the shortlist of options we've found most useful:

-w, --watch     ./src/      watch the given directory
-e, --exts      js,css      watch only the given extensions
-i, --ignore    '*.md'      do not watch the given pattern
-d, --debounce  5000        the minimum number of milleseconds
                                to wait between changes

-r, --restart               restart the process (for servers, etc)
-s, --signal    SIGHUP      like -r, but with a signal (ex: SIGHUP)
-c, --clear                 clear the screen between command runs
-W  (wait)                  ignore all changes as the command runs

--              npm start   what command to run, with its arguments

--no-ignore                 disregard both .ignore and .gitignore
--no-vcs-ignore             disregard only .gitignore
--no-default-ignore         disregard built-in ignore lists

How to use

Example: List the directory when any files change.

watchexec -c -- ls -lah

Advanced Usage Example

Here's a "kitchen sink" example.

watchexec -c -r -s SIGKILL -d 2000 -W --verbose \
    -w ./src -w ./server.js \
    -e js,css,html \
    -i '*.md' -i 'package-lock.json' \
    -- npm run build

How to use (Node, Go, Rust, rsync)

These examples show how you might use this for builds, servers, and publishing or deploying.

# Node / npm
watchexec -W -- npm run build
watchexec -r -- npm start

# Golang
watchexec -- go build .
watchexec -r -- go run .

# Rust
watchexec -- cargo build --bin
watchexec -r -- cargo run --bin

# rsync (local copy)
watchexec -- rsync -avhP ./ ./srv/MY_PROJECT/

# rsync (remote publish)
watchexec -- rsync -avhP ./ app@example.com:~/srv/MY_PROJECT/