Skip to content

My Brewfile (Updated)

Did you know that Homebrew can install more than just packages? Here's an updated guided tour through my Brewfile to see how I set up applications, VS Code extensions, and more on my MacBook.

Updated 06-24-2026

I am a big fan of using Homebrew to install/update all the software on my MacBook. One thing that not everyone knows about is the idea of a Brewfile, which is a text file that lists all the various packages, etc, and you can then use brew bundle to install the things in the Brewfile (along with their dependencies). Brewfiles support more than just Homebrew packages; you can use a Brewfile to list out casks, as well as apps installed from the Mac App Store.

My current Brewfile is available on GitHub, but I thought it might be helpful to go through it and provide some explanation of each package/application, and what I use them for.

Packages

This is not a comprehensive list of all the packages I have installed, but just some that you might wonder about!

  • asciinema: Record what you do in a terminal! Fancy!
  • atuin: Replaces your shell history with a searchable, syncable SQLite database. Sounds boring, is actually kind of life-changing.
  • autojump: Little fun tool to make it easier to jump to a different directory.
  • diff-so-fancy: Make your diffs look cooler and more readable.
  • direnv: I don’t use this as much as I should, but lets you do fancy stuff like adjust environment variables based on the current directory.
  • fd: A better find. Faster, friendlier, and the output doesn’t make you feel bad about yourself.
  • gh: Command-line tool for GitHub stuff.
  • git-extras: Lots of extra helper stuff for git
  • hub: Some GitHub things that gh doesn’t quite do…yet.
  • mas: CLI for the Mac App Store. If you want to install MAS stuff via Brewfile, you need this.
  • neovim: Modern vim with a better plugin ecosystem. Yes, I know.
  • ponysay: Pipe text through this to have a cute pony display it. Whimsy!
  • ripgrep: A blazing fast grep replacement. Once you use it you can’t go back.
  • starship: Cross-shell prompt that’s fast, configurable, and shows you git status, language versions, and whatever else you want at a glance.
  • thefuck: Corrects your previous console command. One of those tools that sounds dumb until the fifth time it saves you.
  • tldr: Replacement for man. Actually readable.
  • tree: Why this isn’t part of the standard OS X, I will never know.
  • uv: Extremely fast Python package manager written in Rust. If you do any Python work, swap to this immediately.
  • vim: Yes, OS X includes vim. But some plugins I like need it compiled with lua support, so there.
  • yadm: I use this to manage my dotfiles.
  • yt-dlp: The actively-maintained community fork of youtube-dl for downloading videos from the internet. youtube-dl basically died; use this instead.
  • zsh-syntax-highlighting: A plugin for zsh to make your command line life much easier.
  • zsh-autosuggestions: Another really helpful zsh plugin. Fish-style suggestions as you type.

Tapped packages

Some packages come from third-party taps rather than the main Homebrew repository. A few worth calling out:

  • speedtest (via teamookla/speedtest): Official CLI for speedtest.net. Install via tap "teamookla/speedtest" first.
  • litra (via timrogers/tap): CLI control for Elgato Litra lights. Handy if you want to automate your lighting setup via scripts or Stream Deck.

Casks

