A modern, GUI-based Homebrew package manager for macOS written in Rust.
This codebase was largely pair-programmed with AI models (Claude, ChatGPT, etc.). Treat it as:
- A sandbox for learning and architecture experiments
- A case study in what AIs get right—and almost right
- A living demo of clean architecture in Rust
Disclaimer: It compiles, it runs, and it manages Homebrew, but parts were authored by statistically enthusiastic robots. Expect the occasional off-by-one joke, an overconfident TODO, or a function that’s suspiciously clever at 3am.
Meta-note: Yes, an AI wrote this warning about AI-written code. Self-reference acknowledged; recursion depth limited; stack intact.
Use, fork, and learn freely. If you find a bug, blame the robots, keep the credit.
-
📦 Package Management
- View installed formulae and casks
- Check for outdated packages
- Install, uninstall, and update packages
- Search for available packages
- Pin and unpin packages to prevent updates
-
🧹 Maintenance
- Clean package cache
- Remove old package versions
- Update all packages at once
-
🎨 Modern UI
- Clean, intuitive interface built with egui
- Tab-based navigation
- Async operations with responsive UI
- Real-time loading indicators for package operations
Brewsty follows clean architecture principles with SOLID design:
src/
├── domain/ # Core business logic
│ ├── entities/ # Domain models (Package, PackageType, CacheInfo)
│ └── repositories/ # Repository interfaces
├── infrastructure/ # External integrations
│ └── brew/ # Homebrew command execution
├── application/ # Use cases
│ ├── dto/ # Data transfer objects
│ └── use_cases/ # Application business logic
└── presentation/ # GUI layer
├── components/ # Reusable UI components
├── services/ # Async task management
└── ui/ # Application views
- Single Responsibility: Each module has one clear purpose
- Dependency Inversion: Use cases depend on repository abstractions
- Interface Segregation: Clean, focused trait definitions
- Testability: Repository pattern allows easy mocking and testing
- macOS
- Homebrew installed
- Rust toolchain (install via rustup)
- Xcode Command Line Tools (
xcode-select --install)
git clone https://github.com/whooof/brewsty.git
cd brewsty
cargo build --releasecargo run --releaseThe application provides four main tabs:
- Installed: Browse all installed formulae and casks with version info
- Outdated: See packages that need updates and upgrade them
- Search: Find and install new packages from Homebrew
- Maintenance: Clean cache and remove old versions
- Rust - Systems programming language
- egui - Immediate mode GUI framework
- eframe - Native GUI application framework
- Tokio - Async runtime for non-blocking operations
- Homebrew - macOS package manager
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License (Tortilla Edition 🌯)
See LICENSE.md for details.