arch = { packages = [ # LLM Agent Harnesses "claude-code", "openai-codex-bin", "cursor-cli", # Forge CLIs "github-cli", "tea", # Terminal emulators "ghostty", # Editors "emacs", "zed", # Python "uv", # JavaScript "bun", ] } # claude-code has no brew entry on purpose: the native installer already owns # ~/.local/bin/claude and self-updates. Declaring the cask installs a second # copy at /opt/homebrew/bin/claude, and which one wins is a PATH accident. brew = { repos = [ "oven-sh/bun", ], packages = [ # LLM Agent Harnesses "t3-code", "codex", "cursor-cli", # Forge CLIs "gh", "tea", # Terminal emulators "ghostty", # Editors "emacs", "zed", # Python "uv", # JavaScript # metapac matches Homebrew's short installed name, so install the tap formula first. { name = "bun" }, ] }