A lightweight Ruby tool that automatically restarts applications when filesystem changes are detected.
Rerun is a Ruby gem that automatically restarts command-line applications or test suites when it detects changes in watched files. It solves the problem of manually stopping and restarting development servers or tests during iterative coding, providing a seamless feedback loop. It works by launching your program, monitoring the filesystem for modifications, and gracefully restarting the process using Unix signals.
Ruby developers working on web applications (especially Rails or Sinatra), test suites, or any long-running CLI process who want automatic reloading without complex setup. It's ideal for those who prefer a simple, configuration-free tool over heavier alternatives like Guard.
Developers choose Rerun for its simplicity, reliability, and universality—it requires no config files, works with any command, and uses native OS filesystem monitoring for efficiency. Its signal-based restart ensures the restarted app behaves exactly like a manually launched one, avoiding the quirks of fork-based reloaders.
Restarts an app when the filesystem changes. Uses growl and FSEventStream if on OS X.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses the Listen gem to leverage OS-native filesystem monitoring (FSEvent on macOS, inotify on Linux), minimizing CPU usage as highlighted in the README for efficient background operation.
Works with any command-line program, from long-running servers like Rails to short tasks like test suites, requiring no configuration files and allowing flexible usage across development workflows.
Employs standard Unix signals (SIGTERM, SIGINT, SIGKILL) via `exec`, ensuring restarted processes behave identically to manual launches, which promotes consistency with production behavior.
Watches common development file extensions by default and allows customizable glob patterns via `--pattern`, with options to ignore specific files or directories for tailored monitoring.
Supports macOS, Linux, and Windows (with caveats), and includes on-the-fly keyboard commands for manual restarts, screen clearing, and pausing, enhancing developer control without config files.
Windows support is not well-tested, requires pressing Enter after keypress input, and may need manual installation of the `wdm` gem, leading to a clunkier experience compared to Unix-like systems.
For optimal performance, users must install OS-specific gems (e.g., rb-fsevent on macOS, wdm on Windows), adding setup complexity and potential for dependency conflicts or installation errors.
Since Rerun restarts the entire application from scratch, it can be slower for large codebases or resource-intensive processes compared to tools that reload only changed modules or use fork-based approaches.
In shared directory environments like Vagrant, the `--force-polling` option is necessary but can cause slow scans and high CPU usage on directories with many files, as admitted in the README's troubleshooting section.
Rerun is an open-source alternative to the following products:
Shotgun is a production management software for creative studios, used to track projects, manage tasks, and collaborate on visual effects, animation, and games.
Guard is a command-line tool for Ruby that watches file system modifications and runs predefined tasks automatically, commonly used in development workflows for testing and building.
Kicker is a file watcher and automation tool for macOS and Linux that monitors file system changes and executes commands when files are modified, often used in development workflows.
Watchr is a file system watcher utility that monitors directories for changes and executes commands when files are modified, often used in development workflows.