finds.dev← search

// the find

msitarzewski/brew-browser

★ 977 · Rust · MIT · updated Jul 2026

Homebrew is the standard package manager on macOS. brew-browser gives it a real native GUI.

brew-browser is a native GUI for Homebrew, giving you a real dashboard for what you have installed, package search, one-click installs, CVE scanning, and Brewfile snapshots. It ships two separate implementations — a Tauri/Rust/SvelteKit build for macOS 13+ and Linux, and a pure Swift/SwiftUI build for macOS 26 (Tahoe) — that share a data contract and stay in feature parity. The target is any macOS developer who finds `brew list` and `brew info` too low-signal for everyday package management.

The security posture is unusually serious for a one-person desktop utility: zero `unsafe` Rust, no `tauri-plugin-shell` (every brew invocation is built from typed enums, not shell strings), an SSRF filter on the cask icon cascade that re-checks on every redirect hop, and a full audit document with reproducible scan artifacts. The dual-build architecture is a real engineering commitment — maintaining Swift 6 + SwiftUI parity with a Tauri app is hard, and the `memory-bank/decisions.md` ADR trail shows the tradeoffs were actually thought through rather than ad-hoc. The opt-in network model is done right: twelve outbound call sites, all documented, all user-gated, with a single Offline Mode toggle that hard-locks everything — no dark-pattern defaults hiding behind ambiguous language. The `velocity index` on Trending (recent-month vs prior-11-month average) is the right metric for surfacing genuinely emerging packages instead of stably-popular ones that dominate raw install counts.

Maintaining two full implementations is a permanent maintenance tax. The ADR says 'keep both' but the Swift build requires macOS 26 (Tahoe, not yet widely deployed), so the native build currently has a tiny actual audience — you're paying the parity cost now for an audience that mostly doesn't exist yet. The bundled catalog (~6 MiB gzipped) is a sensible offline-first choice, but it means new formula metadata is stale until the user hits Refresh; there's no background staleness indicator beyond the 'stale catalog banner' in Discover, so a user who never visits that tab could be searching against weeks-old data without knowing it. The enrichment endpoint (`brew-browser.zerologic.com`) is a first-party trust boundary baked into the app — if that server goes away or the operator changes their mind, the AI-categorized metadata disappears for everyone, and there's no fallback beyond the bundled snapshot. Linux support is real but second-class: artifacts are unsigned, GitHub sign-in silently fails on headless boxes or minimal window managers, and the documentation buries these caveats several paragraphs deep rather than surfacing them at the top of the Linux install section.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →