Watchman watches files and runs things when they change. It consists of watches and triggers. Watches are folders to watch for changes in, and triggers are things to do when changes happen.


You can watch a folder with watchman watch ~/my/project, and stop watching it with watchman watch-del ~/my/project.

When you delete a watch, it also will delete any triggers associated with the watch.


Triggers contain a watch, a name, some patterns to match against filenames, and a command to run.

watchman -- trigger ~/foo css '*.scss' '*.sass' -- npm buildcss

This creates a trigger named css for the watch ~/foo. It will look for files matching the pattern *.scss or *.sass, and run npm buildcss plus the filename when they change.

If the file ~/foo/foobar.scss changed, then watchman would run the command npm buildcss foobar.scss.