Project-Scoped Command Aliases
Stop memorizing project-specific commands or digging READMEs.
Share aliases easily with the whole team.

Why ez?
Project-Scoped
Aliases are stored per-directory in .ez_cli.json. Commands stay with the project they belong to.
Context-Safe
No global aliases means no accidental damage in a different directory. Commands only exist where they're defined.
Shareable
Commit aliases .ez_cli.json to your repo with a single file. New team members run the same commands on day one.
Native
Built with Swift for macOS. Instant startup, zero third-party dependencies.
Privacy first, open-source
Zero telemetry. No data sent to the cloud. Open-source under the MIT license.
Interactive Support
Full TTY passthrough for interactive tools. Run vim, ssh, or any command that needs user input.
Tab Completion
Shell completions for zsh. Type ez and tab to see all available aliases.
Automatic Timing
Runtime logging built-in. See exactly how long your builds, tests, and deploys take.
Install
brew tap urtti/ez && brew install ezUsage
ez add deploy "./scripts/deploy.sh --env prod"🐘 ez deploy now stores ./scripts/deploy.sh --env prodez deployDeploying to production...🐘⏱️ 4.231 s
ez listdeploy → ./scripts/deploy.sh --env prodtest → npm test -- --coverage
ez remove deploy🐘 ez deploy removed.Chain Multiple Commands
Run entire workflows with a single alias, either sequentially or in parallel.
ez add check npm run lint && npm run typecheck && npm auditez add -p check-parallel "npm run lint" "npm run typecheck" "npm audit"Requires macOS 15.0 or newer.
Open source under MIT license.
