Today flue installs via brew install karnstack/tap/flue. The goal is plain brew install flue, which means getting a formula accepted into homebrew/homebrew-core.
Where we stand (2026-08-19)
- Repo: 9 stars, 0 forks, 0 watchers, created 2026-07-28
- License: MIT (accepted by core)
- Latest release: v0.9.1, tagged (pre-1.0 is fine for core)
- Name
flue is free in core (formula and cask APIs both 404)
- Current tap ships a goreleaser cask with prebuilt binaries
Gate 1: notability (the real blocker)
Homebrew audits new formulae and rejects with:
GitHub repository not notable enough (<30 forks, <30 watchers and <75 stars)
It also requires the repo to be at least 30 days old.
No engineering workaround exists. Maintainers close PRs that fail this check.
Gate 2: core builds from source
Core does not accept prebuilt binaries, so the cask approach does not carry over. We need a formula that builds from the source tarball of the tag.
Complication: web/embed.go uses go:embed, and the goreleaser before hook builds web/dist and relay/dist before any go build. Two options:
- Include built
web/dist and relay/dist in the release source tarball, keeping the formula pure Go with depends_on "go" => :build and std_go_args. Recommended.
- Add node and pnpm as build deps and run the web build inside the formula. Reviewers dislike heavy JS toolchains for Go binaries, and it is more fragile in their CI.
Submission checklist (once both gates pass)
After merge
The formula work itself is about a day. Star count is the wall, so until both gates pass the tap stays the correct home.
Today flue installs via
brew install karnstack/tap/flue. The goal is plainbrew install flue, which means getting a formula accepted into homebrew/homebrew-core.Where we stand (2026-08-19)
flueis free in core (formula and cask APIs both 404)Gate 1: notability (the real blocker)
Homebrew audits new formulae and rejects with:
It also requires the repo to be at least 30 days old.
No engineering workaround exists. Maintainers close PRs that fail this check.
Gate 2: core builds from source
Core does not accept prebuilt binaries, so the cask approach does not carry over. We need a formula that builds from the source tarball of the tag.
Complication:
web/embed.gouses go:embed, and the goreleaser before hook buildsweb/distandrelay/distbefore anygo build. Two options:web/distandrelay/distin the release source tarball, keeping the formula pure Go withdepends_on "go" => :buildandstd_go_args. Recommended.Formula/f/flue.rbwith a workingtest doblockSubmission checklist (once both gates pass)
brew install --build-from-source ./flue.rbpasses locallybrew test fluepassesbrew audit --new --strict --online fluepasses cleanAfter merge
livecheckblock so autobump can pick the formula up laterbrew bump-formula-prfrom CI on each release)The formula work itself is about a day. Star count is the wall, so until both gates pass the tap stays the correct home.