Skip to content
Go to file

Latest commit


Git stats


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

funzzy Build Status Crate version

Yet another fancy watcher. (Inspired by antr / entr)

Configure execution of different commands using semantic yaml.

# .watch.yaml
# list here all the events and the commands that it should execute
# TIP: include '.watch.yaml' in your .git/info/exclude to ignore it.

- name: run my tests
  run: make test
  change: 'tests/**'
  ignore: 'tests/integration/**'

- name: fast compile sass
  run: compass compile src/static/some.scss
  change: ['src/static/**', 'src/assets/*']

- name: Starwars
  run: telnet
  change: '.watch.yaml'

- name: say hello
  run: say hello
  change: '.watch.yaml'
  run_on_init: true


Create a lightweight watcher to run my tests everytime something in my project change. So I won't forget to keep my tests passing. Funzzy was made with Rust that is why it consumes almost nothing to run.


  • OSX:
brew tap cristianoliveira/tap
brew update
brew install funzzy
  • Linux:
curl -s | sh
  • With Cargo
cargo install funzzy

*Make sure you have $HOME/.cargo/bin in your PATH export $PATH:$HOME/.cargo/bin

From source

Make sure you have installed the follow dependecies:

  • Rust

Clone this repo and do:

make install


Initializing with boilerplate:

funzzy init

Change the yaml as you want. Then run:

funzzy watch

Run with some arbitrary command and stdin

find . -R '**.rs' | funzzy 'cargo build'

Run some arbitrary command in an interval of seconds

funzzy run 'cargo build' 10


It does not work between vm and host machine

If you wanna try without installing it in your machine, try the playground vagrant.

cd funzzy
vagrant up

# Testing
vagrant ssh -c "cd /vagrant && funzzy watch"

# Another shell
vagrant ssh -c "touch /vagrant/.watch.yaml"

It will take some time to be prepared.


Running tests:

cargo test

or simple make tests

Code Style

We use clippy for lintting the funzzy's source code. Make sure you had validate it before commit.


  • Fork it!
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request

Pull Requests are really welcome! Others support also.

Pull Request should have unit tests


This project was made under MIT License.