macOS Dotfiles

March 12, 2026 · View on GitHub

macOS Setup

Shared development environment for the team. One script gets you from a fresh Mac to a fully configured workspace.

Quick Start

  1. Fork this repo on GitHub
  2. Clone your fork:
    git clone git@github.com:<your-username>/macos-dotfiles.git ~/.macos-dotfiles
    
  3. Run setup:
    cd ~/.macos-dotfiles
    sh bootstrap.sh
    

That's it. The setup script walks you through installing apps, linking dotfiles, configuring git + SSH signing, and setting up AWS/EKS access.

Not a fresh Mac? Existing config files (like ~/.zshrc) are automatically backed up to ~/.dotfiles-backup/ before being replaced.

What You Get

  • 100+ CLI tools and apps via Homebrew (bat, fzf, ripgrep, k9s, lazygit, and more)
  • Shell — Zsh with antidote plugins, starship prompt, aliases, and completions
  • Editor — Neovim with LazyVim
  • Terminal — Ghostty with Tokyo Night theme
  • Git — SSH commit signing, delta diffs, sensible defaults
  • Cloud — AWS CLI profiles and EKS cluster access (PRD + TST)

Day-to-Day Commands

CommandWhat it does
just updateSync apps with Brewfile (add new, remove old)
just doctorVerify everything is working
just stowRe-link dotfiles after editing
just unstowUnlink all dotfiles
just cleanFree up disk space (Homebrew cache)
just dumpExport current apps to Brewfile

Run individual setup phases anytime:

CommandWhat it does
just brew-installInstall Homebrew packages
just stow-allLink dotfiles + install mise SDKs
just git-setupConfigure git identity, SSH key, GitHub
just aws-setupConfigure AWS profiles + EKS access

Customization

Add or remove apps

Edit apps/Brewfile — one line per app:

brew "ripgrep"           # CLI tools use 'brew'
cask "firefox"           # Desktop apps use 'cask'

Then run just update.

Change terminal/editor settings

Config files live in dotfiles/stow/. Each folder maps to a tool:

FolderConfigures
zsh/Shell, aliases, plugins
nvim/Neovim (LazyVim)
ghostty/Terminal emulator
starship/Terminal prompt
git/Git config and global ignore
fish/Fish shell
bat/, btop/, k9s/, lazygit/CLI tools
aws/, mise/, direnv/, ripgrep/Dev tools
fastfetch/System info display

Edit any file, then run just stow to re-link.

Keeping Up With Upstream

Add the team repo as an upstream remote:

git remote add upstream git@github.com:nickhartjes/macos-dotfiles.git

Pull upstream changes:

git fetch upstream
git merge upstream/main

Resolve any conflicts in your fork, then just stow to re-link.