๐Ÿ Setting Up Your Fresh MacOS Installation: A Comprehensive Guide โœ…

Streamline your MacOS setup with Homebrew, over 100 essential apps, and customization tips

Setting up a full stack development environment on MacOS in 1 hour
Since end-2024, I have been using Nix-Darwin to set up my MacOS installations. See my dotfiles repo and the dotfiles blog post for more details.

Introduction #

Setting up a new MacOS installation can be a tedious process. This blog post will guide you through the essential steps and applications to install when setting up your fresh MacOS environment. Iโ€™ll cover a few unavoidable manual installations, homebrew, iTerm and VS Code font, oh-my-zsh, but can automate most other things.

Note that this is just what I have been doing for the last years, and you might want to do things differently.

This post is based on a GitHub Gist I have been maintaining since 2015-03 with >160 revisions by now, see it at basnijholt/install-fresh-macOS.md
Table of Contents

1. Manual Installations #

First, letโ€™s manually install some essential tools and software:

  1. homebrew, the essential package manager for MacOS
  2. micromamba, my preferred conda package manager which is blazingly fast
  3. Chrome (manual install because the brew version doesnโ€™t work with 1Password)
  4. File-up, a simple tool I made to upload files to an FTP server and copy the URL to the clipboard (optional)

Set a host file to block unwanted websites and advertisements.


2. Homebrew #

Homebrew is a powerful package manager for MacOS. It allows you to quickly and easily install, update, and remove software.

To install a long list of essential applications and tools, run the following commands in your terminal (click to unfold):
brew install --cask \
  adobe-creative-cloud \
  adobe-digital-editions \
  airflow \
  avast-security \
  balenaetcher \
  bartender \
  bettertouchtool \
  brave-browser \
  cakebrew \
  calibre \
  chromedriver \
  cryptomator \
  db-browser-for-sqlite \
  disk-inventory-x \
  docker \
  dropbox \
  eqmac \
  exodus \
  filebot \
  firefox \
  flux \
  github \
  google-chrome \
  handbrake \
  hiddenbar \
  homebrew/cask-fonts/font-fira-code \
  inkscape \
  istat-menus \
  iterm2 \
  jabref \
  karabiner-elements \
  keepingyouawake \
  licecap \
  lulu \
  lyx \
  macfuse \
  mactex \
  mactracker \
  mendeley \
  microsoft-azure-storage-explorer \
  microsoft-office \
  microsoft-teams \
  monitorcontrol \
  mounty \
  mpv \
  musicbrainz-picard \
  nordvpn \
  obs \
  obsidian \
  onyx \
  protonmail-bridge \
  qbittorrent \
  qlvideo \
  raycast \
  rectangle \
  rotki \
  sabnzbd \
  selfcontrol \
  signal \
  skype \
  sloth \
  spotify \
  steam \
  switchresx \
  syncthing \
  teamviewer \
  telegram \
  tor-browser \
  tunnelblick \
  unclack \
  universal-media-server \
  visual-studio-code \
  vlc \
  webtorrent \
  xquartz \
  zoom

brew install \
  autossh \
  azure-cli \
  bat \
  brew-cask-completion \
  cointop \
  gh \
  gifsicle \
  git \
  git-extras \
  git-lfs \
  git-secret \
  gnupg \
  go \
  graphviz \
  gromgit/fuse/ext4fuse-mac \
  gromgit/fuse/ntfs-3g-mac \
  gromgit/fuse/sshfs-mac \
  homebrew/tex/git-latexdiff \
  htop \
  hugo \
  imagemagick \
  jq \
  keychain \
  micro \
  microsoft/git/git-credential-manager-core \
  nano \
  openjdk \
  pipx \
  rbenv \
  rclone \
  rsync \
  ruby \
  rustup-init \
  ssh-copy-id \
  starship \
  terraform \
  tmux \
  wget \
  yq \
  zsh

Otherwise, you can install the essential applications and tools one by one.

This content below is automatically generated from this json file and markdown-code-runner

1. ๐ŸŒ Browsers #

Brave Browser ๐Ÿ›ก๏ธ๐Ÿฆ

A privacy-focused browser with built-in adblocker and support for Chrome extensions, rewarding content creators via BAT tokens.

