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!
- 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
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. - 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
man
. - 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.
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. 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
Brewfile
to 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:
/usr/local/Caskroom/logitech-presentation/1.54.84/LogiPresentation Installer.app
- 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
git
at 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.
Fonts
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.
Mac App Store apps
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 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)
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!
Top comments (6)
Cool!! I'm always happy to see other people brewfiles, is how I discovered some of the most useful apps.
Here's mine: magarcia/dotfiles/.Brewfile (the weird syntax is because I use yadm to manage my dotfiles).
Another
yadm
fan here! I need to dig into yours for inspiration for sure!Hey Matty! Any reason you're using Authy when you can do OTP with 1password? :)
Honestly, it is because I have everything in Authy. I've thought about using 1Password for it (for the same reason I use Authy, which is 1) able to use it on a computer and b) not have to re-set everything up if I get a new phone, device, etc).
I have a LOT of OTP stuff in Authy, so moving it to 1Password would be a pain, and I honestly haven't had a forcing function that would inspire me to do that work. If I was starting over, I might use 1Password!
Diving down this rabbit hole will cut my productivity to zero for a week, but I'll be up at like 101% after.
Real talk: I love seeing these lists, more than half of this is new to me.
I always get inspired when I see someone else's Brewfile, etc...I am pretty sure that's how I learned about
tldr
.