Homebrew Packages - lars-hagen/dotfiles GitHub Wiki
Package Management
This document describes the package management setup using Homebrew and the included packages in our dotfiles.
Brewfile Overview
Our Brewfile manages all package installations through Homebrew. It's organized into several categories:
Custom Taps
tap "common-fate/granted" # AWS credential management
tap "felixkratz/formulae" # macOS window management (borders)
tap "hashicorp/tap" # HashiCorp tools
tap "homebrew/bundle" # Brewfile support
tap "homebrew/services" # Service management
tap "lars-hagen/dotfiles" # Personal tap
tap "nikitabobko/tap" # Additional tools
Core CLI Tools
act- Run GitHub Actions locallybat- Modern replacement forcatdirenv- Directory-specific environment variableseza- Modern replacement forlsfd- User-friendly alternative tofindffmpeg- Audio/video processingfzf- Fuzzy findergit-filter-repo- Git history filteringgit-lfs- Git Large File Storagehtop- Interactive process viewerjq- JSON processorlibmagic- File type detectionncdu- NCurses disk usagenvm- Node Version Managerneovim- Modern vim editorpkgconf- Package compiler/linker configurationpipx- Python application installerripgrep- Fast grep replacementtree- Directory structure viewerzoxide- Smart directory jumper
Shell and Terminal
zsh-autosuggestions- Command suggestionszsh-completions- Additional completionszsh-syntax-highlighting- Command validationstarship- Cross-shell prompt
Development Tools
ansible- Infrastructure automationawscli- AWS Command Line Interfaceborders- Window borders for macOSgh- GitHub CLIgranted- AWS role managementmaven- Java build toolnode- JavaScript runtimepacker- Machine image builder[email protected],[email protected]- Python runtimesruby- Ruby runtimerust- Rust programming languageshowkey- Display Keystrokes In Terminalterraform- Infrastructure as Codetflint- Terraform linter
Applications (Casks)
aerospace- Window manageralacritty- GPU-accelerated terminalchatgpt- OpenAI ChatGPT Desktop Applicationcursor- AI-powered code editordb-browser-for-sqlite- SQLite GUIdocker- Containerization platformflameshot- Screenshot toolgithub- GitHub desktop clientgoogle-chrome- Web browseriterm2- Terminal emulatorkarabiner-elements- Keyboard customizationmaccy- Clipboard manager for macOSkeybase- Security & encryptionsignal- Secure messagingslack- Team communicationsourcetree- Git GUI clientspotify- Music streamingtabby- Modern terminaltunnelblick- OpenVPN clientvisual-studio-code- Code editorwindsurf- AI-powered code editor
Fonts
font-fira-code-nerd-font- Primary coding fontfont-hack-nerd-font- Alternative coding fontfont-source-code-pro- Source Code Pro font
VSCode Extensions
- GitHub Integration:
github.copilot- AI pair programmergithub.copilot-chat- AI chat interfacegithub.vscode-github-actions- GitHub Actionsgithub.vscode-pull-request-github- PR managementeamodio.gitlens- Git superchargedmhutchie.git-graph- Git graph viewer
- Development Tools:
4ops.terraform- Terraform supportchop-dbhi.multiline-string-editor- String editingdbaeumer.vscode-eslint- JavaScript lintingfooxly.workspace- Workspace managementgruntfuggly.todo-tree- TODO commentskevinrose.vsc-python-indent- Python indentationmechatroner.rainbow-csv- CSV/TSV viewerms-python.python- Python supportms-python.debugpy- Python debuggingms-python.vscode-pylance- Python language servertamasfe.even-better-toml- TOML support
Managing Packages
Update Brewfile
To update the Brewfile with new packages:
dotfiles-dump-brew
Install Packages
To install all packages from Brewfile:
brew bundle
Clean Up
To remove unused dependencies:
brew cleanup
Package Selection Principles
- Modern Alternatives: Prefer modern replacements for traditional Unix tools (e.g.,
ezaoverls) - Development Focus: Include tools that enhance development workflow
- Cross-Platform: Select tools that work across different environments
- AI Integration: Incorporate AI-powered development tools
- Performance: Choose tools optimized for speed and efficiency