Skip to content
Switch branches/tags

⚠️ ⚠️ ⚠️ Security Vulnerability: please upgrade to v2.5.2 - details here . (Credits: Michael Coyne)


Gem Version Build Status Dependency Status Code Climate Coverage Status Join the chat at

LiveReload guard allows to automatically reload your browser when 'view' files are modified.


⚠️ Guard::LiveReload is looking for a new maintainer. Please contact me if you're interested.

For any support question/issue related to livereload please ask on


Please be sure to have Guard installed before continuing.

Install the gem:

$ gem install guard-livereload

Add it to your Gemfile (inside development group):

group :development do
  gem 'guard-livereload', '~> 2.5', require: false

Add guard definition to your Guardfile by running this command:

$ guard init livereload

And to get everything running in the browser, use rack-livereload or install the LiveReload Safari/Chrome/Firefox extension.


For a quick start, check out the wiki.

If you're using Rails or Rack based apps, check out rack-livereload how it works readme section.

For info about Guard and it's plugins, see Guard usage doc

For more info about LiveReload extensions, see LiveReload extension usage doc from version 1.x


You can adapt your 'view' files like you want. Please read Guard doc for more info about Guardfile DSL.

guard 'livereload' do
  # Rails Assets Pipeline
  watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|html))).*}) { |m| "/assets/#{m[3]}" }


LiveReload guard has 6 options that you can set like this:

guard 'livereload', grace_period: 0.5, override_url: true do
  # ...

Available options:

notify: true          # default false
host: ''     # default ''
port: '12345'         # default '35729'
apply_css_live: false # default true
override_url: false   # default false
grace_period: 0.5     # default 0 (seconds)
js_template: './my_livereload.js.erb' # default is livereload.js.erb from gem

Additional custom JS template options (see livereload.js.erb for details):

js_apple_webkit_extra_wait_time: 50 # default is 5 (see issue #123)
js_default_extra_wait_time: 100 # default is 200

notify uses Guard's system notifications. See LiveReload configuration doc from version 1.x for more info about other options.


To work out what's wrong and where, just follow this easy guide:

Other issues:

1. "hw.ncpu" is an unknown key.

Solution: just upgrade the listen gem to '3.x' (Listen is used by Guard).



Pull requests are very welcome! Please try to follow these simple "rules", though:

  • Please create a topic branch for every separate change you make.
  • Make sure your patches are well tested.
  • Update the README (if applicable).
  • Please do not change the version number.

For questions please join us on our Google group or on #guard (


Thibaud Guillaume-Gentil