Chrome ๐ŸŒ๐Ÿ’จ

A fast and user-friendly browser with seamless Google service integration and extensive extension library.

Firefox ๐Ÿ”“๐ŸฆŠ

An open-source browser prioritizing user privacy and security, offering a customizable experience with various add-ons.

2. ๐Ÿ› ๏ธ Productivity Tools #

Bartender ๐Ÿธ๐Ÿ–ฅ๏ธ

A utility to organize and manage your Macโ€™s menu bar icons, improving aesthetics and accessibility.

  • Install with brew install --cask bartender
  • See the formula

BetterTouchTool ๐Ÿ‘†๐Ÿ› ๏ธ

A customizable input device manager that enables advanced gesture control and shortcuts for your Mac.

Graphviz ๐Ÿ“Š๐Ÿ–‹๏ธ

An open-source graph visualization software, capable of representing structural information as diagrams of abstract graphs and networks.

HiddenBar ๐Ÿ“๐Ÿ–ฅ๏ธ

A lightweight tool to hide menu bar icons and declutter your Macโ€™s interface.

  • Install with brew install --cask hiddenbar
  • See the formula and repo

JQ ๐Ÿ“„๐Ÿ”

A lightweight and flexible command-line JSON processor, enabling data extraction, transformation, and manipulation of JSON data.

Karabiner-Elements โŒจ๏ธ๐Ÿ”ง

A powerful keyboard customizer allowing you to remap keys, create shortcuts, and improve typing efficiency on your Mac.

KeepingYouAwake โ˜•๐Ÿ’ป

A utility to prevent your Mac from going to sleep or turning off the display when you need it to stay active.

  • Install with brew install --cask keepingyouawake
  • See the formula and repo

Obsidian ๐Ÿ“๐Ÿ”—

A powerful note-taking and knowledge management application that uses plain text files with Markdown support.

Raycast โšก๐Ÿ–ฑ๏ธ

A productivity tool that allows you to control your Mac using powerful and customizable command-based actions.

Rectangle ๐Ÿ–ผ๏ธโŒจ๏ธ

A window management tool to easily resize and position windows on your Mac using keyboard shortcuts or snap-to-edge functionality.

iStat Menus ๐Ÿ“Š๐ŸŒก๏ธ

A comprehensive system monitor providing detailed information about your Macโ€™s performance through customizable menu bar icons.

  • Install with brew install --cask istat-menus
  • See the formula

3. ๐Ÿ“ฃ Communication #

Microsoft Teams ๐Ÿ“ž๐Ÿ“ˆ

A collaboration and communication platform for businesses, integrating chat, meetings, file sharing, and more.

Signal ๐Ÿ”๐Ÿ’ฌ

A secure and private messaging app with end-to-end encryption, supporting voice and video calls.

Skype ๐Ÿ“ฑ๐ŸŒ

A widely used communication tool for voice and video calls, instant messaging, and file sharing.

Telegram ๐Ÿš€๐Ÿ”’

A cloud-based messaging platform with a focus on speed and security, supporting large groups and file sharing.

Zoom ๐Ÿ“น๐Ÿ”—

A popular video conferencing tool for virtual meetings, webinars, and collaboration.

4. ๐Ÿ’ป Development #

Airflow ๐ŸŒฌ๏ธ๐Ÿ“Š

The ultimate way to watch your videos on Chromecast, Apple TV and AirPlay 2 enabled TVs.

  • Install with brew install --cask airflow
  • See the formula

Autossh ๐Ÿ”—๐Ÿ”

A tool for automatically starting and maintaining SSH connections.

Azure CLI โ˜๏ธ๐Ÿ”ง

A command-line tool for managing Azure resources.

Bat ๐Ÿฆ‡๐Ÿ“„

A cat command clone with syntax highlighting and Git integration.

Chromedriver ๐ŸŒ๐Ÿšฆ

A WebDriver for running web tests with Chrome.

Docker ๐Ÿณ๐Ÿ“ฆ

A platform for developing, shipping, and running containerized applications.

Git Credential Manager Core ๐Ÿง‘โ€๐Ÿ’ป๐Ÿ”‘

