Background#

I’ve been a zsh user for a long time, both on Linux (where it’s not the default) and OS X macOS (where it now is the default).

The first thing I used to do on new machines is port all of my .oh-my-zsh stuff over.

Oh My Zsh is not bad! This is not mean to slam the project at all.

But I’ve recently (Jan 2025) upgraded to a new Mac Mini M4 and I thought maybe I should see what else is out there. If there’s something that’s good enough without being quite as large in size.

Alternatives#

Antidote#

Antidote is the only one I’m really messing with right now (Jan 2025).

Antidote is a Zsh plugin manager made from the ground up thinking about performance.

It is fast because it can do things concurrently, and generates an ultra-fast static plugin file that you can easily load from your Zsh config.

The author of Antidote also claims:

You can use antidote to load oh-my-zsh plugins pretty easily.

I’m going to give it a try.

~/.zshrc#

autoload -Uz compinit
compinit

. "$HOME/.cargo/env"

zstyle :omz:plugins:iterm2 shell-integration yes

# Set OMZ variables if you want.
ZSH_THEME="kphoen"

# Set any helper functions used by your antidote config.
function is-macos() {
	[[ $OSTYPE == darwin* ]]
}

# source antidote
source ~/.antidote/antidote.zsh

# initialize plugins statically with ${ZDOTDIR:-~}/.zsh_plugins.txt
antidote load

~/.zsh_plugins.txt#

#.zsh_plugins.txt

# use-omz needs to be FIRST
getantidote/use-omz

# Add in some oh-my-zsh stuff
ohmyzsh/ohmyzsh path:lib
ohmyzsh/ohmyzsh path:plugins/colored-man-pages
ohmyzsh/ohmyzsh path:plugins/docker-compose
ohmyzsh/ohmyzsh path:plugins/gh
ohmyzsh/ohmyzsh path:plugins/git
ohmyzsh/ohmyzsh path:plugins/git-prompt
ohmyzsh/ohmyzsh path:plugins/rsync
ohmyzsh/ohmyzsh path:plugins/ssh

# Add macOS specific plugins
ohmyzsh/ohmyzsh path:plugins/brew conditional:is-macos
ohmyzsh/ohmyzsh path:plugins/macos conditional:is-macos
ohmyzsh/ohmyzsh path:plugins/iterm2 conditional:is-macos
# zsh-users
zsh-users/zsh-autosuggestions
zsh-users/zsh-syntax-highlighting