The next generation Puppet documentation extraction and presentation tool.
Clone or download
Latest commit 0a89eb8 Nov 20, 2018

Puppet Strings

Build Status Gem Version

Puppet Strings generates documentation for Puppet code and extensions written in Puppet and Ruby. Strings processes code and YARD-style code comments to create documentation in HTML, Markdown, or JSON formats.

Code GitHub
Issues Puppet JIRA Tracker
License Apache 2.0
Change log
Contributing and

Installing Puppet Strings


  • Ruby 2.1.9 or newer
  • Puppet 4.0 or newer
  • The yard Ruby gem

Install Puppet Strings

  1. Install the YARD gem by running gem install yard

  2. Install the puppet-strings gem by running gem install puppet-strings

  3. Optional: Set YARD options for Strings

    To use YARD options with Puppet Strings, specify a yardopts file in the same directory in which you run puppet strings. Puppet Strings supports the Markdown format and automatically sets the YARD markup option to markdown.

    To see a list of available YARD options, run yard help doc. For details about YARD options configuration, see the YARD docs.

Generating documentation with Puppet Strings

By default, Puppet Strings outputs documentation as HTML, or you can specify JSON or Markdown output instead.

Strings generates reference documentation based on the code and Strings code comments in all Puppet and Ruby source files under the ./manifests/, ./functions/, ./lib/, ./types/, and ./tasks/ directories.

Strings outputs HTML of the reference information and the module README to the module's ./doc/ directory. This output can be rendered in any browser.

JSON and Markdown output include the reference documentation only. Strings sends JSON output to either STDOUT or to a file. Markdown output is written to a file in the module's main directory.

See the Puppet Strings documentation for complete instructions for generating documentation with Strings. For code comment style guidelines and examples, see the Puppet Strings style guide.

Additional Resources

Here are a few other good resources for getting started with documentation:

Developing and Contributing

We love contributions from the community!

If you'd like to contribute to puppet-strings, check out to get information on the contribution process.

Running Specs

If you plan on developing features or fixing bugs in Puppet Strings, it is essential that you run specs before opening a pull request.

To run specs, run the spec rake task:

$ bundle install --path .bundle/gems
$ bundle exec rake spec


Please log tickets and issues in our JIRA tracker. A mailing list is available for asking questions and getting help from others.

There is also an active #puppet channel on the Freenode IRC network.

We use semantic version numbers for our releases and recommend that users upgrade to patch releases and minor releases as they become available.

Bug fixes and ongoing development will occur in minor releases for the current major version. Security fixes will be ported to a previous major version on a best-effort basis, until the previous major version is no longer maintained.