CaskHub
A native macOS app store for Homebrew casks. Browse, search, install, update, and uninstall thousands of Mac apps distributed through Homebrew - with original app icons extracted from the source, categories, popularity charts, and one-click actions, all in a clean SwiftUI interface.
CaskHub is 100% free and open source, no subscription, no premium tier, no ads, nothing.
Install
Or install with Homebrew:
brew install --cask caskhub
Features
Discover
- Browse - curated shelves and a rotating hero pick, organized by category
- Featured - the top 100 casks ranked by install popularity
- Top Charts - most-installed casks with a 30 / 90 / 365-day analytics window
- Recently Added - casks newly published to Homebrew in the last 30-90 days
- Categories - every cask classified into browsable categories (Developer Tools, Productivity, Design, and more)
- Search - instant search (⌘F) across names, tokens, and descriptions
Manage
- Install / Update / Uninstall with live progress states and cancellable downloads
- Adopt Apps - bring apps you installed outside Homebrew (a downloaded DMG, another store) under brew management with one click, keeping the app in place
- Guided Homebrew setup - walks you through installing Homebrew if it's missing, supports custom installation paths, and picks the native prefix on both Apple Silicon and Intel
- Smart update detection - skips self-updating apps and normalizes packaging-suffix version differences, so the Updates badge only shows updates that matter
- Installed library - detects what's already in your Caskroom, including apps installed from the command line
- Native password prompts - pkg-based casks that need admin rights get a native macOS dialog instead of a terminal prompt
- Rich metadata - original app icons, download sizes, install counts, homepages, and version info
Polish
- Grid and list view modes, flexible sorting, light/dark/system themes
- A custom design system with bundled typography
- Bundled category data ships with the app, so browsing never blocks on the network
- Built-in app updates - CaskHub keeps itself up to date via Sparkle
How It Works
CaskHub talks to Homebrew on three levels:
- Catalog & analytics come from the public Homebrew API (
/api/cask.jsonand install analytics). No Homebrew installation is required just to browse. - Installed-app detection reads install receipts directly from your Caskroom (
$HOMEBREW_PREFIX/Caskroom) - fast, and no shelling out needed. - Installs, updates, and uninstalls run through your real
brewbinary, so everything CaskHub does stays fully compatible with the command line. Anything you install in CaskHub can be managed withbrew, and vice versa.
Requirements
- macOS 15.6 or later
- Homebrew - required for installing, updating, and uninstalling casks (browsing works without it)
Architecture
- SwiftUI + MVVM with
@Observableview models and@MainActorisolation - Protocol-based networking layer for testability (
BrewAPIClientProtocol,NetworkServiceProtocol) with dependency injection throughout - Two-tier icon caching (memory + disk) and HTTP-header-based download-size resolution
- Minimal dependencies - three focused packages: Sparkle for app updates, Sentry for crash reporting and usage metrics, and TelemetryDeck for session and acquisition analytics
Building from Source
Prefer building it yourself? You'll need Xcode 26 or later:
git clone https://github.com/alielsokary/CaskHub.git
cd CaskHub
open CaskHub.xcodeproj
Select the CaskHub scheme and run (⌘R). Xcode resolves the Swift package dependencies (Sparkle, Sentry, and TelemetryDeck) automatically.
Testing & CI
Tests run with XCTest on pull requests to master and develop, and on pushes to develop, with coverage reported to Codecov and static analysis by Codacy. A release-freshness check on PRs to master ensures the bundled category data is up to date with the latest CaskFlow release.
xcodebuild test -project CaskHub.xcodeproj -scheme CaskHub -destination 'platform=macOS'
🌎 Localization
CaskHub speaks your language. Currently available in:
- 🇬🇧 English
- 🇨🇳 简体中文 (Simplified Chinese) - translated by @carty900-jpg
- 🇨🇳 繁體中文 (Traditional Chinese) - translated by @koala1023
- 🇷🇺 Русский (Russian) - translated by @gavrilyak201360-pixel
- 🇺🇦 Українська (Ukrainian) - translated by @Disconnecter
Want CaskHub in your language? Translations live in a single String Catalog - open an issue or PR to add yours.
Privacy & Analytics
CaskHub sends anonymous usage metrics through Sentry. TelemetryDeck receives only anonymous session and new-install signals used for acquisition and retention reporting.
CaskHub also sends crash reports and technical diagnostics through Sentry to help diagnose and fix stability issues.
You can opt out of everything at any time in Settings → Privacy.
Contributing
Interested in contributing to CaskHub? We welcome contributions of all kinds!
- Code contributions: Bug fixes, features, improvements
- Bug reports: Found an issue? Let us know
- Feature requests: Have an idea? We'd love to hear it
develop branch.
Acknowledgements
- CaskFlow - the data pipeline behind CaskHub's categories, Recently Added dates, and app icons
- Homebrew - the package manager CaskHub is built on
License
CaskHub is released under the MIT License.
