Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Test-driven sysadmin.
Ruby Other

Don't ID the homebrew repo by commit.

By default, homebrew is installed using --depth=1, which means we can't
rely on any specific past commit being present.

(When installed by babushka it's always present because babushka does
a full clone, but it might well be been installed by other means, i.e.
the homebrew install script.)
latest commit 9cf69bd269
@benhoskings authored


Detailed documentation:
Mailing list:

A lot of the tech jobs we do manually aren't challenging or fun, but they're quite particular and have to be done just right -- they're chores. Things that are important to do, but that are better automated than done manually.

That's what babushka is for. Once you describe a job using its DSL, babushka can not only accomplish each part of the job, but also check if each part is already satisfied. For each component of the job, a test, along with the code to make that test pass -- test-driven sysadmin.


Babushka is most easily installed using, a shell script that installs babushka via git (and its dependencies, ruby and git, via your system's package manager if required). It's safe to run on existing systems, and intended to be used as the first shell command on a new system too. You can install babushka this way using curl or wget:

sh -c "`curl`"

If you'd rather install manually, all you need to do is clone the git repo (or extract an archive of it), and if you like, link bin/babushka.rb into your path as 'babushka'.

Check the install documentation, for the full details on customising the installation, including locking to specific versions and installing from forks using

Supported systems

Babushka itself should run on any Unix; there's nothing in the core of babushka that requires anything other than unix, ruby, and git.

I develop babushka against OS X and Ubuntu, so homebrew and apt are the best-supported package managers. There is also some yum (RedHat/Fedora/CentOS) and pacman (Arch) support, thanks to others' contributions. On other systems, specific operations (like installing a package using that system's package manager) will fail with an error message, but otherwise babushka should run fine. In any case, patches are most welcome.


Babushka takes advantage of these ruby libraries:

Thanks very much to everyone who's contributed to babushka, whether by submitting patches, discussing design ideas with me, testing, or just giving their feedback.

Rather than a list of contributors here, which inevitably falls out of date, check the contributors page. For other contributions, version-bumping commits always detail what changed and who helped out.


Babushka is licensed under the three-clause BSD license, except for lib/levenshtein/levenshtein.rb, which is licensed under the MIT license.

The BSD license can be found in full in the LICENSE file, and the MIT license can be found at the top of lib/levenshtein/levenshtein.rb.

Something went wrong with that request. Please try again.