A cross-platform credential helper for Git for HTTPS authentication.

  • Install with brew install microsoft/git/git-credential-manager-core
  • See the repo

Git Extras โž•๐Ÿ”ง

Extra utilities and scripts for Git.

Git LFS ๐Ÿ—„๏ธ๐Ÿ”—

A Git extension for versioning large files.

Git Secret ๐Ÿคซ๐Ÿ”

A tool for storing sensitive data in Git repositories.

Git ๐Ÿง‘โ€๐Ÿ’ป๐Ÿ”„

A widely used distributed version control system.

Go ๐Ÿƒโ€โ™‚๏ธ๐Ÿ”ค

An open-source programming language designed for simplicity and concurrency.

Hugo ๐ŸŒ๐Ÿ› ๏ธ

A fast and flexible static site generator.

Java โ˜•๐Ÿ’ป

A popular programming language and development platform.

Micro โœ๏ธ๐Ÿ–ฅ๏ธ

A modern and intuitive terminal-based text editor.

Nano ๐Ÿ“๐Ÿ”

A simple and easy-to-use terminal text editor.

Rbenv ๐Ÿ’Ž๐Ÿ”ง

A Ruby version management tool.

Ruby ๐Ÿ’Ž๐Ÿ’ป

A dynamic, open-source programming language focused on simplicity and productivity.

Rustup-Init ๐Ÿฆ€๐Ÿ› ๏ธ

A toolchain installer for the Rust programming language.

Terraform ๐ŸŒ๐Ÿ› ๏ธ

An infrastructure as code software tool for managing cloud resources.

Visual Studio Code ๐Ÿ’ปโœ๏ธ

A powerful and extensible code editor with integrated Git and debugging support.

5. ๐ŸŽจ Graphics and Design #

Gifsicle ๐ŸŽž๏ธ๐Ÿ› ๏ธ

A command-line tool for creating, editing, and optimizing GIF animations and images.

ImageMagick ๐Ÿ–ผ๏ธ๐Ÿ› ๏ธ

A powerful command-line tool for creating, editing, and converting bitmap images, supporting a wide range of image formats.

Inkscape โœ๏ธ๐Ÿ–ผ๏ธ

A professional vector graphics editor that supports various file formats, offering a powerful set of drawing tools for graphic design.

OBS (Open Broadcaster Software) ๐ŸŽฎ๐ŸŽฅ

A powerful and customizable software for live streaming and screen recording, widely used by content creators and gamers.

6. ๐Ÿ–ฅ๏ธ Terminal and Shell #

Brew-Cask-Completion ๐Ÿบ๐Ÿ“

Shell completion for the Homebrew-Cask command, providing helpful suggestions and autocompletion.

  • Install with brew install brew-cask-completion
  • See the formula

GitHub CLI (gh) ๐Ÿ™๐Ÿ’ป

A command-line tool for managing GitHub repositories, issues, pull requests, and more, directly from the terminal.

Htop ๐Ÿ“Š๐Ÿ–ฅ๏ธ

An interactive process viewer for Unix systems, providing a real-time, color-coded view of system resources and processes.

Starship ๐Ÿš€โญ

A minimal, fast, and customizable shell prompt for any shell.

Tmux ๐Ÿ“บ๐Ÿ”€

A terminal multiplexer for managing multiple terminal sessions within a single window.

XQuartz ๐ŸŽจ๐Ÿ–ฅ๏ธ

An open-source X Window System implementation for macOS that allows running X11 applications, enabling compatibility with many Unix programs.

Zsh ๐Ÿš๐Ÿš€

An interactive and highly extensible Unix shell.

iTerm2 ๐Ÿ–ฅ๏ธ๐ŸŽ›๏ธ

A highly customizable and powerful terminal emulator for macOS.

7. ๐Ÿ…ฐ๏ธ Fonts #

Font Fira Code ๐Ÿ“๐Ÿ” 

A monospaced font with programming ligatures, designed for a modern coding experience. Enhances readability and aesthetics in code editors.

  • Install with brew install --cask homebrew/cask-fonts/font-fira-code
  • See the repo and docs

8. ๐Ÿ“‚ File Management and Utilities #

BalenaEtcher ๐Ÿ’พ๐Ÿš€

