Add a zsh plugin¶
Zsh plugins are managed declaratively by sheldon. Add a plugin by editing config/sheldon/plugins.toml — it's symlinked to ~/.config/sheldon/plugins.toml and sourced from home/zshrc via eval "$(sheldon source)".
1. Add the plugin¶
Add a [plugins.<name>] table. Most plugins come from GitHub, so use the github = "owner/repo" form:
sheldon downloads the plugin on the next shell source and generates the source lines automatically — no manual cloning.
Note
Order matters for some plugins. fast-syntax-highlighting and zsh-autosuggestions should generally stay last; add ordering-sensitive plugins relative to them.
2. Reload the shell¶
Open a new terminal, or re-source your config in the current one:
On first source, sheldon clones the new plugin and you'll see it take effect immediately.
3. (Optional) Pin / update versions¶
sheldon records resolved commits in a lock file. Refresh pinned commits with:
4. Commit¶
git -C ~/dotfiles add config/sheldon/plugins.toml
git -C ~/dotfiles commit -m "feat: add zsh-history-substring-search plugin"
Because the file is tracked and symlinked, every machine picks up the same plugin set on its next update.sh or shell reload.
Tip
home/zshrc only calls sheldon when it's installed (command -v sheldon), falling back to manually-cloned plugins under ~/.zsh. Ensure sheldon is present (it's in the core Brewfile) so your new entry is picked up.
See also¶
- Shell Performance — how plugin loading affects shell startup.
- Add a tracked dotfile — track other config files.