ghee is a shell shortcut manager: 617 aliases and functions across 32 modules, plus a Python/Rich fuzzy TUI. Source it into bash or zsh and the everyday CLI gets shorter.
It is MIT licensed. The search CLI alone is also on PyPI as ghee-cli (commands ghee and g); the aliases come from the shell install below.
Coverage includes Git, Docker, Kubernetes, AWS, GCP, Terraform, Heroku/Vercel/Fly/Railway, GitHub CLI, npm/yarn/pnpm, Python/pip/uv/poetry, Rust, Go, Redis, Postgres, MongoDB, Nginx, systemd, tmux, networking, recon, AI/LLM helpers, media tools, and more.
The Greatest Hits
gg "fix the auth bug" # git add . && git commit -m "..." && git push
gs # git status
gd # git diff
gb # git branch
gco feature # git checkout feature
gpr "title" # push branch, create GitHub PR via gh
gsquash 3 "msg" # squash last 3 commits into one
gwip # commit everything as WIP
gunwip # undo the last WIP commit
presto # nuclear option: wipe git history (with confirmation)
Docker:
dps # docker ps
dcu # docker compose up -d
dcd # docker compose down
dex container bash # docker exec -it container bash
Kubernetes:
kgp # kubectl get pods
kl pod-name # kubectl logs -f pod-name
kex pod-name bash # kubectl exec -it pod-name -- bash
Package managers. Note pni, not pi, for pnpm (the shorter pi is already the name of another command-line tool):
ni # npm install
yi # yarn install
pni # pnpm install
You do not memorize all 617. You memorize the ones you use. For the rest, there is G.
The G Command
Best-guess
G 'docker logs'
Fuzzy-match a raw command or a vague description to the closest shortcut and show what it runs. Enter copies the alias to the clipboard; r runs the command instead.
Add / remove customs
G -a olist 'ollama list'
G -rm olist
G ls
Customs live in ~/.ghee-custom, survive updates, and are searchable like builtins. Clash detection asks before you shadow a system command or overwrite an existing ghee alias.
Interactive Rich TUI
G
Clears the screen and opens a Rich search prompt: type a query and press Enter to list the 15 best matches with the command each one runs; q quits. Needs Python 3.8+ and the rich package (the installer creates a ghee-venv for you).
Other useful entry points: G update, G info docker, G -q 'find large files' (optional Ollama), G --sync <gist_url>.
Every key in the G registry resolves to a real shortcut, and CI checks that it stays that way.
Setup
git clone https://github.com/juleshenry/ghee.git
cd ghee
./setup-ghee
source ~/.zshrc # or ~/.bashrc
Detects bash/zsh, backs up your RC, wires bin/ + tools/ onto $PATH, sources modules/*.sh. Uninstall with ./setup-ghee --remove.
Extra Tools
Also in the box:
kash: file-backed function cache decorator (functools.cache, but stored as JSON on disk so it survives process restarts).
autosave-git-recursively.py: walk a tree and auto-commit/push every git repo (cron-friendly).
repoinspector.py: aggregate open issues across a GitHub user’s public repos.
Why Not Just Oh My Zsh?
- Scope. Oh My Zsh spreads its aliases across per-tool plugins that you enable one at a time. ghee is one registry that covers the whole toolchain.
G. Searchable registry + TUI + custom shortcuts. Every built-in entry carries a description, so you can search by what a shortcut does, not only by its name or command.- Shape. Modular
modules/*.shregistry, Python TUI when you want it, plain aliases when you do not. Works on bash and zsh.