A user-friendly tool for flashing OS images onto SD cards and USB drives, simplifying the creation of bootable media.

Cakebrew ๐Ÿฐ๐Ÿบ

A GUI for managing Homebrew packages, providing an easy way to search, install, and update software.

Cryptomator ๐Ÿ”’โ˜๏ธ

An open-source encryption solution for cloud storage services, offering transparent, client-side encryption for data security.

DB Browser for SQLite ๐Ÿ—ƒ๏ธ๐Ÿ”

A high-quality, visual tool to create, design, and edit SQLite database files, streamlining database management.

Disk Inventory X ๐Ÿ’ฝ๐Ÿ“Š

A disk usage utility for macOS that displays folder and file sizes in a visual treemap, enabling quick identification of large files.

Dropbox โ˜๏ธ๐Ÿ“

A popular cloud storage service that seamlessly synchronizes files across devices, making file sharing and collaboration easy.

MPV ๐ŸŽž๏ธ๐ŸŽง

A free, open-source, and cross-platform media player with minimalistic design, supporting a wide range of media formats.

Mounty ๐Ÿ—ป๐Ÿ’ฝ

A user-friendly tool for mounting and writing to NTFS drives on macOS, providing seamless read/write access.

Rclone ๐Ÿ”„โ˜๏ธ

A command-line program to manage files on various cloud storage services, supporting synchronization, copying, and more.

Rsync ๐Ÿ”„๐Ÿ“

A powerful file transfer utility that uses delta encoding and compression to minimize data transfer, optimizing file synchronization.

SSH-Copy-ID ๐Ÿ”‘๐Ÿ”—

A utility to install your public key on a remote machineโ€™s authorized_keys, simplifying the setup of passwordless SSH connections.

Syncthing โš™๏ธโ˜๏ธ

A decentralized, open-source file synchronization tool that securely shares and synchronizes files between devices without relying on cloud services.

Universal Media Server ๐Ÿ“บ๐ŸŒ

A versatile media server that supports various devices and streaming protocols, allowing you to stream your media files across your home network.

Wget ๐ŸŒโฌ‡๏ธ

A command-line utility for downloading files from the internet, supporting HTTP, HTTPS, and FTP protocols.

9. ๐Ÿ”’ Security and Privacy #

Avast Security ๐Ÿ›ก๏ธ๐Ÿœ

A comprehensive antivirus and security suite, offering protection against various threats, as well as VPN and cleanup features.

  • Install with brew install --cask avast-security
  • See the formula

GnuPG (GPG) ๐Ÿ”๐Ÿ”‘

A complete and free implementation of the OpenPGP standard, providing encryption, signing, and key management capabilities.

Keychain ๐Ÿ”‘๐Ÿ”—

A tool for managing ssh-agent and GnuPG agent, designed to make key management easier and more convenient.

LuLu ๐Ÿšฆ๐Ÿ”ฅ

A lightweight, open-source firewall for macOS, offering control over outgoing connections and protecting against unauthorized access.

NordVPN ๐ŸŒ๐Ÿ”’

A popular VPN service providing a secure and encrypted connection, allowing access to geo-restricted content and protecting your privacy.

ProtonMail Bridge ๐Ÿ“ง๐Ÿ”

A desktop application enabling the use of ProtonMail with your preferred email client, ensuring end-to-end encryption and privacy.

Tor Browser ๐Ÿ•ต๏ธโ€โ™€๏ธ๐ŸŒ

A privacy-focused browser that routes your traffic through the Tor network, ensuring anonymity and access to hidden services on the dark web.

Tunnelblick ๐Ÿš‡๐Ÿ”—

A free, open-source VPN client for macOS, providing an easy-to-use interface for connecting to OpenVPN servers.

10. ๐ŸŽฅ Multimedia #

HandBrake ๐ŸŽž๏ธ๐Ÿ”ง

A versatile video converter and transcoder, supporting a wide range of formats and offering advanced customization options.

LICEcap ๐Ÿ–ฅ๏ธ๐ŸŽฅ

A lightweight screen capture tool, allowing you to create animated GIFs directly from your desktop.

MusicBrainz Picard ๐ŸŽต๐Ÿ”–

