Homebrew package manager running as a service account for RMM systems.
brewmeister allows Homebrew to run under a dedicated service account (_brewmeister) with proper privilege separation, making it ideal for remote management and automation scenarios.
brewmeister requires the --disable-sandbox flag when building due to Info.plist embedding:
# Update build timestamp (format: YY.MM.DD.HHmm UTC)
./Scripts/update-build-version.sh
# Build
swift build --disable-sandboxFor release builds:
./Scripts/update-build-version.sh
swift build --disable-sandbox -c releaseWhy --disable-sandbox?
brewmeister embeds an Info.plist file into the binary using linker flags (-sectcreate). This makes version information visible in Finder's "Get Info" dialog but requires disabling Swift Package Manager's build sandbox.
Build Versioning:
The update-build-version.sh script automatically updates CFBundleVersion in Info.plist with a UTC timestamp in format YY.MM.DD.HHmm (e.g., 25.11.17.1549). This ensures each build has a unique, automatically-incrementing version number that's visible in Finder.
sudo .build/release/brewmeister setupmeisterThis will:
- Create the
_brewmeisterservice account - Install Homebrew to
/opt/brewmeister - Configure PATH and zsh integration
- Install brewmeister to
/usr/local/bin - Install man page to
/usr/local/share/man/man1
brewmeister setupmeister- Install brewmeister service account and Homebrewbrewmeister healthmeister- Validate brewmeister installation and repair issuesbrewmeister removemeister- Remove brewmeister (and optionally Homebrew)brewmeister usermeister [username]- Enable a user to access brewmeister's Homebrew installation
All Homebrew commands can be used with either explicit or implicit syntax:
# Explicit (recommended for clarity)
brewmeister brew install jq
brewmeister brew upgrade
brewmeister brew list
# Implicit (shorter)
brewmeister install jq
brewmeister upgrade
brewmeister listThe usermeister command enables regular users to use brewmeister's Homebrew installation:
# Enable current user (run with sudo)
sudo brewmeister usermeister
# Enable specific user
sudo brewmeister usermeister usernameThis configures the user's shell to:
- Use brewmeister's Homebrew installation at
/opt/brewmeister - Create a
brewalias that runssudo brewmeister brew - Override any existing Homebrew installation (e.g.,
/opt/homebrew)
After running usermeister, the user should reload their shell:
source ~/.zshrcNote: Users will be prompted for their sudo password when running brew commands.
- Run
man brewmeisterfor full documentation - Run
brewmeister --helpfor command list - Run
brewmeister [command] --helpfor command-specific help
- macOS 13.0 or later
- Swift 5.9 or later (for building)
- Xcode Command Line Tools
- sudo privileges (for installation)
Copyright © 2025 Peet Inc. All rights reserved.