- 2026-07-31 · MacOS 26 Tahoe · Apple Silicon
- Intel machines and OpenCore Legacy are in the companion file below
Result: a machine with no Apple Intelligence, no Siri, no analytics reporting, none of the bundled iLife/iWork apps, and the undeletable ones silenced. Clean.
I do this on all new machines, out of the box. Do you know where that box has been?
- Reset in place: System Settings → General → Transfer or Reset → Erase All Content and Settings
- Clean slate: boot Recovery → Disk Utility → erase internal volume as APFS → Reinstall MacOS
- Recovery on Apple Silicon: shut down, hold the power button until "Loading startup options". (Not Cmd-R)
- One pass is enough. Apple Silicon SSDs are hardware-encrypted; Erase All Content and Settings destroys the key — a plain Disk Utility erase doesn't.
Before connecting anything, there are some things you can turn on or off.
After this pass: no assistant, no telemetry, no ad targeting, no notifications reaching you on a locked or sleeping screen.
Apple Intelligence & Siri
Apple Intelligence: OFF // 27 betas remove the off switch
Siri: OFF
"Listen for" wake phrase: OFF
Show Siri in menu bar: OFF
Siri Suggestions: OFF everywhere // Spotlight, Look Up, Safari, Share, per-app list
Privacy & Security
FileVault: ON // on 26, already on if you signed in with an Apple Account at setup
Analytics & Improvements: all OFF
Apple Advertising → Personalized Ads: OFF
Location Services: OFF // also turns off Find My Mac and automatic time zone
General → AirDrop & Handoff
iPhone Mirroring: OFF // caution: not a toggle here — requires Handoff, so Handoff OFF disables it
Handoff: OFF
Notifications
Allow when display is sleeping: OFF
Allow when screen is locked: OFF
Allow when mirroring or sharing: OFF
Show previews: when unlocked
Apple Intelligence summaries: OFF
Per app: alert style None, then re-enable what you need
Network → DNS
Cloudflare: 1.1.1.1 / 1.0.0.1
or OpenDNS: 208.67.222.222 / 208.67.220.220 // but they're Cisco now so I wouldn't
MacOS 27 restructures Siri into a standalone app, so these toggles won't work above 26.
Reclaim tens of gigabytes, almost all of it GarageBand's sound libraries rather than the apps themselves.
These are sudo rm commands which are dangerous. You can drag the apps to the trash if you aren't a command line user or use AppZapper (see apps below)
sudo rm -rf /Applications/GarageBand.app
sudo rm -rf /Applications/iMovie.app
sudo rm -rf /Applications/Pages.app
sudo rm -rf /Applications/Numbers.app
sudo rm -rf /Applications/Keynote.app
# GarageBand's sound libraries survive deleting the app — tens of GB
sudo rm -rf "/Library/Application Support/GarageBand"
sudo rm -rf "/Library/Application Support/Logic"
sudo rm -rf "/Library/Audio/Apple Loops"
rm -rf ~/Library/Application\ Support/GarageBandNews, Stocks, and Tips are on the Signed System Volume. They cannot be removed — not with SIP disabled, not with a snapshot rewrite. Boo, Tim Apple!
You can't remove these, but you can make them more inert — no notifications, no widgets, no Dock icon.
- System Settings → Notifications → each app → Allow Notifications OFF
- Screen Time → App Limits → add each, minimal limit, Block at end of limit — or block them under Downtime
- Remove their widgets from Notification Center and the desktop
- Remove from Dock
- Spotlight settings → hide iPhone apps (if iPhone Mirroring is on)
Result: opaque windows instead of Liquid Glass, permanent scroll bars, higher contrast, no animation, a flat neutral desktop, and a Dock and Finder that behave like a computer rather than a tablet.
Prerequisites: grant your terminal Full Disk Access (System Settings → Privacy & Security), quit and reopen it. Log out and back in when finished — killall Dock is not enough.
Kills the transparency and the motion. This is most of the visible difference.
Accessibility → Display
Reduce transparency: ON
Increase contrast: ON
Differentiate without color: ON
Accessibility → Motion
Reduce motion: ON
Appearance
Liquid Glass: Tinted // added in 26.1
Icon & widget style: Default
Tint window background with wallpaper color: OFF
Show scroll bars: Always
Sidebar icon size: Small
To get both Tinted and Reduce Transparency: turn Reduce Transparency OFF → set Tinted → turn Reduce Transparency back ON. The picker greys out but the setting holds.
defaults write com.apple.universalaccess reduceTransparency -bool true
defaults write com.apple.universalaccess reduceMotion -bool true
defaults write com.apple.universalaccess increaseContrast -bool true
defaults write com.apple.universalaccess differentiateWithoutColor -bool true
defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write com.apple.Accessibility DifferentiateWithoutColor -int 1
defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001You can check they are set with: defaults read com.apple.universalaccess reduceTransparency
Set a static color, not an image or dynamic wallpaper.
I've used an 18% grey background with a centered image (shuffled from a folder) on every computer for twenty years and that's what I like. That number came from the Kodak R-27 gray card being at 18% reflectance. https://en.wikipedia.org/wiki/Gray_card
System Settings → Wallpaper → Solid Colors → Custom Color → Color Picker →
Grayscale slider → 18% (#2E2E2E)
If this is too dark for you, try #767676
Removes widgets, Stage Manager, Dock magnification and animation; gives Finder list view, visible extensions, a path bar, and folders sorted first.
Desktop & Dock
Show widgets on Desktop: OFF
Click wallpaper to reveal desktop: Only in Stage Manager
Stage Manager: OFF
Magnification: OFF
Minimize using: Scale effect
Show suggested and recent apps in Dock: OFF
Tiled windows have margins: OFF
Hot corners: all off
Keyboard
Use F1, F2 as standard function keys: ON
Keyboard navigation: ON
Spotlight
Search Results: enable only what you want it to find — a launcher and
Finder do the rest, and other tools use the index, so leave indexing on
Siri Suggestions: OFF // no web results, no queries to Apple
Help Apple improve Search: OFF
Show Related Content: OFF
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock launchanim -bool false
defaults write com.apple.dock expose-animation-duration -float 0.1
defaults write com.apple.dock magnification -bool false
defaults write com.apple.dock mineffect -string "scale"
defaults write com.apple.dock show-recents -bool false
defaults write com.apple.dock mru-spaces -bool false
killall Dock
chflags nohidden ~/Library
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
defaults write com.apple.finder AppleShowAllFiles -bool true
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
defaults write com.apple.finder ShowPathbar -bool true
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.finder _FXSortFoldersFirst -bool true
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" # current folder
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv" # list view
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall FinderCLI equivalents of the Stage Manager / widgets / click-to-reveal toggles:
defaults write com.apple.WindowManager GloballyEnabled -bool false
defaults write com.apple.WindowManager StandardHideWidgets -bool true
defaults write com.apple.WindowManager EnableStandardClickToShowDesktop -bool falserun killall WindowManager after
Launchpad was removed in 26. Replacement is Spotlight → Apps (⌘Space, ⌘1). Use a launcher instead — Quicksilver, Alfred, or Raycast.
This part is taste, not restoration. Result: a keyboard that might repeat faster than the settings pane allows, no autocorrect to mangle code, screenshots in a folder instead of on the desktop, and my personal toolbox for making websites.
Fast key repeat, no accent-character popup blocking held keys, tab reaching every control, and no smart quotes or em-dashes silently corrupting code and commit messages.
# unit is 15ms. Write 1 first, then 0 — 0 alone doesn't take.
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain KeyRepeat -int 0
defaults write NSGlobalDomain InitialKeyRepeat -int 15
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false # kills accent popup
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 # tab reaches everything
defaults write NSGlobalDomain com.apple.keyboard.fnState -bool true
# text substitution — these corrupt code and commit messages
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticTextCompletionEnabled -bool false
# per-app, if the global gets overridden
defaults write com.vscodium ApplePressAndHoldEnabled -bool falseKeyRepeat 0 is below the System Settings minimum. Real fast.
I make a lot of screenshots and I sync my iCloud desktop. This can cause a lot of churn across devices, but can also be handy. Pros and cons for this: move screenshot default folder to ~/Screenshots as PNGs with no drop shadow and no floating thumbnail.
mkdir -p ~/Screenshots
defaults write com.apple.screencapture location -string "${HOME}/Screenshots"Regardless of where you save them:
defaults write com.apple.screencapture type -string "png"
defaults write com.apple.screencapture disable-shadow -bool true
defaults write com.apple.screencapture show-thumbnail -bool false
killall SystemUIServerThese are small annoyances and weird tweaks I've made over time that might not make sense anymore:
defaults -currentHost write -globalDomain AppleFontSmoothing -int 0 # 0 is correct on Retina
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool trueAdd Develop menu and full URLs in Safari. Note: Safari's plist is TCC-protected and these often don't stick. You can use Safari → Settings → Advanced instead.
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool truexcode-select --install
# Homebrew — /opt/homebrew on Apple Silicon, not /usr/local
# https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.zprofile
# oh-my-zsh — repo moved to ohmyzsh/ohmyzsh
# https://ohmyz.sh/
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# then: plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
# ssh
ssh-keygen -t ed25519 -C "you@example.com"~/.ssh/config:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
Note: casks that ship a .pkg ignore --appdir and go where their installer decides, which is right.
Remove cruft from the built-in System Settings → Menu Bar first. If you use a launcher — Quicksilver, Alfred, Raycast — remove the Spotlight icon there (uncheck Spotlight), along with any other icons you don't use.
Replacement menu managers: Ice (free, last stable Feb 2026), Hidden Bar (unmaintained, works), or Bartender (sold in 2024, requires screen recording).
nvm manages node versions from a .nvmrc.
PHP comes straight from Homebrew.
# nvm — Homebrew installs it but won't wire it into your shell
brew install nvm
mkdir -p ~/.nvm
cat >> ~/.zshrc <<'EOF'
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh"
EOF
. "/opt/homebrew/opt/nvm/nvm.sh" # load it now; .zshrc handles future shells
nvm install --lts
brew install php@8.3I don't actually use a Brewfile but this reads better on a gist than just a codeblock and should work.
You might want to brew info <cask> before a batch install — cask names change.
brew bundle --file=~/Brewfiletap "ddev/ddev"
brew "git"
brew "gh"
brew "wget"
brew "coreutils"
brew "composer"
brew "mkcert" # local TLS certs, DDEV needs this
brew "zoxide" # previously: z
brew "htop"
brew "mas"
# Applications
cask "iterm2"
cask "google-chrome"
cask "firefox"
cask "vscodium"
# Development
cask "orbstack" # Docker runtime, lighter than Docker Desktop
brew "ddev/ddev/ddev" # local PHP/Craft environment
cask "kaleidoscope"
cask "xscope"
cask "sequel-ace" # previously: Sequel Pro
cask "transmit"
# Utilities
cask "appzapper"
cask "macs-fan-control"
cask "grandperspective" # previously: Disk Inventory X
# Utilities: finder
cask "quicksilver"
cask "alfred"
cask "moom" # previously: Divvy
mas "Amphetamine", id: 937984704 # previously: Caffeine
# Utilities: media
brew "imagemagick"
brew "ffmpeg"
cask "vlc"
cask "imageoptim"
cask "licecap"
# Utilities: password
cask "1password"
cask "1password-cli"
# Applications: text
cask "macdown-3000" # maintained MacDown; plain "macdown" cask retired
cask "obsidian" # previously: nvAlt
# Utilities: backups
cask "arq"
cask "superduper"
# Fonts
cask "font-fira-code"
cask "font-ia-writer-mono"
cask "font-jetbrains-mono-nerd-font"
Updated with separate docs for Intel and Silicon