You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Have you checked for other open Pull Requests for the same change?
Have you explained what your changes do? Performance claims (e.g. "this is faster") must include brew benchmark results.
Have you explained why you'd like these changes included, not just what they do?
For bug fixes, have you given step-by-step brew commands to reproduce the bug?
Have you written new tests (excluding integration tests)? Here's an example.
Have you successfully run brew lgtm (style, typechecking and tests) locally?
I did not use AI/LLM to create this PR, or I disclosed the tool/model below and reviewed its output; every commit has a human author or co-author and I will answer maintainer questions and review comments myself without AI/LLM.
GitHub Copilot using GPT-6 Luna and GPT-6.1 Terra implemented and tested the changes. Verification included the unit tests, the formula output comparison against main and brew lgtm --online.
brew info now groups cask apps, fonts, manpages, plugins and other artifacts under separate headings. Use --verbose to see binaries and command wrappers.
Installed cask versions now include size, location and receipt details.
Improvements
Formula and cask information is presented in a more consistent format, including clearer installation, dependency and requirements details.
Documentation
Updated the brew info guide to describe the artifact sections and verbose output.
brew info now uses shared formatting helpers for formula and cask output. Cask artifacts appear under category headings, and verbose output includes binaries and additional installed-version details. Tests and documentation cover these output changes.
Utils::InfoDisplay adds shared formatting for package summaries, requirements, binaries, dependency counts, metadata, and installed-version sections.
Formula info output Library/Homebrew/cmd/info.rb, Library/Homebrew/test/cmd/info_spec.rb
Formula output now passes package data and structured installed-version rows to shared helpers. Dependency, requirement, and verbose binary sections also use shared formatting.
Cask info output Library/Homebrew/cask/info.rb, Library/Homebrew/test/cask/info_spec.rb, docs/Querying-Brew.md
Cask output uses shared summaries and installed-version rows. Artifacts are grouped by category, and verbose output includes binaries and additional installed-version details.
Merge Risk: Moderate · up to 237a4
Verbose brew info --installed and multi-cask queries can become slow with many installed casks. Formulae with a requirement for the current OS may also hide build dependencies in brew info, and normal cask output no longer flags a missing staged path. Address these before merging, or explicitly accept them.
Pre-merge checks: 4
Check name
Status
Explanation
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Description check
The description directly matches the changeset. It explains the shared formatting, installed cask versions, grouped artifacts, verbose output, tests, documentation, and verification steps.
Title check
The title clearly and concisely describes the main change: shared and consistent formula and cask info output.
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: 3b90c7a6-4cfa-4c91-b24b-c3f6b18b1a0f
Commits
Reviewing files that changed from the base of the PR and between 2ea376f and 237a47e.
Files selected for processing: 7
Library/Homebrew/cask/info.rb
Library/Homebrew/cmd/info.rb
Library/Homebrew/test/cask/info_spec.rb
Library/Homebrew/test/cmd/info_spec.rb
Library/Homebrew/test/utils/info_display_spec.rb
Library/Homebrew/utils/info_display.rb
docs/Querying-Brew.md
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
/usr/local/Caskroom/font-hack-nerd-font/3.4.0 (32.2MB) Installed using the internal formulae.brew.sh API on 2026-07-04 at 21:34:47
Looks good other than this: would like to keep these. Can we see a before/after for formulae too or, if identical, just an example for cask comparison?
/usr/local/Caskroom/font-hack-nerd-font/3.4.0 (32.2MB) Installed using the internal formulae.brew.sh API on 2026-07-04 at 21:34:47
Looks good other than this: would like to keep these. Can we see a before/after for formulae too or, if identical, just an example for cask comparison?
I moved the path info under verbose, like we did for formulae some time ago:
▶ brew info sqlite
...
==> Installed Versions
sqlite ↑ 3.54.0 → 3.54.1 (13 files, 5.4MB)
▶ brew info sqlite -v
...
==> Installed Kegs and Versions
sqlite ↑ 3.54.0 → 3.54.1 (13 files, 5.4MB)
Cellar: /usr/local/Cellar/sqlite/3.54.0
Built from source on 2026-10-14 at 13:14:55
So my main goal was to have consistent and predictable behavior between cask and formula.
I tried hard to not alter the formula output when refactoring. I set up some regression tests that passed on main as well, for reference, but I cannot guarantee it didn't change in some part. There were some decisions about ordering of fields where I opted for consistency between casks and formula rather than strict equality for the old formula output, so it's possible some rows jumped around, but nothing should have been removed.
Here is cask output without and with verbose:
▶ brew info font-hack-nerd-font
...
==> Installed Versions
font-hack-nerd-font ↑ 3.4.0 → 3.5.1 (32.2MB)
▶ brew info font-hack-nerd-font -v
...
==> Installed Versions
font-hack-nerd-font ↑ 3.4.0 → 3.5.1 (32.2MB)
Caskroom: /usr/local/Caskroom/font-hack-nerd-font/3.4.0
Installed using the internal formulae.brew.sh API on 2026-07-04 at 21:34:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make
brew infooutput more consistent between formulae and casks so that installed versions and their status are easier to compare.--verbose.--verbose, matching formula output.Reproduction
With an installed versioned cask such as
gimp@dev:brew info gimpto see the installed sibling without its Caskroom path and receipt details.brew info -v gimpto see those details and any binaries.Before this change, cask installation details appeared even without
--verbose, unlike formula installation details.Example output
Before (main)
After
brew benchmarkresults.brewcommands to reproduce the bug?brew lgtm(style, typechecking and tests) locally?GitHub Copilot using GPT-6 Luna and GPT-6.1 Terra implemented and tested the changes. Verification included the unit tests, the formula output comparison against
mainandbrew lgtm --online.