brew-coffee is a lightweight CLI tool to quickly set up and manage developer environments using Homebrew bundles. It provides curated sets of packages for programming languages, cloud providers, Kubernetes, and common development tools, making environment setup fast, consistent, and reproducible.
-
Install complete developer environments in seconds
-
Curated bundles for:
- Programming: Python, Node.js
- Cloud: AWS, Azure, GCP
- Kubernetes & Infra: K8s, Infra
- Developer Tools: Git, Oh My Zsh, Dev utilities
-
Modular, reusable Brewfiles with shared common tools
-
CLI-friendly management via
coffee.sh:install– install bundlesclean– remove installed bundleslist– show available bundlescheck– verify bundle installation status
-
Open source & community-friendly
git clone https://github.com/n4en/brew-coffee.git
cd brew-coffeechmod +x ./coffee.shcoffee.sh is the main entry point. All operations (install, clean, check, list) are delegated to the scripts in scripts/ and handle bundles in bundles/.
./coffee.sh listOutput example:
- python
- nodejs
- aws
- azure
- gcp
- k8s
- infra
- dev
./coffee.sh install python./coffee.sh install python nodejs aws./coffee.sh installVerify whether all packages in a bundle are installed:
./coffee.sh check awsCheck all bundles:
./coffee.sh checkRemove installed packages for a bundle:
./coffee.sh clean awsOnly packages listed in the bundle and its shared files are removed.
./coffee.sh cleanWhen you run ./coffee.sh clean <bundle>, Homebrew will uninstall all packages in that bundle. Homebrew may also automatically remove any dependencies it considers "unneeded" even if those dependencies are used by other bundles. This is standard Homebrew behavior and cannot be controlled by the script.
Best Practice:
- If you clean a bundle and other bundles break, simply re-run
./coffee.sh install <other-bundle>to restore missing dependencies. - For maximum safety, use
cleanonly when you are sure you do not need the packages elsewhere. - Consider using a Homebrew restore or backup if you want to revert changes.
- All bundles are located in the
bundles/directory. - Bundle naming follows
<name>.Brewfile.
- Create a new Brewfile in
bundles/:
touch bundles/my-new-bundle.Brewfile- Add Homebrew packages and optional comments.
- Include shared tools if needed:
eval File.read("./bundles/infra.Brewfile")- Install the new bundle via:
./coffee.sh install my-new-bundle- You can freely add or remove packages in any bundle (
bundles/*.Brewfile) to suit your needs. - The provided bundles include packages that are most commonly used by developers, but you can tailor them for your own workflow or team.
Contributions are welcome! You can:
- Add new bundles for different tech stacks
- Update existing Brewfiles
- Improve CLI scripts or documentation
Steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-new-bundle- Make changes
- Submit a Pull Request
- ✅ Tested and works on both Linux and macOS (Apple Silicon)