A beautiful and intuitive TUI (Terminal User Interface) application for managing Homebrew packages and casks on macOS.
- β View all installed formulae and casks in a unified list
- β Real-time search across Homebrew repository
- β Install/uninstall packages with confirmation dialogs
- β Upgrade individual or all outdated packages
- β Detailed package information (version, dependencies, description)
- β Visual indicators for outdated packages (β )
- β Dependency tree visualization
- β
Run
brew doctorto diagnose issues - β
Clean up old versions with
brew cleanup - β
Remove unused dependencies with
brew autoremove - β Real-time operation logs with color coding
- β Split-panel layout for efficient workflow
- β Keyboard-driven navigation (vim-style)
- β Color-coded status (β installed, β outdated)
- β Live search with instant results
- β Scrollable dependency trees
- β Operation logs with success/error highlighting
- Language: Go
- TUI Framework: Bubble Tea
- UI Components: Bubbles
- Styling: Lip Gloss
Requires Go 1.21 or later:
go install github.com/lazar0169/brewst@latestMake sure $(go env GOPATH)/bin is in your PATH. Add this to your ~/.zshrc or ~/.bash_profile:
export PATH="$PATH:$(go env GOPATH)/bin"Then reload your shell with source ~/.zshrc and run brewst.
Download the latest release from GitHub Releases.
git clone https://github.com/lazar0169/brewst.git
cd brewst
go build -o brewst
./brewstSimply run:
brewstThe interface is divided into 4 panels:
βββββββββββββββββββββββ¬ββββββββββββββββββββββ
β β π Search β
β π¦ Installed β β
β βββββββββββββββββββββββ€
β (50%) β π³ Dependencies β
β β β
β βββββββββββββββββββββββ€
β β π Logs β
βββββββββββββββββββββββ΄ββββββββββββββββββββββ
qorCtrl+C- Quit applicationTab- Cycle through panels (Installed β Search β Dependencies)r- Refresh package list
jorβ- Move downkorβ- Move up
u- Upgrade selected outdated packageU- Upgrade all outdated packagesx- Uninstall selected package
- Type to enter search mode
Enter- Execute search / Install selected packageEsc- Exit search inputj/k- Navigate search results
d- Runbrew doctorc- Runbrew cleanupa- Runbrew autoremove
Configuration is stored in ~/.config/brewst/config.json. The file is created automatically on first run with default settings.
Favorite packages are saved to ~/.config/brewst/favorites.json and persist across sessions.
- Go 1.21 or later
- macOS with Homebrew installed
- Git
# Clone the repository
git clone https://github.com/lazar0169/brewst.git
cd brewst
# Install dependencies
go mod download
# Run the application
go run .
# Build
go build -o brewst
# Run tests
go test ./...# Build for macOS (Intel)
GOOS=darwin GOARCH=amd64 go build -o brewst-darwin-amd64
# Build for macOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o brewst-darwin-arm64brewst/
βββ main.go # Entry point
βββ internal/
β βββ app/ # Main application model
β βββ brew/ # Homebrew client & parsers
β βββ state/ # Application state management
β βββ ui/
β βββ components/ # Reusable UI components
β βββ styles/ # Lipgloss styling
β βββ views/ # Dashboard view
βββ go.mod
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
MIT - See LICENSE file for details
- Built with the amazing Charm libraries
- Inspired by the need for a better Homebrew management experience
- macOS: Homebrew is macOS-specific
- Homebrew: Must be installed (installation guide)
- Terminal: Color support recommended for best experience
