Skip to content

xdev-asia-labs/xBrew

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

xBrew

xBrew Logo

Modern Homebrew Package Manager for macOS

Beautiful, fast, and intuitive GUI for managing your Homebrew packages, casks, and taps.

macOS Swift License


✨ Features

πŸ“¦ Package Management

  • Install, Uninstall, Upgrade packages and casks with terminal output
  • Search across all available Homebrew formulae
  • View Details including dependencies, homepage, and descriptions
  • Track outdated packages and update with one click

🎯 Tap Management

  • Browse all installed taps
  • Add/Remove third-party repositories
  • View package counts per tap

πŸ›  Maintenance Tools

  • Update Homebrew to latest version
  • Cleanup old package versions to save disk space
  • Health Check with brew doctor
  • Real-time terminal output for all operations

🌍 Multilingual

  • Vietnamese (TiαΊΏng Việt)
  • English
  • Easy language switching

πŸ’Ύ Brewfile Support

  • Export current packages to Brewfile
  • Import packages from Brewfile
  • iCloud Sync (optional)

🎨 Modern Design

  • Native macOS design following Ventura/Sonoma guidelines
  • Dark mode support
  • Smooth animations and transitions
  • Intuitive navigation

πŸ“Έ Screenshots

Dashboard

Dashboard

Quick stats and maintenance actions at a glance

Package Management

Packages

Browse, search, and manage your installed packages

Tap Management

Taps

Manage third-party Homebrew repositories

Maintenance Tools

Maintenance

Update, cleanup, and health check your Homebrew installation

Terminal Output

Terminal Output

Real-time terminal logs for all operations

Multilingual Support

Language Support

Vietnamese and English language support


πŸš€ Getting Started

Requirements

  • macOS 13.0 (Ventura) or later
  • Homebrew installed (or use built-in installer)
  • Xcode 15.0+ (for building from source)

Installation

Build from Source

# Clone the repository
git clone https://github.com/xdev-asia-labs/xBrew.git
cd xBrew

# Generate Xcode project
xcodegen generate

# Open in Xcode
open xBrew.xcodeproj

# Build and run (⌘R)

πŸ—οΈ Architecture

xBrew follows a clean, modular architecture:

xBrew/
β”œβ”€β”€ Services/
β”‚   β”œβ”€β”€ AppConfig.swift              # Centralized configuration
β”‚   β”œβ”€β”€ HomebrewModels.swift         # Data models
β”‚   β”œβ”€β”€ HomebrewManager.swift        # Core manager
β”‚   β”œβ”€β”€ HomebrewManager+Commands.swift   # Command execution
β”‚   β”œβ”€β”€ HomebrewManager+Packages.swift   # Package operations
β”‚   β”œβ”€β”€ HomebrewManager+Taps.swift       # Tap management
β”‚   β”œβ”€β”€ BrewfileManager.swift        # Brewfile support
β”‚   └── LocalizationManager.swift    # i18n
β”œβ”€β”€ Views/
β”‚   β”œβ”€β”€ DashboardView.swift          # Main dashboard
β”‚   β”œβ”€β”€ ModernPackagesView.swift     # Package list
β”‚   β”œβ”€β”€ ModernCasksView.swift        # Cask list
β”‚   β”œβ”€β”€ ModernTapsView.swift         # Tap management
β”‚   └── Components/                  # Reusable UI components
└── Resources/
    β”œβ”€β”€ Localizations/               # Language files
    └── xBrew.entitlements          # Sandbox permissions

Key Design Decisions

  • Modular services: Separated into focused extensions (~50-120 lines each)
  • Centralized config: All settings in AppConfig.swift
  • Targeted refresh: Only refresh what changed (performance)
  • SwiftUI + Combine: Modern reactive UI
  • Documented models: Self-explanatory code with examples

πŸ”§ Configuration

All settings are centralized in AppConfig.swift:

// Homebrew paths (auto-detected)
static let brewPaths = [
    "/opt/homebrew/bin/brew",  // Apple Silicon
    "/usr/local/bin/brew"       // Intel
]

// Timeouts
static let commandTimeout: TimeInterval = 300  // 5 minutes
static let cacheTimeout: TimeInterval = 300    // 5 minutes

// Performance
static let maxConcurrentOperations: Int = 4

// iCloud
static let iCloudContainerID = "iCloud.asia.xdev.xBrew"

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Homebrew - The Missing Package Manager for macOS
  • Apple's SwiftUI framework
  • All contributors and users

Made with ❀️ by xDev Asia Labs

Report Bug Β· Request Feature

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages