Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

when-changed: Run a command when a file is changed

What is it?

Tired of switching to the shell to test the changes you just made to your code? Starting to feel like a mindless drone, manually running pdflatex for the 30th time to see how your resume now looks?

Worry not, when-changed is here to help! Whenever it sees that you have changed the file, when-changed runs any command you specify.

So to generate your latex resume automatically, you can do this:

$ when-changed CV.tex pdflatex CV.tex


What do I need?

  • Python 2.6+
  • watchdog


pip install:


when-changed [OPTION] FILE COMMAND...
when-changed [OPTION] FILE [FILE ...] -c COMMAND

FILE can be a directory. Use %f to pass the filename to the command.


  • -r Watch recursively
  • -v Verbose output. Multiple -v options increase the verbosity. The maximum is 3: -vvv.
  • -1 Don't re-run command if files changed while command was running
  • -s Run command immediately at start
  • -q Run command quietly

Environment variables:

when-changed provides the following environment variables:

  • WHEN_CHANGED_EVENT: reflects the current event type that occurs. Could be either:

    • file_created
    • file_modified
    • file_moved
    • file_deleted
  • WHEN_CHANGED_FILE: provides the full path of the file that has generated the event.

You can’t perform that action at this time.