Oh-My-Zsh is the most widely adopted configuration manager for Z Shell (zsh), with over 83,000 stars (as of February 2019) on Github alone. Active for over ten years, it has a massive community with over 100 regular developers and thousands of users that have resulted in a project with superb documentation, infinite configuration examples, and an expertly-curated set of built-in plugins and themes to make customizing your Z shell terminal a quick and painless experience.
Ranked in these QuestionsQuestion Ranking
Pro Great enhancements
The provided enhancements to zsh just hit the spot.
Pro Easy to extend
It is super easy to write additional plugins or themes for.
Pro Easy to understand config
The configuration is very well documented and makes it easy to edit.
Pro Super customizable
There are a ton of plugins that come with it for many common tools and OS's.
Pro Simple installation and updates
A user doesn't have to be particularly technical to benefit from oh-my-zsh. You run a simple command to install and it asks you if it may check for git updates on a regular basis. You give up a bit of control but you get a tremendous benefit for very little individual effort.
Pro Updates over Git
This provides a robust update mechanism with full version control. That means that no custom mechanism needs to be implemented for upgrades of the user profile. It also means that your own modifications can be preserved while still allowing upgrades. And it means that you can downgrade at any time to any previous revision if anything doesn't work right with the new version.
Pro Cross platform
Can be used by zsh on Linux, Mac or under Cygwin on Windows.
Con Major performance issues
It's not unusual to wait >1 second to initialize a new shell.
Con Installing/updating custom plugins/themes is manual
Installing plugin/extension that is not in the distribution (e.g. zsh-syntax-highlighting, powerlevel9k) requires git checkout and sometime creating symbolic link with adequate name (*.plugin.zsh, *.zsh-theme); also you have to remember to pull these repositories from time to time to update.
Con Updates interrupt your flow
The update check triggers on zsh launch, so if you leave your terminal open, you need to manually check for updates, or (most annoying) when you launch your terminal, sometimes you'll need to go through the update wizard before you get to your prompt.
Con Updates over Git
Because it updates over Git, if something breaks in an update you will need to use Git-fu to revert to an older version.