Homebrew taps are additional Git repositories that provide formulae, casks, or external Homebrew commands outside the package sources already known to the active prefix. Adding a tap is common when a project publishes its own package source or when a vendor keeps packages separate from homebrew/core and homebrew/cask.

The short tap form uses user/repo and assumes a GitHub repository named user/homebrew-repo. A project can also provide a full Git URL for taps hosted elsewhere, but the visible Homebrew tap name remains the value that later appears in brew tap and fully qualified package names.

Non-official taps can contain Ruby package definitions and external commands that Homebrew may load during package operations. Homebrew 6 separates adding a tap from trusting its contents, so inspect the tap after cloning it and trust only the specific formula, cask, or command needed for short-name installs unless the entire tap is under your control.

Steps to add a Homebrew tap:

  1. Confirm the tap name from the project or vendor documentation.

    For GitHub taps, symfony-cli/tap maps to the repository named symfony-cli/homebrew-tap. For a custom Git remote, use the full URL supplied by the project as the second argument to brew tap.

  2. Add the tap to Homebrew.
    $ brew tap symfony-cli/tap
    ==> Tapping symfony-cli/tap
    Cloning into '/opt/homebrew/Library/Taps/symfony-cli/homebrew-tap'...
    Tapped 1 formula (13 files, 140.7KB).

    Replace symfony-cli/tap with the tap named by the package documentation. On Linux or WSL, the clone path usually starts with /home/linuxbrew/.linuxbrew instead of /opt/homebrew.

  3. List installed taps and confirm the new tap appears.
    $ brew tap
    homebrew/core
    symfony-cli/tap
  4. Inspect the tap details and trust state.
    $ brew tap-info symfony-cli/tap
    symfony-cli/tap: Installed
    Untrusted
    1 formula
    /opt/homebrew/Library/Taps/symfony-cli/homebrew-tap (13 files, 140.7KB)
    From: https://github.com/symfony-cli/homebrew-tap
    ==> Formulae
    symfony-cli

    Untrusted means Homebrew has not been told to load non-official package code from this tap for short-name operations. Trust only taps or packages that you would allow to run Ruby code with your user permissions.

  5. Check a package from the tap by fully qualified name.
    $ brew info symfony-cli/tap/symfony-cli
    ==> symfony-cli/tap/symfony-cli: stable 5.17.1
    Symfony CLI helps Symfony developers manage projects, from local code to remote infrastructure
    https://symfony.com
    Not installed
    From: https://github.com/symfony-cli/homebrew-tap/blob/HEAD/Formula/symfony-cli.rb
    Tap: symfony-cli/tap

    A fully qualified name keeps the lookup tied to the tapped repository, which matters when another tap or homebrew/core has a similar token.
    Related: How to check Homebrew package information

  6. Trust the specific tapped formula when short-name installs are required.
    $ brew trust --formula symfony-cli/tap/symfony-cli
    Trusted formula: symfony-cli/tap/symfony-cli

    For casks, use brew trust --cask user/repo/cask. Trusting user/repo without --formula or --cask trusts the whole tap, including future package definitions.

  7. List trusted entries before installing by short name.
    $ brew trust
    All official taps and commands are trusted.
    Trusted formulae:
      symfony-cli/tap/symfony-cli

    After this check, install with brew install symfony-cli/tap/symfony-cli to stay fully qualified, or brew install symfony-cli only when the specific formula is trusted.
    Related: How to install a Homebrew formula