Full control. No magic. Just clarity.
Veil is not a plugin manager. It does not pull external tools or hide behavior behind layers of magic. Everything it does is explicit, local, and under your control.
Veil breaks your .zshrc into independent modules, each a plain .zsh file that can be read, modified, or disabled independently.
Out of the box, it provides a ready-to-use Zsh environment for everyday terminal work, with sensible defaults for history, completion, navigation, aliases, keybindings, and common tools. The included Ultima theme shows VCS state, SSH connections, and command status in a clean, unobtrusive prompt.
# Clone Veil repository
git clone https://github.com/egorlem/veil.zsh "$HOME/.zsh/veil"
# Source Veil in your .zshrc (includes Ultima theme)
echo 'source "$HOME/.zsh/veil/veil.zsh"' >> "${ZDOTDIR:-$HOME}/.zshrc"Included by default:
- Core module loader
- Modules:
less,ls,completion,history,navigation - Ultima minimalist theme
For detailed module configuration, see Tier 2 Documentation
Traditional .zshrc files often grow into tangled, hard-to-manage scripts. Changing one part can break another, and debugging becomes slow and frustrating.
Veil’s modular design solves this problem: each module is self-contained, with its own functions and rules. This makes your shell predictable, transparent, and fully under your control.
Modules and themes are organized in simple folders for clarity:
~/.veil/components/modules
├── completion.module.zsh
├── history.module.zsh
└── ...
~/.veil/components/themes
├── ultima.zsh-theme
└── ...
If you prefer plugins that just work without showing how they work, Veil may not be the right fit — it’s meant for users who value visibility and control over magic.
Performance was measured with all 9 modules + Ultima theme, including zsh-users/zsh-autosuggestions and zsh-users/zsh-syntax-highlighting, using zimfw/zsh-framework-benchmark as the test tool.
| Framework / Config | Real | User | Sys | Max |
|---|---|---|---|---|
| ZimFW (all included) | 0.075 | 0.003 | 0.071 | 0.107 |
| Veil (9 modules + Ultima) | 0.083 | 0.003 | 0.079 | 0.107 |
| zplug | 0.230 | 0.008 | 0.218 | 0.274 |
| Oh My Zsh | 0.351 | 0.005 | 0.344 | 0.378 |
Veil remains efficient and responsive, even with multiple modules loaded, and adding more modules may slow it down slightly — but performance stays within reasonable bounds.
Veil documentation follows progressive disclosure.
- Tier 1 (You are here) — Quick start, core concepts, essentials.
- Tier 2 — Advanced configuration and integration.
- Tier 3 — Core modules and system internals.
Start here to learn the basics of Veil. Understand core concepts and essential workflows. Move to Tier 2 only when you are ready to configure and personalize your setup.
Veil treats each configuration module as a small standalone program, solving the issues that come with large, tangled .zshrc files. Each module handles one part of your shell clearly and predictably, with a single responsibility, a clear entry point, and its own functions and internal rules.
This design allows every module to be read, reasoned about, and maintained in isolation, and explains why all of Veil, including its theme, is structured like self-contained programs instead of typical shell scripts.
Do What The F*ck You Want To Public License, Version 2 See LICENSE for details.
Maintained by Egor Lem