An open-source music tagger, using the MusicBrainz database to automatically update and organize your audio filesโ€™ metadata.

Spotify ๐ŸŽง๐ŸŽถ

A popular music streaming service, offering access to millions of songs, podcasts, and personalized playlists with a free or premium account.

Steam ๐ŸŽฎ๐ŸŒ

A digital distribution platform for purchasing and managing video games, providing a vast library of titles and social features.

VLC ๐Ÿ“บ๐Ÿ”Š

A versatile and open-source media player, supporting a wide range of audio and video formats, as well as streaming and conversion capabilities.

WebTorrent ๐ŸŒโšก

A user-friendly torrent client that runs directly in your browser, enabling streaming of torrent files without the need for a separate application.

eqMac ๐ŸŽš๏ธ๐ŸŽถ

An open-source audio equalizer for macOS, enhancing your listening experience with customizable presets and manual adjustments.

11. ๐Ÿ“„ Office and Document Management #

Adobe Creative Cloud ๐ŸŽจ๐Ÿ–ฅ๏ธ

A suite of creative applications for graphic design, video editing, web development, and more, including Photoshop, Illustrator, and Premiere Pro.

Adobe Digital Editions ๐Ÿ“š๐Ÿ”–

An ebook reader and manager, supporting various formats and DRM-protected files, as well as syncing across devices.

Calibre ๐Ÿ“š๐Ÿ”ง

An open-source ebook management tool, offering format conversion, syncing, and organization features, as well as a built-in reader.

FileBot ๐Ÿ“๐Ÿ”

A media file organization tool, simplifying the renaming and sorting of TV shows, movies, and music files.

JabRef ๐Ÿ“–๐Ÿ”—

An open-source reference manager, enabling the organization and citation of scientific publications in BibTeX and other formats.

LyX ๐Ÿ“„๐ŸŽ“

A document processor that combines the power of LaTeX with a user-friendly graphical interface, simplifying the creation of professional-looking documents.

MacTeX ๐Ÿ“š๐Ÿ”ฃ

A comprehensive TeX distribution for macOS, including LaTeX, various utilities, and documentation.

Mactracker ๐ŸŽ๐Ÿ’พ

A comprehensive database of Apple hardware and software, providing detailed specifications, history, and support information.

Mendeley ๐Ÿ“š๐Ÿ”—

A reference manager and academic social network, simplifying the organization, annotation, and citation of research papers.

Microsoft Office ๐Ÿ“๐Ÿ’ผ

A suite of productivity applications, including Word, Excel, PowerPoint, and Outlook, designed for creating, editing, and managing documents.

OnyX โš™๏ธ๐Ÿ–ฅ๏ธ

A multifunctional utility for macOS, offering maintenance, optimization, and personalization features, as well as advanced options for power users.

12. ๐Ÿ“ˆ Finance and Cryptocurrency #

Cointop ๐Ÿ’น๐Ÿ“ˆ

A command-line interface for tracking cryptocurrency market data, with an interactive and customizable dashboard.

Exodus ๐Ÿ’ฐ๐Ÿ”’

A user-friendly cryptocurrency wallet, supporting a wide range of assets, exchange features, and portfolio management.

13. ๐ŸŽฒ Miscellaneous #

Ext4Fuse ๐Ÿง๐Ÿ’ฝ

A macOS filesystem extension enabling read-only support for the ext4 file system, commonly used on Linux systems.

  • Install with brew install gromgit/fuse/ext4fuse-mac
  • See the repo and docs

Git LaTeXdiff ๐Ÿ“„๐Ÿ”

A command-line tool for generating diff files for LaTeX documents, simplifying the tracking of changes and collaboration on LaTeX projects.

  • Install with brew install homebrew/tex/git-latexdiff
  • See the repo and docs

GitHub ๐Ÿง‘โ€๐Ÿ’ป๐Ÿ”„

The official GitHub desktop client, simplifying repository management, version control, and collaboration on macOS.

MacFuse ๐Ÿ’ฝ๐Ÿ”—

A macOS filesystem extension enabling the use of non-native filesystems, offering compatibility with a wide range of formats.

Microsoft Azure Storage Explorer โ˜๏ธ๐Ÿ—ƒ๏ธ

