From the earliest days of Facter to the latest version of Bolt, we've always been firm believers in the power of open source. Puppet's own projects benefit from working in the open, and so do the upstream projects we contribute to like Visual Studio Code, Leiningen, and Ruby.

It's not just about us, either. In addition to the open-source stack, there are over six thousand community modules on the Puppet Forge, created and maintained by a network of amazing users and developers. No matter what you want to automate, there's sure to be a module that can save you time and effort... for free.

Open source drives innovation by enabling anyone to experiment with the code. It enhances security by making the inner workings of the software you rely on visible for inspection. It builds community by encouraging collaboration and reuse. And it just feels good because it's the right thing to do.

Want to get down in the trenches and get your hands dirty with us? We'd love the help!

Open Source Puppet

Puppet is the most powerful configuration management tool in the solar system. It's the engine that drives your compliance, baseline, drift remediation, and deployment needs. It has always been and always will be open source, with freely downloadable operating system-specific agent packages, a massively scalable server, and data warehousing capabilities via PuppetDB.


To get started with automation you need a simple, fast, agentless multi-platform approach that doesn't need a lot of setup or prerequisites. This is Bolt.

With Bolt you can reuse your existing scripts in Bash, PowerShell, Python or any other language, plus you can take advantage of all of the modules on the Puppet Forge. You can perform individual tasks across systems and devices, like managing services and packages, rebooting, and troubleshooting. You can connect tasks together using Bolt Plans, allowing you to build and reuse sophisticated orchestration workflows.


Sometimes you need a lab to experiment in. Whether it's a brand-new technology, a passion project, or even a mad-scientist session with sparks flying, it's good to have a place to explore the edges of what's possible. For us, that's Lyra. Lyra runs as its own Github organization so it's easy to add new committers. The projects under it are mostly about working with cloud-native technology like Kubernetes. To get the flavor, check out wash – the wide-area shell – or the Golang implementation of hiera. Don't forget your safety goggles!

Puppet Development Kit (PDK)

Puppet Development Kit (PDK) makes it easy to develop and test Puppet modules by providing a simple, unified interface to a set of helpful tools for anyone who writes or consumes Puppet code. With PDK you get going fast with a batteries-included Puppet development environment and access to best practices and new tools to build, test and deliver high-quality Puppet modules with confidence. Additionally, the PDK offers the ability to catch issues earlier, before Puppet code is applied to live infrastructure by testing modules right from your Windows, OS X or Linux workstation.


Litmus is an open source project that provides a framework for acceptance-testing Puppet modules. Litmus provides common functions like provisioning targets to test against, installing the Puppet Agent, installing one or more module(s), running the tests, and then finally tearing down the testing infrastructure. It's able to be so lightweight because it uses Bolt for much of the heavy lifting.


Wash is an open source project that helps you deal with all of your remote or cloud-native infrastructure using the UNIX-y patterns and tools you already know and love. Imagine if you could just 'ls' to see all your ec2 instances, or 'cat' a file to see the tags or metadata for each instance. Wash does that and more!

Puppet DB

PuppetDB collects and stores data generated by Puppet giving you access to a huge inventory of metadata about every node in your infrastructure. Benefits include a searchable database of each resource managed on any node and the most recent facts, catalog and event reports for those nodes.


Beaker is a cloud-based acceptance testing harness for open source Puppet, Puppet Enterprise and other Puppet projects. It can be used as a provisioner for setting up virtual machines, running any configuration on those machines and then exiting.


Facter gathers basic facts about nodes (systems) such as hardware details, network settings, OS type and version, and more. These facts are made available as variables in your Puppet manifests and can be used to inform conditional expressions in Puppet.


Trapperkeeper is a Clojure framework for hosting long-running applications and services. It provides a simple configuration syntax and unified initialization of logging and configuration. Additionally you can use Trapperkeeper to configure and control which parts of the system are loaded at run-time, compose modular bits of functionality, cohesively manage the lifecycle of application components and load multiple web apps into a single web server.


Razor is an advanced provisioning application used to discover and deploy bare-metal machines and virtual systems. Razor lets you automate the process of going from a newly racked machine with no operating system to one that’s fully installed, managed by Puppet and ready to work — with no human intervention.

And there's more!

We do all of our open source development in the open on GitHub, so check out our repositories under the 'puppetlabs' namespace.