ez

PROJECT-SCOPED ALIASES

Stop memorizing context-specific commands.
Define aliases per directory. Share them with your team.

ez CLI demo

Installation

// Distribution via Homebrew
brew tap urtti/ez && brew install ez
Requires macOS 15.0 or newer

CORE Features

01Keychain secretsSecrets are stored in Apple Keychain and injected at runtime. They are never written to disk or exposed in terminal output.
02Project-scopedAliases are defined in a .ez_cli.json file per directory. They only exist where they are defined.
03Team sharingCommit the config file. New team members get all project aliases with the repository.
04ParameterizedAliases support {1} {2} placeholders. Arguments are substituted at runtime.
05Timed executionEvery alias execution is timed and logged automatically.
06Swift CLIWritten in Swift. Single binary, no dependencies.
07MIT licenseOpen source. No telemetry, no network calls.

Usage

01 // Basic usage

CREATE alias & use it

$ ez add deploy "./scripts/deploy.sh --env prod">> Stored.
$ ez deployDeploying to production...
02 // OVERVIEW

List aliases

$ ez listdeploy → ./scripts/deploy.sh --env prod
test   → npm test -- --coverage
03 // USING KEYCHAIN FOR VARIABLES

Add & use secrets

$ ez add-secret --key EZ_API_KEY --value sk-abc123>> Secret EZ_API_KEY stored in Keychain.
$ ez add upload 'curl -H "Authorization: {EZ_API_KEY}" ...'>> Stored. Secret injected at runtime.
$ ez uploadExecuting: curl -H "Authorization: ..." https://api.example.com
04 // USING PARAMETERS

Create alias with parameters

$ ez add tag 'git tag -a {1} -m "Release {1}"'>> Stored with placeholder {1}.
$ ez tag v2.0.0Executing: git tag -a v2.0.0 -m "Release v2.0.0"