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.
Or install with Homebrew:
brew install --cask caskhub- 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
- 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
- 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
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.
Categories, first-seen dates, and original app icons are produced by the companion CaskFlow pipeline and consumed via its GitHub Releases. A bundled snapshot ships inside the app, so none of it blocks launch or requires connectivity.
- macOS 15.6 or later
- Homebrew - required for installing, updating, and uninstalling casks (browsing works without it)
Prefer building it yourself? You'll need Xcode 26 or later:
git clone https://github.com/alielsokary/CaskHub.git
cd CaskHub
open CaskHub.xcodeprojSelect the CaskHub scheme and run (โR). Xcode resolves the Swift package dependencies (Sparkle, Sentry, and TelemetryDeck) automatically.
- 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 TelemetryDeck for analytics
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'CaskHub collects anonymous usage analytics through TelemetryDeck, a privacy-first analytics service. No personal data or identifiers ever leave your Mac: user IDs are salted and hashed on-device, and there is no tracking across apps or websites.
CaskHub also sends anonymous crash reports through Sentry to help diagnose and fix stability issues.
You can opt out of both at any time in Settings โ Privacy.
CaskHub speaks your language. Currently available in:
- ๐ฌ๐ง English
- ๐จ๐ณ ็ฎไฝไธญๆ (Simplified Chinese) โ translated by @carty900-jpg
macOS picks the language automatically from your system preferences; a per-app override is available under System Settings โ General โ Language & Region โ Applications.
Want CaskHub in your language? Translations live in a single String Catalog โ open an issue or PR to add yours.
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
Read CONTRIBUTING.md before opening a pull request โ note that all PRs target the develop branch.
- CaskFlow โ the data pipeline behind CaskHub's categories, Recently Added dates, and app icons
- Homebrew โ the package manager CaskHub is built on
CaskHub is released under the MIT License.
