Package Management
Packages are separate from dotfiles. install.sh handles everything.
Quick Reference
# macOS
./packages/install.sh # Desktop packages
./packages/install.sh --work # + MS Office
./packages/install.sh --personal # + Rogue Amoeba
./packages/install.sh --playground # + Testing tools
./packages/install.sh --dry-run # Preview
./packages/install.sh --cleanup # Remove unlisted packages
# Linux
./packages/install.sh desktop # Full desktop
./packages/install.sh server # Minimal
Brewfile Structure
| File | What’s in it | Flag |
|---|---|---|
| Brewfile.core | CLI essentials | Always |
| Brewfile.dev | Dev tools, languages | Always |
| Brewfile.ai | AI/LLM tools | Always |
| Brewfile.apps | GUI apps | Desktop |
| Brewfile.apps.work | MS Office | –work |
| Brewfile.apps.personal | Rogue Amoeba | –personal |
| Brewfile.font | Nerd Fonts | Desktop |
| Brewfile.devops | Terraform, AWS, etc | Desktop |
| Brewfile.playground | Testing/evaluation | –playground |
| manual-install.txt | Not in brew | - |
What’s in each Brewfile
core
CLI essentials: eza, bat, fd, ripgrep, fzf, zoxide, atuin, jq, yq, etc.
dev
Languages and dev tools: neovim, tmux, git tools, mise, python, go, rust, lua, docker, k8s tools.
ai
AI stuff: Claude, ChatGPT, Cursor, Windsurf, Zed, LM Studio, etc.
apps
GUI apps: browsers, communication (Discord, Slack, Signal), notes (Obsidian, Logseq), utilities (Alfred, BTT, Hazel), creative (Affinity suite), etc.
apps.work
MS Office suite. Only on work machines.
apps.personal
Rogue Amoeba audio apps (Audio Hijack, Loopback, SoundSource, etc.). Only on personal machines.
font
Nerd Fonts: Fira Code, JetBrains Mono, Iosevka, Meslo, Monaspace, etc.
devops
Terraform, AWS CLI, Ansible, Packer, etc.
playground
Tools under evaluation. Uncomment to test, then decide to keep or remove.
Linux
Arch package lists mirror the Brewfile naming:
packages/arch/core.txt- CLI essentialspackages/arch/dev.txt- Dev tools, languagespackages/arch/ai.txt- AI/LLM toolspackages/arch/apps.txt- GUI appspackages/arch/apps.work.txt- Work-onlypackages/arch/apps.personal.txt- Personal-onlypackages/arch/shell.txt- Shell enhancementspackages/arch/font.txt- Nerd Fontspackages/arch/devops.txt- Terraform, AWS, etcpackages/arch/server.txt- Minimal server
Debian uses simpler lists:
packages/debian/desktop.txtpackages/debian/server.txt
Cleanup
Remove packages not in any Brewfile (macOS only):
./packages/install.sh --cleanup --dry-run # Preview
./packages/install.sh --cleanup # Do it