Homebrew can also install applications that have installers, etc. I try to only install software using a cask so that I can keep it tracked with my Brewfile. Note that some of these applications are not free and will require you to input a license key the first time you start them up.

  • 1password: My main password management application. Works across mobile devices and all my computers. Use the one you prefer, but you should be using one.
  • adobe-creative-cloud: Gets the main installer/control app on my machine so I can install the various Adobe applications I’m licensed for.
  • aerial: An OS X screensaver that uses the same images/look as the Apple TV screensaver.
  • alfred: Task launcher, clipboard manager, and a whole lot more via workflows. I have both Alfred and Raycast installed and honestly use both for different things.
  • audio-hijack: Rogue Amoeba again! Dump audio from any application to be recorded, etc.
  • bartender: Small utility that you don’t know you needed until you try it. Lets you hide various things in the Mac menubar.
  • betterdisplay: Display management utility for finer-grained control over resolution, brightness, and HiDPI settings than macOS gives you natively.
  • beyond-compare: I use this for diffing files.
  • cleanshot: Screenshot tool that replaced the default macOS screenshot workflow for me. Annotations, scrolling capture, OCR — it does a lot.
  • dash: Great tool for quick access to documentation on various tools, languages, etc. Coupled with Alfred, it’s amazing.
  • descript: Audio/video editing tool that edits media like a document. Genuinely weird in the best way.
  • elgato-control-center: Tool for controlling my Elgato Key Lights.
  • elgato-stream-deck: Driver/configuration utility for the Stream Deck. Note: OBS must be installed before the Stream Deck software, which will annoy you if you keep your Brewfile alphabetical.
  • ghostty: New terminal emulator that’s been making waves. Fast, native, and has a surprisingly good feature set out of the box.
  • handbrake: Still a super useful tool for converting video files to the format you want.
  • iterm2: If you do anything in the terminal on OS X, you should be using iTerm. Period. (I have both iTerm2 and Ghostty installed — living dangerously.)
  • logitech-presentation: I mention this one because it’s annoying; this only installs the installer for the Logitech Spotlight remote. You’ll need to run the installer manually from wherever it gets dropped.
  • loopback: Creates virtual audio devices, helpful for audio routing.
  • moom: Window management tool. Custom configurations for window placement, move windows there with a keystroke.
  • obs: Open Broadcaster Software. As noted above, install this before the Stream Deck software.
  • obsidian: Notes app built on local Markdown files. Good for both note-taking and the “I’ll definitely organize this later” kind of note-taking.
  • raycast: Spotlight replacement / launcher that’s been eating Alfred’s lunch for a few years now. Free tier is genuinely great.
  • riverside-studio: High-quality podcast/video recording. Records locally so you don’t get the usual remote-recording quality issues.
  • screen-studio: Screen recording with automatic zoom effects and nice defaults. Great for demos.
  • soundsource: Lets me control audio on a per-app basis, adjusting the volume and output device for individual apps.
  • tower: Most of the time, I use git at the command line, but this is a nice GUI on top of it.

Fonts

You can use Homebrew to install fonts directly — and as of modern Homebrew, you no longer need to add the homebrew/cask-fonts tap first. Fonts are available straight from the main cask repository now.

cask "font-hack-nerd-font"
cask "font-inconsolata-for-powerline"
cask "font-menlo-for-powerline"
cask "font-monaspace"
cask "font-monaspace-nerd-font"

Monaspace is worth calling out — it’s a font superfamily from GitHub Next with some interesting typographic tricks for code. Worth a look.

Mac App Store apps

I am not going to list all these, as I only use a few, but just to touch on a few things.

You need to know the ID of the app; to get it, run the following command: mas search Bear (where “Bear” is the search string for the app you want). You need the mas package installed for this, which is why we have the packages listed first in the Brewfile.

You’ll get output that looks like this:

  1091189122  Bear                             (1.7.11)
   926066161  Wildlife Simulator: Bear         (1.0)
   413013033  BATTLE BEARS -1 Mac              (1.1)
  1150538527  Dress Up Bear                    (1.1)
   792252100  Build A Teddy Bear               (1.0)

The first column is the ID that you will need. You also need the exact app name. Then update your Brewfile like this:

mas "Bear", id: 1091189122

VS Code Extensions

This one’s new — Brewfile now supports installing VS Code extensions via the vscode keyword! I have a fairly ridiculous number of them, but a few highlights:

vscode "eamodio.gitlens"
vscode "esbenp.prettier-vscode"
vscode "golang.go"
vscode "github.copilot"
vscode "github.copilot-chat"
vscode "hashicorp.terraform"
vscode "streetsidesoftware.code-spell-checker"

You can get the extension identifier from the VS Code marketplace URL or from the Extensions panel in VS Code itself (right-click an extension → “Copy Extension ID”). Then just add it to your Brewfile:

vscode "publisher.extension-name"

This means your entire VS Code setup — extensions and all — gets bootstrapped along with everything else when you run brew bundle. Genuinely useful.

AI Tools

When I first wrote this post, this section didn’t exist. Now I have an entire category of AI-adjacent tools in my Brewfile, which is either exciting or a sign of something, depending on your disposition.

  • herdr: “tmux for coding agents.” Runs persistent agent sessions that survive terminal closes, work over SSH, and show you semantic state (blocked, working, done, idle) across all your running agents at a glance. If you’re running multiple coding agents, this is how you wrangle them.
  • cask “claude”: The Claude desktop app. You know what this is.
  • cask “chatgpt”: The ChatGPT desktop app. Also you know what this is.
  • cask “cursor”: AI-native code editor forked from VS Code. Good if you want the AI stuff baked in more deeply than Copilot provides.
  • cask “codex”: OpenAI’s coding agent tool.

The Brewfile didn’t have any AI tools in it a few years ago. Now there’s a whole section. We’re all just out here shipping vibes into the future, I guess.

Newsletter

Uncommitted

Monthly dispatches on Postgres internals, performance, and whatever else is rattling around in my head.