macOS set up for coding and development (2021 edition)
Here’s basically what I would do every time I have a set up a new macOS machine for coding. This setup is generic enough for development and coding work.
This list assumes your on macOS Catalina or Big Sur and Zsh should also be the default macOS shell.
The primary MacOS set up for coding
1. Install Homebrew
I shouldn’t even need to tell you to install Homebrew 😄
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. Install iTerm 2
Yup. This is #2 on the list. iTerm 2 is really that much better than Terminal.app.
brew install --cask iterm2
3. Install QuickLook Plugins
There are some quicklook plugins that makes it really easy to preview files in Finder.
brew install --cask qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv qlimagesize webpquicklook quicklookase qlvideo
4. Install Wget
A reminder to also install wget.
brew install wget
5. Install Visual Studio Code
brew install --cask visual-studio-code
Then configure Code for use in shell.
- Launch VS Code.
- Open the Command Palette (⇧⌘P) and type ‘shell command’ to find the
- Shell Command: Install ‘code’ command in PATH command.
(Source: https://izziswift.com/run-open-vscode-from-mac-terminal/)
6. And/Or Install Atom
If you prefer Atom instead of VS Code, then install Atom. Or you can skip it if you primarily code or text edit on VS Code.
brew install --cask atom
7. Install AdoptopenJDK
My go to JDK is AdoptOpenJDK. You can also easily install it using Homebrew. I personally still use JDK 8 as its the one that works best with some of the Java applications I use. If you prefer the different version, check out https://github.com/AdoptOpenJDK/homebrew-openjdk to see the full list of versions to install.
brew tap AdoptOpenJDK/openjdk brew install --cask adoptopenjdk8
8. Install Tree
You can visually view the directory in a tree structure. Useful to see what’s nested in a specific directory.

brew install tree
9. Install jq
Really useful to process all those json files, especially if you deal with a lot of REST APIs and JSON configuration files.
brew install jq
Customise zSH
I mainly follow this guide here but have different POWERLEVEL9K theme customisation. So the following is what I do to get iTerm2 to look like the screenshot below.

1. Customise iTerm2
Go to iTerm2 -> Preferences -> Profile
In Colors -> Color Presets…:
- Download the colour scheme for iTerm2 and import the colour scheme. You can also find others with a Google search for other colour schemes that you prefer.
- Update: I’ve been tweaking around and have since updated to this colour scheme that I slightly tweaked from the Dracula theme.
In Text:
- Download and install this patched SourceCodePro+Powerline+Awesome font so that you can display icons on the terminal.
- Change Font to SourceCodePro+Powerline+Awesome
- Set the font size to 11pt
- Change cursor to Vertical Bar
- Enable Blinking cursor
In Keys:
- Load the “Natural Text Editing” preset
Quit and restart iTerm2.
2. Install Oh my Zsh and Zsh plugins
Oh my Zsh is a configuration framework for Zsh.
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Install the Auto suggestions plugin (for Oh My Zsh)
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
Then install zsh-completions and zsh-syntax-highlighting.
brew install zsh-completions zsh-syntax-highlighting
Now it’s time to edit your .zshrc and load some Oh my Zsh plugins and finish the zsh-syntax-highlighting plugin.
vi ~/.zshrc
Look for the plugins section and edit as per below. You can find more and read what the plugins does here.
# Which plugins would you like to load? # Standard plugins can be found in ~/.oh-my-zsh/plugins/* # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( git zsh-autosuggestions osx sudo )
You also need to add the following line to be at the end of the file.
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
3. Install and customise Powerlevel9k theme for ZSH
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
The edit and change the theme in your ~/.zshrc
file.
ZSH_THEME="powerlevel9k/powerlevel9k"
Also, add the following Powerlevel9K customisations right at the end in your ~/.zshrc
file. Notice that I’ve made sure to move the two lines of source commands at the end of the file too.
# POWERLEVEL9K Visual Customisations POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(user dir dir_writable vcs) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs ip time) POWERLEVEL9K_PROMPT_ON_NEWLINE=true POWERLEVEL9K_PROMPT_ADD_NEWLINE=true POWERLEVEL9K_USER_DEFAULT_BACKGROUND='steelblue3' POWERLEVEL9K_USER_DEFAULT_FOREGROUND='grey0' POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='red' POWERLEVEL9K_VCS_GIT_ICON='' POWERLEVEL9K_VCS_STAGED_ICON='\u00b1' POWERLEVEL9K_VCS_UNTRACKED_ICON='\u25CF' POWERLEVEL9K_VCS_UNSTAGED_ICON='\u00b1' POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='\u2193' POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='\u2191' POWERLEVEL9K_TIME_FORMAT="%D{%H:%M \uE868 %d.%m.%y}" POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%f" # Colorise the top Tabs of Iterm2 with the same color as background # Just change the 18/26/33 wich are the rgb values echo -e "\033]6;1;bg;red;brightness;18\a" echo -e "\033]6;1;bg;green;brightness;26\a" echo -e "\033]6;1;bg;blue;brightness;33\a" # Visual customisation of the second prompt line local user_symbol="$" if [[ $(print -P "%#") =~ "#" ]]; then user_symbol = "#" fi POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%{%B%F{black}%K{yellow}%} $user_symbol%{%b%f%k%F{yellow}%} %{%f%}"
Other installs
1. The frameworks and language of your choice!
Of course, you will need to install your preferred language SDKs. For me that would be Python and Golang. For you, it would likely be something else, so I would leave this section as is. You should be able to find the best way to install the SDKs if you don’t already have a preferred method.
2. VLC
Because VLC? 😄 Not exactly coding related but you always need to view some videos no?
brew install --cask vlc
2. Wake On LAN Utility
I use the wakeonlan command to make my home server that goes to sleep when unused.
brew install wakeonlan
3. Alfred + Powerpack
I’ve written about Alfred a few times here already. Alfred is one of the few utility apps that I can’t live without now on my Mac. Essentially, it’s a search utility, working pretty much like Spotlight of macOS. But what’s really cool and relevant for a development and coding set up is the ability to create workflows.

Find out more about what Alfred can do for you here. The basic version of Alfred is available free on the Mac App Store or from their website as well, which makes it a real no brainer to have it installed on your Mac.
Let me know what’s missing!
Feel free to comment if there’s anything else you think I should really add to this list too! Always open to suggestions how I can improve this baseline set up.
If this post has been useful, support me by buying me a latte or two 🙂

how can we include in macOS, do you have any pointer for me,.
Can you help to clarify what you want to include? Your question is unclear to me unfortunately.