Forge Home


Install and configure the best shell, oh-my-zsh.


7,012 latest version

3.1 quality score

Version information

  • 2.0.2 (latest)
  • 2.0.1
  • 2.0.0
released Jul 17th 2016
This version is compatible with:
  • ArchLinux, CentOS, Debian, OracleLinux, RedHat, Ubuntu

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'bitswarmlabs-ohmyzsh', '2.0.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add bitswarmlabs-ohmyzsh
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install bitswarmlabs-ohmyzsh --version 2.0.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



bitswarmlabs/ohmyzsh — version 2.0.2 Jul 17th 2016


This is a oh-my-zsh module. It installs oh-my-zsh for a user and can change their shell to zsh. It can install and configure themes and plugins for users.

oh-my-zsh is a community-driven framework for managing your zsh configuration. See for more details.


# disable management of zsh and git packages:
class { 'ohmyzsh::config': manage_zsh => false, manage_git => false }

# install for a single user
ohmyzsh::install { 'user1': }

# install for multiple users in one shot and set their shell to zsh
ohmyzsh::install { ['root', 'user1']: set_sh => true }

# install and disable automatic updating
ohmyzsh::install { 'user2': disable_auto_update => true }

# install and disable update prompt so updates are applied automatically
ohmyzsh::install { 'user2': disable_update_prompt => true }

# install a theme for a user
ohmyzsh::fetch::theme { 'root': url => '' }

# set a theme for a user
ohmyzsh::theme { ['root', 'user1']: } # would install 'bitswarmops' theme as default

ohmyzsh::theme { ['root', 'user1']: theme => 'dpoggi' } # specific theme

# changing the hostname slug of bitswarmops theme to use puppet fact:
class { 'ohmyzsh::config': theme_hostname_slug => $::clientcert }
ohmyzsh::theme { ['root', 'user1']: }

# activate default plugins for a user
ohmyzsh::plugins { 'user1': }

# or activate specific plugins for a user
ohmyzsh::plugins { 'user1': plugins => 'git github' }

# upgrade oh-my-zsh for a single user
ohmyzsh::upgrade { 'user1': }

# upgrade oh-my-zsh on a different schedule (only 'daily' is defined, you are responsible for creating additional schedules)
ohmyzsh::upgrade { 'user1': schedule => 'weekly' }


Please log tickets and issues on GitHub


This module was originally a fork of zanloy/ohmyzsh at version 1.0.4, itself a fork of acme/ohmyzsh at version 0.1.3