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 $HOMEReal 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 via dragon-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 ~/.gitconfig if 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.

PluginReplaces
mo-eza-overridels/ll/la/tree → eza
mo-bat-overridecat/less → bat
mo-nvim-overridevim → nvim
mo-safety-overridecp/mv/mkdir/reboot with confirmation prompts
mo-colorize-overrideip/diff → colorized output
mo-trashrm → trash-put (restorable)

Additive plugins add new commands and never change existing behavior.

PluginWhat it adds
mo-gitgit aliases (gs, gp, gl, …) and fuzzy branch/log pickers
mo-dirsmkcd, up, tmpcd, fcd
mo-filesextract, compress, bak, sizeof, fp
mo-searchgrep aliases, f, fhist, fman, frg
mo-processpsgrep, port, fkill
mo-docsmd2pdf — Markdown to PDF
mo-projects<project-name> aliases + p (fzf picker) for every dir in ~/projects
mo-mkscriptmkscript — scaffold a new shell script from template
mo-shell-toolsh, ?, cwhich, vwhich, clip, vizsh, soursh, calc, epoch, mo-where
mo-envfenv
mo-buildm, mc
mo-welcomesystem snapshot banner on shell open
mo-climaster-oogway meta CLI
mo-auto-lsauto-ls after cd
mo-colorterminal color preview, palette, and text colorizer
mo-manmo-man — view any mo-* plugin README in the terminal
mo-brewbup, bi, bun, bs, bl, bout — Homebrew helpers (macOS only; not loaded on Linux)

macOS notes

  • rm trashes to ~/.Trash and Finder's Put Back works; see mo-trash for how trash-restore recovers the original path.
  • mo-brew adds Homebrew helpers. It is in the default plugin list and silently does not load on Linux.
  • mo-colorize-override does not alias ip or dmesg: macOS has no ip, and its BSD dmesg takes no --color.
  • epoch accepts an ISO datetime but not natural language, since BSD date cannot parse it.
  • The load line in mo-welcome reports core tiers read from the hardware, so an Apple Silicon machine shows e.g. 6S+12P rather than a flat count.

Shell behaviour differences from stock zsh

  • WORDCHARS is set to *?[]~&;!#$%^(){}<>/, ., _, and - are removed from the default. This means Ctrl+W and word-motion commands stop at every path component and word boundary. Restore the originals by setting WORDCHARS in your ~/.zshrc after 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