master-oogway
September 16, 2026 · View on GitHub
A complete zsh environment — dragon prompt theme, git aliases, fuzzy-finder functions, and 23 opt-in plugins — distributed as a standalone git repo.
Runs on Linux and macOS. Everything platform-specific lives in
omz-custom/lib/platform.zsh; no plugin branches
on the OS itself, and zsh test/lint_platform.zsh enforces that.
Installation
oh-my-zsh must be installed first:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
On macOS, zsh, git and curl are already present; Homebrew is used for the
optional tools. Then install master-oogway:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tomershay100/master-oogway/main/install.sh)"
The installer sets up ~/.zshrc, ~/.gitconfig, ~/.editorconfig, ~/.zshenv, and SSH env forwarding. Run it again to update.
What gets installed
Your four config files become real files under ~/.config/master-oogway/, symlinked back into $HOME. On first install any existing file is backed up to ~/.<name>.pre-master-oogway.<timestamp>, then replaced with the symlink. After that master-oogway never rewrites them — edit freely.
~/.zshenv, ~/.gitconfig, and ~/.editorconfig keep your existing content. ~/.zshrc is master-oogway's — it ships the full plugin list and environment, so first install seeds it from the template. Your old ~/.zshrc is in the backup; port any custom settings into ~/.config/master-oogway/zshrc and run soursh.
Symlink in $HOME | Real file |
|---|---|
~/.zshrc | ~/.config/master-oogway/zshrc |
~/.zshenv | ~/.config/master-oogway/zshenv |
~/.gitconfig | ~/.config/master-oogway/gitconfig |
~/.editorconfig | ~/.config/master-oogway/editorconfig |
Back it up: git init ~/.config/master-oogway versions all four dotfiles plus your conf.zsh theme settings in one directory — master-oogway won't fight your edits or your backup.
~/.config/master-oogway/conf.zsh— theme settings; edit viadragon-configure~/.gitconfig— gets an[include]pointing to the curated git defaults; your[user]section is untouched. Notable opinion:pull.rebase = true(linear history). Override in your~/.gitconfigif you prefer merge commits.
Plugins
Override plugins replace system commands. Comment out any you don't want.
Plugins needing extra tools (eza, bat, neovim, fzf, make, trash-cli) ship
commented out in ~/.zshrc so a fresh install loads cleanly — install the
tool, then uncomment the matching line.
| Plugin | Replaces |
|---|---|
| mo-eza-override | ls/ll/la/tree → eza |
| mo-bat-override | cat/less → bat |
| mo-nvim-override | vim → nvim |
| mo-safety-override | cp/mv/mkdir/reboot with confirmation prompts |
| mo-colorize-override | ip/diff → colorized output |
| mo-trash | rm → trash-put (restorable) |
Additive plugins add new commands and never change existing behavior.
| Plugin | What it adds |
|---|---|
| mo-git | git aliases (gs, gp, gl, …) and fuzzy branch/log pickers |
| mo-dirs | mkcd, up, tmpcd, fcd |
| mo-files | extract, compress, bak, sizeof, fp |
| mo-search | grep aliases, f, fhist, fman, frg |
| mo-process | psgrep, port, fkill |
| mo-docs | md2pdf — Markdown to PDF |
| mo-projects | <project-name> aliases + p (fzf picker) for every dir in ~/projects |
| mo-mkscript | mkscript — scaffold a new shell script from template |
| mo-shell-tools | h, ?, cwhich, vwhich, clip, vizsh, soursh, calc, epoch, mo-where |
| mo-env | fenv |
| mo-build | m, mc |
| mo-welcome | system snapshot banner on shell open |
| mo-cli | master-oogway meta CLI |
| mo-auto-ls | auto-ls after cd |
| mo-color | terminal color preview, palette, and text colorizer |
| mo-man | mo-man — view any mo-* plugin README in the terminal |
| mo-brew | bup, bi, bun, bs, bl, bout — Homebrew helpers (macOS only; not loaded on Linux) |
macOS notes
rmtrashes to~/.Trashand Finder's Put Back works; see mo-trash for howtrash-restorerecovers the original path.- mo-brew adds Homebrew helpers. It is in the default plugin list and silently does not load on Linux.
mo-colorize-overridedoes not aliasipordmesg: macOS has noip, and its BSDdmesgtakes no--color.epochaccepts an ISO datetime but not natural language, since BSDdatecannot parse it.- The
loadline inmo-welcomereports core tiers read from the hardware, so an Apple Silicon machine shows e.g.6S+12Prather than a flat count.
Shell behaviour differences from stock zsh
WORDCHARSis set to*?[]~&;!#$%^(){}<>—/,.,_, and-are removed from the default. This meansCtrl+Wand word-motion commands stop at every path component and word boundary. Restore the originals by settingWORDCHARSin your~/.zshrcafter the master-oogway block.
User extensions
Drop a folder my-thing/my-thing.plugin.zsh into ~/.config/master-oogway/custom-plugins/ to load it as a plugin automatically — no ~/.zshrc edit needed.
Theme
The dragon theme is configured interactively:
dragon-configure