Skip to content

Setting up a new Mac

The order that turns a fresh machine into a working one. Tick apps as you go and leave with a ready Brewfile.

// In short

A 12-step checklist for a new Mac: macOS updates, Xcode Command Line Tools, Homebrew, essential CLI tools, terminal and shell, an SSH key, git config, everyday apps, system tweaks, security, and backups. Apps from the steps collect into a personal Brewfile.

Your Mac
Homebrew in /opt/homebrew
  1. Step 1

    Update macOS and learn your hardware

    Start from a clean base: install pending system updates and note two facts about the machine — the macOS version and the CPU architecture. The architecture decides your Homebrew path and half the instructions you will find online.

    softwareupdate --list
  2. Step 2

    Xcode Command Line Tools

    Compilers, git, and headers nearly everything else depends on. The Homebrew installer pulls them in anyway, but doing it up front is faster and more predictable. The full Xcode from the App Store is only needed for Apple-platform development.

    xcode-select --install
  3. Step 3

    Homebrew

    The package manager everything else is installed through. Right after the install, add brew to your PATH — that is the forgotten step behind the classic "command not found" reply.

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    Apps for this step
    HomebrewThe macOS package manager
  4. Step 4

    Essential CLI tools

    A current git instead of the system one, gh for GitHub from the terminal, jq for JSON, ripgrep and fzf for instant search through code and history. This set pays for itself on day one.

    brew install git gh jq wget ripgrep fzf tree htop
    CLI tools for this step
  5. Step 5

    Terminal

    The stock Terminal.app works, but you will spend hours in it. Pick one: Ghostty is the fastest and leanest, iTerm2 offers the deepest settings and a decade of trust, Warp brings blocks and AI suggestions.

    Apps for this step
    GhosttyFast native terminal
    iTerm2Terminal replacement
    WarpAI-powered block terminal
  6. Step 6

    Shell and dotfiles

    macOS already ships zsh — the job is making it comfortable: history suggestions, syntax highlighting, and an informative prompt. Keep ~/.zshrc in a git repo and the next Mac is five minutes of work.

    brew install starship zsh-autosuggestions zsh-syntax-highlighting
    CLI tools for this step
  7. Step 7

    An SSH key for GitHub

    Ed25519 instead of legacy RSA. The second command drops the public key straight into the clipboard — paste it into GitHub or GitLab settings. The private key never leaves the machine.

    ssh-keygen -t ed25519 -C "[email protected]" && pbcopy < ~/.ssh/id_ed25519.pub
    Commands for this stepList SSH keys
  8. Step 8

    Global git config

    Your name and email land in every commit, so set them before the first one instead of rewriting history later. While you are there, make main the default branch.

    git config --global user.name "Your Name" && git config --global user.email "[email protected]" && git config --global init.defaultBranch main
  9. Step 9

    Everyday apps

    Five programs that feel like missing parts of the OS: a launcher that replaces Spotlight, keyboard window management, clipboard history, a real window switcher, and fast annotated screenshots.

    Apps for this step
    RaycastA Spotlight replacement
    RectangleKeyboard window snapping
    MaccyClipboard history
    AltTabWindows-style Alt-Tab
    ShottrScreenshots for developers
  10. Step 10

    System tweaks

    Five settings the Settings app does not offer: visible hidden files, an instant Dock, the path bar in Finder, a dedicated screenshots folder, and no .DS_Store on network shares. Every command has a documented revert on the commands page.

  11. Step 11

    Security

    Turn on FileVault (without disk encryption a stolen laptop means stolen data) and the firewall, set up a password manager, and add LuLu if you want a say in outbound connections. Three commands tell you the current state.

    Apps for this step
    1PasswordThe #1 password manager
    LuLuOutbound traffic firewall
  12. Step 12

    Backups

    The last step, done first only by people who have already lost data. Attach a Time Machine disk or a network target — the command shows where the system is backing up right now.

    tmutil destinationinfo
// CONNECT

Contact Information

Submit a request or write to me directly on Telegram. I'll reply within 24 hours.