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.
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.
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!
- 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.
- gh: Command-line tool for GitHub stuff. New, but cool.
git-extras: Lots of extra helper stuff for
hub: Some GitHub things that
ghdoesn't quite do...yet.
mas: CLI for the Mac App Store. If you want to install MAS stuff via
Brewfile, you need this.
- ponysay: Pipe text through this to have a cute pony display it. Whimsy!
- speedtest: Official CLI for speedtest.net.
- thefuck: Corrects your previous console command.
tldr: Replacement for
- tree: Why this isn't part of the standard OS X, I will never know.
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.
- youtube-dl: Command-line tool to download videos from YouTube links.
- zsh-syntax-highlighting: A plugin for zsh to make your command line life much easier.
- zsh-autosuggestion: Another really helpful zsh plugin.
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. I haven't included every cask that I use, because do you really care that I install Docker via cask? No, you don't.
- 1password: This is my main password management application. I personally like it because I can use it across my mobile devices as well as all my computers. Use the one you prefer, of course, but you should be using one!
- adobe-creative-cloud: This gets the main application installer/control on my machine so that I can install the various Adobe applications that I am licensed to use.
- aerial: An OS X screensaver that uses the same images/look as the Apple TV screensaver.
- airfoil: A great product from Rogue Amoeba to redirect output to various Airplay devices. I use this to stream Spotify to my HomePod.
- audio-hijack: Rogue Amoeba again! Dump audio from any application to be recorded, etc.
- authy: As much as possible, I use Authy for my OTP/multi-factor authentication. I can use it on my phone, as well as keep them in sync across all my devices. This means I don't need to create a new code for Google, etc when I get a new phone!
- alfred: Task launcher (and more). I'll eventually write up a post detailing the various Alfred workflows that make my life easier. Replaces Spotlight for launching apps by search, and also includes a great clipboard replacement.
- bartender: Small utility that you don't know you needed until you try it. Lets you hide various things in the Mac menubar. Awesome.
- beyond-compare: I use this for diffing files. Maybe it's a force of habit, maybe you have a better tool you like. YMMV.
- cakebrew: A GUI in front of Homebrew. Necessary? No. Kind of neat? Yes.
- dash: Great tool for quick access to documentation on various tools, languages, etc. Coupled with Alfred, it's amazing.
- dropbox: I go back and forth with Dropbox; I keep my documents in iCloud, but Dropbox is great for syncing certain files (for example, I keep my Alfred settings in sync via Dropbox) and also, this is where I keep images, movie files, etc.
- elgato-control-center: Tool for controlling my Elgato Key Lights.
obs: If you use the Elgato Stream Deck, note that OBS must be installed before the Stream Deck software. Which annoyed me, because I like my
Brewfileto be alphabetical.
- elgato-stream-deck: This is the driver/configuration utility for the Stream Deck, which gives me quick buttons for doing fancy things like controlling the aforementioned Key Lights, as well as shortcuts for cool things in OBS.
- farrago: A soundboard for sound effects, etc.
- handbrake: While I don't rip DVDs anymore, this is still a super useful tool for converting video files to the format I want.
- iterm2: If you do anything in the terminal on OS X, you should be using iTerm. Period.
- loopback: Creates virtual audio devices, so it's a helpful audio router.
- krisp: Noise cancellation, in case you are taking a Zoom call in a noisy area.
logitech-presentation - I mention this one because it's kind of annoying; this only installs the installer for the Logitech Spotlight remote; you will then need to run the installer from where it gets dumped at a location like this:
- macdown: My favorite Markdown editor.
- moom: Window management tool. I use this a lot. I have custom configurations for the placement of windows on the screen, and Moom lets me move windows there with a keystroke. Love it.
- soundsource: Lets me control audio on a per-app basis, adjusting the volume and output device for individual apps, etc.
tower: Most of the time, I use
gitat the command line, but this is a nice GUI on top of it.
- witch: Enhance task switcher, making it easier to tab between windows, etc, not just apps.
You can even use Homebrew to install fonts! I don't have all my fonts in my
Brewfile because there isn't a cask for every one I use, but I do have these:
tap "homebrew/cask-fonts" cask "font-hack-nerd-font" cask "font-inconsolata-for-powerline" cask "font-menlo-for-powerline"
Notice that I need to add a tap in order to get those fonts.
I am not going to list all these, as I only use a few (mostly games), 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
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) 418326655 Beargo (1.3) 675102891 Teddy Bear : Kindergarten (1.0) 639585198 Little Bear: My very first games (1,00) 612122909 Berenstain Bears Get In a Fight (1.2) 612126526 Berenstain Bears In the Dark (1.2)
The first column is the ID that you will need. You also need the exact app name in the second column. Then, update your
Brewfile like this!
mas "Bear", id: 1091189122
It's that easy!