A graphical tool for managing Azure Blob Storage, offering convenient access, organization, and management of your cloud storage.

  • Install with brew install --cask microsoft-azure-storage-explorer
  • See the formula , repo , and docs

MonitorControl ๐Ÿ–ฅ๏ธ๐ŸŽš๏ธ

A utility for controlling your external monitorโ€™s settings, such as brightness and volume, directly from your macOS menu bar.

NTFS-3G ๐Ÿ–ฅ๏ธ๐Ÿ”—

A macOS filesystem extension providing read-write support for the NTFS file system, commonly used on Windows systems.

  • Install with brew install gromgit/fuse/ntfs-3g-mac
  • See the repo and docs

QLVideo ๐ŸŽฅ๐Ÿ‘€

A QuickLook plugin for macOS, providing thumbnail previews and playback of various video formats directly in Finder.

Rotki ๐Ÿ’น๐Ÿ”

An open-source portfolio tracking and tax reporting tool for cryptocurrencies, offering extensive customization and privacy options.

SABnzbd ๐ŸŒ๐Ÿ—ž๏ธ

A binary newsreader for Usenet, offering automation features, a web interface, and compatibility with popular download management tools.

SSHFS ๐Ÿ’ป๐Ÿ”—

A macOS filesystem extension enabling mounting of remote filesystems via SSH, providing secure and convenient access to remote files.

  • Install with brew install gromgit/fuse/sshfs-mac
  • See the repo and docs

SelfControl ๐Ÿšซ๐Ÿ•’

A productivity tool for macOS, allowing you to block access to distracting websites and applications for a set period of time.

Sloth ๐ŸŒ๐Ÿ’ป

A macOS utility for displaying open files and network connections, offering insights into system resource usage and potential bottlenecks.

SwitchResX ๐Ÿ–ฅ๏ธ๐Ÿ”

A display resolution management tool for macOS, enabling custom resolutions, aspect ratios, and refresh rates for your monitor.

TeamViewer ๐ŸŒ๐Ÿ’ป

A remote desktop and collaboration tool, offering screen sharing, file transfer, and remote control capabilities for personal and professional use.

Unclack ๐ŸŽค๐Ÿ”‡

A utility for macOS that automatically mutes your microphone while you type, preventing unwanted noise during conference calls and voice recordings.

f.lux ๐ŸŒž๐ŸŒ›

A screen color temperature adjustment tool, reducing eye strain and promoting healthy sleep patterns by adapting your display to the time of day.

pipx ๐Ÿ๐Ÿ“ฆ

A package manager for installing and running Python applications in isolated environments, ensuring clean and conflict-free installations.

qBittorrent โšก๐Ÿ“

A free and open-source torrent client, featuring a clean interface, powerful search capabilities, and minimal resource usage.

yq ๐Ÿ“„๐Ÿ”ง

A command-line tool for parsing and manipulating YAML files, offering powerful filtering and editing capabilities.

osxfuse (and thus sshfs) is deprecated from Homebrew, there is this tap [here] that I can use to install osxfuse and sshfs.

3. Increase sudo Password Timeout #

To increase the sudo password timeout, follow the instructions provided in this StackExchange answer.


4. oh-my-zsh #

oh-my-zsh is a popular framework for managing your Zsh configuration. Follow the download instructions provided in the link, or use the dotfiles folder if you have it.


5. Set Your Mac Host/Computer Name #

To set a custom host or computer name for your Mac, open a terminal and run the following commands:

NAME="your-custom-name"
sudo scutil --set HostName $NAME
sudo scutil --set LocalHostName $NAME
sudo scutil --set ComputerName $NAME
dscacheutil -flushcache

6. Quick Dock Hiding #

For a cleaner desktop experience, follow this StackExchange answer to enable quick dock hiding.


7. iTerm and VS Code Font #

The Fira Code font is a popular choice for developers. To set it as the default font for iTerm and Visual Studio Code:


Conclusion #

After completing these steps, restart your Mac. You now have a fully customized and functional MacOS environment, ready for productivity and creativity. Enjoy your freshly set-up MacOS!

Edit this page

Bas Nijholt
Bas Nijholt
Staff Engineer

Hi.

Related