When comparing zgen vs Oh-My-Zsh, the Slant community recommends Oh-My-Zsh for most people. In the question“What are the best ZSH configuration frameworks?” Oh-My-Zsh is ranked 2nd while zgen is ranked 7th. The most important reason people chose Oh-My-Zsh is:
The provided enhancements to zsh just hit the spot.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Easy to use
Loading plugins can be done with a simple command. A git url can be specified to load plugins without any manual configuration or setup. Packages and themes from other plugin managers can be loaded from zgen without the entire plugin manager being installed.
Pro Clean .zshrc
zgen uses an init.zsh to load plugins which means basic load commands can be used in a zshrc making it easy to manage.
Pro Fast startup
zgen has a very fast startup if configured properly compared to oh-my-zsh.
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 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 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 Cross platform
Can be used by zsh on Linux, Mac or under Cygwin on Windows.
Cons
Con Reset required after plugin update
Because an init.zsh is used, if you load more plugins you must run zgen reset to reset the init.zsh. This can be done automatically in a .zshrc with the zgen saved variable.
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.