Automatically reload a node application when files change.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Automatically restart a Node application when dependencies change.


Install with npm:

npm install -g rewind

Getting Started

Start your application with rewind instead of node:

rewind server.js 3000

This will load server.js as the main module. Any changes to server.js or its dependencies will cause the server to restart.

If your application caches non-module assets, use the -w option to watch them. For example:

rewind -w ./static -w ./templates server.js 3000

Rewind will scan these files or folders recursively. If any file is modified, the application with be restarted.


  • Restarts your application automatically when files change.
  • Monitors anything Node loads; no hard-coded filename extensions!
  • By default, only monitor loaded modules; no need for .ignore files.
  • Uses, so detecting changes is fast!
  • Optionally upports monitoring any additional folders.
  • Ignores temporary editor files.

How it Works

Rewind forks a subprocess to run the real application. The subprocess detects loaded modules and reports them to the parent, which is monitoring the filesystem using If any dependency changes, the subprocess is terminated with a SIGHUP and forked again.

If the subprocess dies (exits non-zero), rewind waits until one on the monitored files is changed. If the subprocess terminatss normally (exits zero), rewind stops monitoring files and exits as well.