Graeme Arthur b74b540176 Trim comments to why-notes
The live suite's comments restated what the code says and argued its own
design at length. What survives is the part a reader cannot recover: that
a login shell keeps exported variables, that a real inventory virtualizes
so an installed row may never render, that cleanup runs after the app is
terminated to stay clear of Homebrew's lock, and why the runner must be
signed. The reasoning behind the rest is in the commits and in
E2E/README.md, which is where it belongs.
2026-09-06 15:33:27 +10:00
2026-05-26 23:31:53 +10:00
2026-09-06 15:33:27 +10:00
2026-09-06 15:33:27 +10:00
2026-07-18 21:23:36 +10:00
2026-09-06 15:33:27 +10:00
2026-03-21 16:21:31 +11:00
2026-08-09 22:10:22 +10:00
2026-06-25 20:49:14 +10:00
2026-03-18 16:13:06 +11:00
2026-08-09 22:10:22 +10:00
2026-04-10 14:46:56 +01:00
2026-08-12 23:15:35 +10:00
2026-06-25 20:49:14 +10:00

BrewUI

Homebrew's official macOS GUI — making package management approachable for users who prefer graphical interfaces over Terminal, while maintaining complete transparency about underlying Homebrew operations.

Mission

Enable CLI-averse users to safely discover, install, update, and manage Homebrew packages through a native SwiftUI interface that never hides what Homebrew is doing.

Tech

  • Swift 6.0 with strict concurrency · SwiftUI · Swift Package Manager
  • macOS Tahoe 26+ (also supports Sequoia 15, Sonoma 14)
  • Data from the brew CLI and the Homebrew JSON API

Status

Early development — currently building the app foundation (D1). Project rules and architecture live in AGENTS.md and ARCHITECTURE.md; durable decisions and constraints are recorded in .ai/memory.md.

Optional local session tracking (for agents or developers; .ai/progress.md is gitignored):

cp .ai/progress.template.md .ai/progress.md

Quickstart (Development)

After cloning:

./scripts/bootstrap

This installs Mint from Brewfile, runs mint bootstrap to build the SwiftFormat and SwiftLint versions pinned in Mintfile, enables repository git hooks, and resolves Swift package dependencies for Homebrew.xcodeproj.

Pre-commit formatting and linting

After bootstrap, commits automatically run checks on staged Swift files:

  1. mint run swiftformat
  2. mint run swiftlint (with --fix, then strict validation)

If unresolved lint violations remain, the commit is blocked and the hook prints specific SwiftLint failures so you can fix and re-commit.

Contributing

This project will be open source. Contribution guidelines, issue templates, and a getting started guide are coming as part of the initial setup work. In the meantime, see CONVENTIONS.md for project conventions and workflow, and ARCHITECTURE.md for design detail.

S
Description
GitHub Trending: Homebrew/BrewUI
Readme AGPL-3.0
5.5 MiB
Languages
Swift 98.3%
Shell 1.7%