Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Run a command when a file add/update event occurs
CoffeeScript Shell JavaScript Ruby
branch: master

Merge pull request #8 from aexmachina/minimatch-dot

Use minimatch `dot` option so that changes in directories that start with a dot don't cause a rebuild
latest commit 6de66383d5
@quackingduck authored
Failed to load latest commit information.
examples worldwide
lib Use minimatch `dot` option so that changes in directories that start …
test big cleanup of `wach` will all the stuff I fixed for `wachs`
.gitignore Depend on wachdir, Upgrade CS, don't use path.existSync
LICENSE license
Makefile replaced this with local shell scripts that are not project specific
README (minor) README watchdir full URL
package.json Added ability to `npm run build` to compile CoffeeScript


`8.`888b                 ,8' .8.           ,o888888o.    8 8888        8
 `8.`888b               ,8' .888.         8888     `88.  8 8888        8
  `8.`888b             ,8' :88888.     ,8 8888       `8. 8 8888        8
   `8.`888b     .b    ,8' . `88888.    88 8888           8 8888        8
    `8.`888b    88b  ,8' .8. `88888.   88 8888           8 8888        8
     `8.`888b .`888b,8' .8`8. `88888.  88 8888           8 8888        8
      `8.`888b8.`8888' .8' `8. `88888. 88 8888           8 8888888888888
       `8.`888`8.`88' .8'   `8. `88888.`8 8888       .8' 8 8888        8
        `8.`8' `8,`' .888888888. `88888.  8888     ,88'  8 8888        8
         `8.`   `8' .8'       `8. `88888.  `8888888P'    8 8888        8

"watch changes"

  Watch for changes to files within the current directory and run a command
  when they occur.

  Wach is really fast, the command is run as soon as the file changes, no
  polling delay.

  Comes with two executables: `wach` and `wachs`.

  The `wach` utility will run any command (or inline shell script) whenever
  files in the current directory are updated.

  The `wachs` (there's an "s" on the end) utility does the same thing but for
  commands that launch a long running process like a web server. It'll kill
  the current process and launch a new one.


  Only runs on OS X >=10.7 (Lion and up)


  npm install wach


  # Run `make` every time a file in the current directory is updated/added
  wach make

  # Compile and run on every change
  wach "gcc hello.c && ./a.out"

  # Only watch for changes to coffee files, compile the one that changed
  wach -o *.coffee, coffee -c {}

  # Run the tests every time a ruby file changes
  TEST_DIR=generators wach -o **/*.rb, bundle exec rake test

  # Restart a node app any time a js file changes
  wachs -o *.js, node server.js

Node API

  wach = require('wach');
  wach('.', function(path) {
    return console.log("something happened to " + path + "!");


  Patches welcome. Especially if you'd like to re-write this in plain
  JavaScript. Just fork and make a pull request

Other similar projects:

  Patrick Mueller's wr



  the --watch flag for coffeescript

  unix watch

  TJ Holowaychuk's watch

  Isaac Z. Schlueter's node-supervisor

  David Trejo's run.js

  Gabriel Gironda's kqfm

  Mark Bao's watchdir
Something went wrong with that request. Please try again.