Guard Plugins

Dennis Hägler edited this page Apr 23, 2018 · 27 revisions

NOTE: Guard maintainers are not responsible for the quality or suitability of the plugins below. (Though, some plugins are maintained by Guard core developers.)

Ordering is generally by popularity/user-friendliness/completeness/support/active-development. Disputes about order should be resolved by project "star" count.

NOTE: if any plugins are broken or outdated, try the following:

  1. find the gem on rubygems.org, then go to the homepage
  2. file an issue there and wait up to a few days for the author to respond
  3. if the plugin author isn't responding CC a Guard maintainer in the issue (e.g. me: @e2)

NOTE: some plugin authors work on their own forks instead of the forks in the Guard organization. Please update the links below if they point to the wrong/outdated fork.

Popular / Featured / Well supported

Plugin When to use
guard-bundler installs/updates gems when Gemfile changes
guard-rspec Smart/incremental RSpec runner
guard-minitest runs Minitest and Test/Unit tests
guard-cucumber Reruns changed/affected Cucumber Features
guard-zeus Zeus speeds up startup time for Rails commands (development, server, testing)
guard-jasmine Frontend testing using PhantomJS/Webkit
guard-jekyll-plus Extensive plugin for working with Jekyll projects
guard-brakeman Scans your Rails application for known security holes (CVE's)
guard-rubocop Check your source files to style violations and potential problems
guard-puppet Helps build Puppet catalogs for deploying and managing sites and servers
guard-shell Runs shell commands when changes happen - also supports notifications and long -running programs
guard-livereload Reloads browser whenever web pages change
guard-nanoc rebuild Nanoc websites
guard-process Manages background processes (servers, daemons)
guard-yield runs any Ruby code (without the need to write a Guard plugin)
guard-kjell runs command once when watched file changes

Rails related

Plugin When to use
guard-brakeman Scans your Rails application for known security holes (CVE's)
guard-migrate Migrates the database whenever you add/change migrations
guard-jammit Compressing assets (JS, CSS)
guard-annotate Inserts "cheatsheets" about your database schema into your source files
guard-passenger Manages the Passenger server (restarts when necessary)
guard-sprockets Recompiles assets using Sprockets
guard-llsprockets recompiles assets using Sprockets
guard-cogs guard-sprockets alternative
guard-rails_best_practices check if code matches Rails Best Practices
guard-bower_rails Automatically install/update Rails bower dependencies
guard-bundler-audit check for gems with vulnerabilities
guard-consistency_fail detect missing unique indexes in Rails projects
guard-flow runs flow type checker on Rails javascript files
guard-railsbp Rails Best Practices runner

Website generating/authoring

Plugin When to use
guard-jekyll-plus Extensive plugin for working with Jekyll projects
guard-middleman Rebuilds Middleman static websites
guard-nanoc rebuild Nanoc websites
guard-mouch Mouch/CouchDB apps
guard-sculpin Sculping site generator (PHP)
guard-staticmatic Staticmatic site generator

Web CSS/template processing/compiling

Plugin When to use
guard-coffeescript Compiles CoffeeScript files
guard-compass Rebuilds your CSS files in Compass Sass projects
guard-tilt ?
guard-sass Recompiles Sass files to CSS
guard-slim regenerate slim templates
guard-haml compile Haml templates to HTML
guard-less compile LESS templates
guard-stylus compile Node.js Stylus CSS templates
guard-erb compiles erb files
guard-haml-coffee compiles HamlCoffe templates to JavaScript
guard-herbalizer converts Haml to Erb using herbalizer
guard-hogan compiles hogan mustache templates
guard-jade compile Jade files
guard-lessc compiles less file to a target output file using lessc
guard-mthaml compile Haml to PHP, Twig or static HTML
guard-mustachejs compile mustachejs into a single js file

General Web Development

Plugin When to use
guard-livereload Reloads browser whenever web pages change
guard-embertools rebuilds application.js when ember files are modified
guard-pusher Send messages to multiple iPad/iPhone browsers (like "reload page")
guard-shopify automatically upload and update Shopify templates when they change
guard-shopifytheme update through Shopify theme
guard-premailer inline CSS in email templates
guard-sprite-factory Web Development
guard-i18n-js export i18n js translations

Restarting servers/daemons/workers

Plugin When to use
guard-process Manages background processes (servers, daemons)
guard-redis restarts Redis server when needed
guard-go Run and restart go programs and servers when changed
guard-resque restarts Resque workers
guard-resque-scheduler restarts Resque in dev mode
guard-delayed automatically restarts delayed_job workers
guard-webrick Restarts WEBrick server when needed
guard-rack restarts Rack app server
guard-puma restarts Puma app server
guard-foreman reruns foreman
guard-goliath restarts Goliath apps
guard-grunt restarts Grunt
guard-gulp restarts Gulp
guard-pow restarts Pow applications
guard-rails manage Rails server (handling Zeus parameters, daemon mode, etc.)
guard-restarter restarts some process
guard-shotgun restart Sinatra server
guard-sidekiq restart Sidekiq workers
guard-spin restart Spin server
guard-unicorn restart Unicorn server

Web asset optimization

Plugin When to use
guard-uglify compress JavaScript files using uglifier gem
guard-steering Speed up Handlebar.js templates by precompiling them
guard-concat concat assets (JS/CSS) into single files
guard-image_optim optimizes images with image_optim
guard-imageoptim optimze images with ImageOptim-CLI
guard-sprockets2 sprockets for Rails, Sinatra or Rack

Testing (Ruby)

Plugin When to use
guard-cucumber Reruns changed/affected Cucumber Features
guard-rspec Smart/incremental RSpec runner
guard-minitest runs Minitest and Test/Unit tests
guard-motion reruns specs for RubyMotion (iOS, Android, OSX Ruby apps)
guard-bdd run tests in order: unit tests, integration tests, then acceptance tests
guard-combustion testing Rails Engines
guard-spinach BDD framework on top of Gherkin
guard-spinoff preload your Ruby environment using fork()
guard-spork manage Spork DRb servers

Testing (JRuby workarounds)

Plugin When to use
guard-jruby-minitest no-startup-code JRuby Minitest test reloader
guard-jruby-rspec keeps a JVM warmed up for your specs
guard-rspec-jruby improve JRuby test performance

Testing (Various)

Plugin When to use
guard-prove reruns Perl tests
guard-jenkins sets a Jenkins status image depending whether there's a failure or not
guard-cunit run CUnit tests
guard-elixir runs Elixir tests using "mix test"
guard-gotest runs Go tests
guard-haskell runs Haskell specs
guard-julia runs Julia tests
guard-pytest runs pytest (Python)
guard-rackunit runs Racket's RackUnit tests
guard-rebar use Rebar to run Erlang tests
guard-roxy runs Roxy unit tests (MarkLogic apps)
guard-sclang runs SuperCollider unit tests

Testing (JavaScript)

Plugin When to use
guard-jasmine Frontend testing using PhantomJS/Webkit
guard-teaspoon Web testing with PhantomJS or Selenium WebDriver
guard-jaspec run Jaspec JavaScript files
guard-konacha runs Konacha (mocha + chai) JavaScript tests on Rails apps
guard-karma runs the Karma JS test runner
guard-jessie Jasmine runner using Node.js Jessie runner
guard-jasmine-node reruns Jasmine Node.js tests
guard-jasmine-headless-webkit rerun Jasmine tests in a headless WebKit instance
guard-mocha-node test node.js code with mocha
guard-phantomjs-jasmine run jasmine specs with PhantomJS

Testing (Java)

Plugin When to use
guard-maven run Maven tests (Java)
guard-gradle builds and runs Java tests (Gradle projects)
guard-gradle-android-test runs Java Gradle tests for Android
guard-java run tests in Java (using Ant or shell) + Android support

Testing (PHP)

Plugin When to use
guard-phpunit Guard::PHPUnit automatically runs your tests
guard-codeception run Codeception tests (PHP)
guard-phpspec runs PHPSpec

Testing (iOS)

Plugin When to use
guard-xcodebuild run xcodebuild tests
guard-xctool-test run xctool test command on save
guard-frank rerun Frank-Cucumber (iOS) features
guard-calabash-ios return Calabash iOS Cucumber features
guard-cedar runs Cedar (Objective-C) BDD tests
guard-ocunit run OCUnit tests on ios-sim

Code Quality

Plugin When to use
guard-cane fails the build if your source files fail the quality level
guard-rubocop Check your source files to style violations and potential problems
guard-haml-lint Check your HAML-specific style and lint checks
guard-slim-lint Check your Slim-specific style and lint checks
guard-flog creates flog reports
guard-reek find code smells
guard-rubybeautify beautifies Ruby code
guard-rubycritic detects code smells in Ruby using Rubycritic

Code Quality (Javascript)

Plugin When to use
guard-jshint-node detect errors and potential problems in JavaScript files
guard-coffeelint run coffeelint
guard-jshint-on-rails uses jshint on Rails project
guard-jslint runs jslint on JavaScript files

Code Quality (PHP)

Plugin When to use
guard-phpcs detects and fixes PHP, JS and CSS violations
guard-phpmd runs PHP Mess Detector on changed files

Documentation

Plugin When to use
guard-hologram generates beautiful style guides for CSS
guard-docbook-status update docbook document overviews (structure stats)
guard-readme-on-github preview GitHub pages locally before pushing them to GH
guard-rocco regenerates Rocco docs
guard-gimli convert markup files (markdown, rdoc) into PDF files
guard-git-scribe rebuild git-scribe ebooks
guard-markdown convert Markdown files to HTML
guard-ronn compile man pages
guard-inch documentation measurement tool for Ruby
guard-rdoc rebuild rdoc on code changes
guard-redcarpet use Redcarpet gem to process markdown to html
guard-yard rebuild documentation with Yard

DevOps / Chef

Plugin When to use
guard-foodcritic lint tool for Opscode Chef cookbooks
guard-chef watches and reloads Chef recipes automatically
guard-kitchen use Kitchen to develop Chef cookbooks
guard-knife update Chef cookbooks, data bags, envs and roles automatically
guard-librarian automatically install Chef cookbook dependencies in Cheffile using librarian-chef
guard-rake-vagrant converge cookbooks and run integration tests
guard-rsync automatically sync directories with RSync whenever they change
guard-remote-sync RSync runner

DevOps / Puppet

Plugin When to use
guard-puppet Helps build Puppet catalogs for deploying and managing sites and servers
guard-puppet-lint runs puppet-lint

Deploying / DevOps / System services

Plugin When to use
guard-s3 Synchronize folders with Amazon S3 buckets
guard-flopbox synchronize directories via SFTP
guard-autoupload upload files using SFTP or FTP
guard-bosh update Cloud Foundry BOSH config (large scale distributed services)
guard-clockwork restart Clockwork instances (Clockwork = Cron replacement written)
guard-fig help develop docker containers using fig
guard-shoryuken Amazon AWS SQS thread based message processor

Editor helpers (ctags generators)

Plugin When to use
guard-ctags-bundler regenerates CTags files so editors can find method definitions
guard-ctags-composer for PHP projects

Utility

Plugin When to use
guard-bundler installs/updates gems when Gemfile changes
guard-shell Runs shell commands when changes happen - also supports notifications and long -running programs
guard-yield runs any Ruby code (without the need to write a Guard plugin)
guard-rake reruns a rake task when files change
guard-post automatically load text files into database records (Mongoid, ActiveRecord, etc.)
guard-lilypond Engraving music scores
guard-zen Runs Ruby Koans
guard-blogger update Blogger templates
guard-cocoapods installs CocoaPods
guard-bundler installs/updates gems when Gemfile changes
guard-copy copy files whenever files are created or modified
guard-copy3 copies files and folders whenever files are created or modified
guard-entangle expands files inline
guard-gitpusher automatically uploads changed files to Git repository
guard-mirror copies CoffeeScript/Styles/Jade source into another location
guard-npm instal/update npm packages from package.json
guard-pushover send Pushover real-time notifications to mobile devices
guard-ragel generate Ragel state machine files

Guard Plugin development

Plugin When to use
guard-compat Essential for developing and testing Guard Plugins
guard-yield runs any Ruby code (without the need to write a Guard plugin)
guard-helpers helpers modules for Guard plugins

Not yet categorized/described

NOTE: I (@e2) haven't gone through these - please move these into the above categories if any are usable/useful enough:

Plugin When to use
guard-addremove ?
[guard-asciidoctor]: ?
[guard-bacon]: ?
guard-blink1 ?
[guard-bower]: ?
guard-catalog ?
[guard-cloudformation]: ?
guard-concatfilter ?
guard-cop: ?
[guard-cucumber-js]: ?
guard-depend ?
guard-ecukes ?
[guard-ejs]: ?
guard-erlang ?
guard-evergreen ?
guard-faye ?
[guard-fixture_builder]: ?
[guard-flay]: ?
[guard-go]: ?
[guard-haml-ext]: ?
[guard-haml2erb]: ?
guard-handlebars ?
[guard-i18next]: ?
[guard-jasmine-rails]: ?
guard-jenkins ?
guard-jet ?
[guard-jetty]: ?
[guard-js-static-require]: ?
[guard-jshintrb]: ?
[guard-jslint-on-rails]: ?
[guard-jslint-on-rails-for-1.1.1]: ?
[guard-jst]: ?
[guard-koans]: ?
guard-konacha-rails ?
guard-konacha-version ?
guard-live-set ?
[guard-lono]: ?
guard-markdown ?
guard-markdown2impress ?
guard-minitest-decisiv ?
guard-notifier-blink1 ?
[guard-notifier-git_auto_commit]: ?
guard-notifier-gntp_only-darwin ?
[guard-opal-rails]: ?
guard-openscad ?
guard-parallel_all ?
guard-pdflatex ?
[guard-phpunit2]: ?
guard-play ?
guard-predictionio ?
[guard-preek]: ?
[guard-preserves]: ?
guard-processing ?
[guard-prostores]: ?
[guard-python-unittest]: ?
[guard-rackup]: ?
[guard-rna]: ?
guard-rrails ?
guard-rubby ?
[guard-ruby]: ?
[guard-rust]: ?
guard-schema ?
guard-schema ?
guard-seeds ?
[guard-shellexec]: ?
[guard-simple_shell]: ?
guard-sporkminitest ?
guard-sprite-factory ?
guard-steering ?
[guard-stitch]: ?
guard-stitch-plus ?
guard-strainer ?
guard-sublime-ctags ?
guard-sunspot ?
[guard-sync]: ?
guard-tap ?
guard-tay ?
guard-teabag ?
[guard-templates]: ?
guard-templates-jshaml ?
guard-test ?
guard-tishadow ?
guard-titan ?
guard-toc ?
guard-treetop ?
guard-typescript ?
guard-unity ?
guard-vows ?
guard-webhook-notifier ?
guard-webpack ?
guard-xcode ?
guard-xcoder ?
guard-yaml ?
guard-yamlsort ?
[guard-yardstick]: ?
guard-yeti ?
guard-zeus-client ?
[guard-zeus_server]: ?

Outdated/Obsolete plugins

Outdated Plugin Why outdated/obsolete
Rails-Autotester probably replaced with Guard::Minitest
guard-autorefresh superseeded by Guard::LiveReload
guard-coffeedripper probably outdated
guard-db probably replaced with guard-migrate
guard-ego Guard can now reload itself
guard-focus probably can be replaces with Guard::RSpec with custom config
guard-hydra probably replaced with Guard::RSpec using parallel specs (check Guard::RSpec Readme)
guard-jekyll superseeded by guard-jekyll-plus
guard-jessie likely superseeded by guard-jasmine
guard-jslint-on-rails probably outdated
guard-jstd probably superseeded by other JavaScript testing Guard plugins
guard-krl updates cloud-based Kinetic Rules Engine rule files (company dissolved)
guard-mozrepl probably superseeded by Guard::LiveReload
guard-phantomjs probably superseeded by other JavaScript testing Guard plugins
guard-rails-assets not sure if it works with Rails 4
guard-rspectacle Embedded RSpec runner - probably better to use Guard::Rspec or Guard::Zeus
guard-soca likely outdated
guard-spring guard-rspec supports running RSpec with Spring and a lot more
guard-stendhal likely outdated
guard-stitch alternative to guard-sprockets, but may be outdated
[guard-jekyll2] probably replaced with guard-jekyll-plus
guard-fast_spec probably obsolete
guard-railstestdb replaced with guard-migrate
guard-reloader obsolete?
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.