ez stores aliases in a .ez_cli.json file per directory. The nice thing about this is that if you like you can have the same alias, e.g. ez test, ez build etc. in all your projects and for each one it does different things. Also, it's a natural place since you can then also commit it to the repo and thus share your best aliases with the team.
I just finished adding parameterization support and also simple secret management. If you like, you can store things like API keys with ez and they are used by the commands. They are stored in the local macOS keychain and read from there. This is safer than plaintext .env file, especially now that LLMs are rummaging through local filesystems.
This little CLI tool is written in Swift and no dependencies beyond swift-argument-parser. Full TTY passthrough so interactive tools can be part of aliases as well.
Install: brew tap urtti/ez && brew install ez
Happy to hear what you think and what's missing. I've been personally using this for over a year now, I think it's fun and makes everything feel a bit... easier.