macos-brew
Homebrew: formulae, casks, services, taps, PATH /opt/homebrew, pin versions, bundle
What this skill does
## Purpose This skill automates Homebrew operations on macOS, enabling efficient management of software packages, including formulae, casks, services, taps, and version pinning. It focuses on core Homebrew features to handle package installation, updates, and system integration via the /opt/homebrew PATH. ## When to Use Use this skill for macOS package management tasks, such as installing dependencies in scripts, updating tools in CI/CD pipelines, or configuring development environments. Apply it when dealing with Homebrew-specific features like casks for GUI apps or taps for custom repositories, especially in automated workflows or when ensuring reproducible setups. ## Key Capabilities - **Formulae Management**: Install, upgrade, or remove command-line tools (e.g., via `brew install wget`), including dependency resolution and version pinning using `brew pin <formula>`. - **Casks Handling**: Manage GUI applications (e.g., `brew install --cask google-chrome`), with options to ignore dependencies or force reinstalls. - **Services Control**: Start, stop, or restart background services (e.g., `brew services start postgresql`), integrating with macOS launchd. - **Taps Integration**: Add external repositories (e.g., `brew tap homebrew/cask`), enabling access to non-core packages. - **PATH and Bundle Management**: Configure /opt/homebrew in PATH for scripts, and use `brew bundle` to manage package lists from a Brewfile for reproducible environments. - **Version Pinning**: Lock package versions to prevent updates (e.g., `brew pin node@14`), ensuring stability in production setups. ## Usage Patterns Invoke this skill in shell scripts or automation tools by calling `brew` commands directly. Always check for Homebrew installation first using `which brew` or `command -v brew`. For scripted installs, use a Brewfile: create a file with lines like `brew 'git'` and `cask 'docker'`, then run `brew bundle --file Brewfile`. In AI agents, wrap commands in try-catch blocks for error handling, and export PATH with `/opt/homebrew/bin` prepended. Example: In a bash script, install and pin a package like this: ```bash brew install node@14 brew pin node@14 ``` Another pattern: For services, combine with conditional checks, e.g., only start if not running: `brew services list | grep -q postgresql || brew services start postgresql`. ## Common Commands/API Homebrew is CLI-based, so use these commands directly in scripts. All commands run via `brew <subcommand> [flags] [args]`. - **Install Formula**: `brew install <formula> --force` to overwrite existing; e.g., `brew install git --force`. - **Install Cask**: `brew install --cask <cask> --no-quarantine` to skip macOS security prompts; e.g., `brew install --cask visual-studio-code --no-quarantine`. - **Update Packages**: `brew update && brew upgrade <formula>`; add `--ignore-pinned` to upgrade pinned versions. - **Manage Taps**: `brew tap <user/repo>` to add a tap; e.g., `brew tap homebrew/cask-fonts`. - **Handle Services**: `brew services start <service>` or `brew services restart <service> --all`; e.g., `brew services stop redis`. - **Bundle Operations**: `brew bundle --file Brewfile` to install from a file; Brewfile format: `brew 'package'` or `cask 'app'`. - **Pin Versions**: `brew pin <formula>` to pin; `brew unpin <formula>` to release; e.g., `brew pin [email protected]`. - **Cleanup**: `brew cleanup -s` to remove old versions; always run after upgrades. For API-like usage, pipe outputs to scripts, e.g., `brew list --versions | grep node` to query installed versions. ## Integration Notes Integrate Homebrew into scripts by ensuring /opt/homebrew/bin is in PATH; add `export PATH="/opt/homebrew/bin:$PATH"` to .zshrc or scripts. In CI/CD (e.g., GitHub Actions), install Homebrew first with `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`. No authentication is required, but if extending to private taps, use Git credentials via environment variables like `export HOMEBREW_GIT_EMAIL="[email protected]"`. For cross-tool integration, combine with macOS tools: e.g., after `brew install ffmpeg`, use it in Python scripts via subprocess. Config format for Brewfile: plain text with lines like `brew 'jq' # JSON processor`. Always verify Homebrew version with `brew --version` before complex operations. ## Error Handling Handle common errors by checking exit codes; `brew` commands return non-zero on failure. For "formula not found", use `brew search <formula>` first or install with `brew install <formula> 2>/dev/null || echo "Error: Formula missing"`. If "Permission denied", run with sudo or fix ownership on /opt/homebrew (e.g., `sudo chown -R $(whoami) /opt/homebrew`). For network issues during `brew update`, retry with `brew update --verbose` and check connectivity. In scripts, wrap commands like: ```bash if ! brew install git; then echo "Installation failed; check logs" >&2 exit 1 fi ``` Log outputs with `brew install <formula> >> install.log 2>&1`. For version conflicts, use `brew doctor` to diagnose and resolve. ## Concrete Usage Examples 1. **Install and Pin a Development Tool**: To set up a project with a specific Node.js version, run: `brew install node@14` followed by `brew pin node@14`. This ensures the version doesn't auto-update, maintaining consistency. 2. **Manage a Service for a Web App**: For a Redis-backed app, start the service with `brew services start redis`, and verify with `brew services list | grep redis`. If it fails, check with `brew doctor` and restart. ## Graph Relationships - Connected to "macos" cluster for broader macOS tools. - Relates to "packages" tag, linking to general package managers like apt or yum skills. - Associated with "homebrew" tag, potentially linking to advanced scripting or CI tools in the ecosystem.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.