← Back to Hub

Mac First Setup

Minimalist checklist for a new machine. 10 Checks, 10 Automations, 10 Installs.

01. Things to Check

Battery Health & Cycles
Check if the battery is new and healthy.
system_profiler SPPowerDataType | grep "Cycle Count"
Hardware Specs
Verify CPU, RAM, and Serial Number.
system_profiler SPHardwareDataType
SSD Wear (S.M.A.R.T)
Check disk health (requires smartmontools later).
diskutil info / | grep "Device Identifier"
System Integrity Protection (SIP)
Ensure SIP is enabled for security.
csrutil status
Firewall Status
Check if the built-in firewall is active.
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
FileVault Encryption
Verify if disk encryption is on.
fdesetup status
MDM / Enrollment Status
Check if the device is managed by your company.
profiles status -type enrollment
macOS Version
Current build and version.
sw_vers
Network Services
List all available network interfaces.
networksetup -listallnetworkservices
Recent System Logs
Check for any immediate errors in the last minute.
log show --last 1m

02. Things to Automate

Show Hidden Files
Always show dotfiles in Finder.
defaults write com.apple.finder AppleShowAllFiles YES && killall Finder
Show Full Path in Finder
See exactly where you are in the title bar.
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true && killall Finder
Ultra-Fast Key Repeat
Make the cursor move faster when holding keys.
defaults write NSGlobalDomain KeyRepeat -int 1 && defaults write NSGlobalDomain InitialKeyRepeat -int 10
Disable Auto-Correct
Prevent macOS from "fixing" your code/words.
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
Screenshot Location
Keep your desktop clean. Save to ~/Screenshots.
mkdir -p ~/Screenshots && defaults write com.apple.screencapture location ~/Screenshots && killall SystemUIServer
Avoid .DS_Store on Network
Don't litter network drives with hidden files.
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
Expand Save Panel
Always show the full file browser when saving.
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true && defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
Folders First in Finder
Sort folders above files.
defaults write com.apple.finder _FXSortFoldersFirst -bool true && killall Finder
Faster Dock Animation
Reduce the autohide delay for a snappier feel.
defaults write com.apple.dock autohide-time-modifier -float 0.15 && killall Dock
Hide Desktop Icons
Keep a clean workspace.
defaults write com.apple.finder CreateDesktop -bool false && killall Finder

03. Things to Install

Homebrew
The missing package manager for macOS.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Visual Studio Code
Code editor.
brew install --cask visual-studio-code
iTerm2
Better terminal emulator.
brew install --cask iterm2
Docker
Container management.
brew install --cask docker
Slack
Communication tool.
brew install --cask slack
Google Chrome
Web browser.
brew install --cask google-chrome
Rectangle
Window management (snapping).
brew install --cask rectangle
Raycast
Superior productivity tool and Spotlight replacement.
brew install --cask raycast
Postman
API testing tool.
brew install --cask postman
Git
Version control.
brew install git

04. Productivity Hacks

Touch ID for Sudo
Use your fingerprint for terminal commands.
sudo sed -i '' '2i\'$'\n''auth sufficient pam_tid.so' /etc/pam.d/sudo
Magic Clipboard (Copy)
Pipe any output directly to your clipboard.
ls -la | pbcopy
Magic Clipboard (Paste)
Paste clipboard content into a file.
pbpaste > my_clipboard.txt
Keep Mac Awake
Prevent sleep during long tasks (1 hour).
caffeinate -u -t 3600
Instant Web Server
Serve current folder over local network.
python3 -m http.server 8000
Quick Look from CLI
Open a preview window for any file.
qlmanage -p filename.pdf
Open current folder in Finder
Quick jump from terminal to GUI.
open .

05. Everyday Scripts

Flush DNS Cache
Fix internet/domain resolution issues.
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Clear Inactive RAM
Force macOS to free up memory.
sudo purge
Find Top 10 Large Files
Identify what is eating your disk space.
du -ah . | sort -rh | head -n 10
Clean DS_Store Files
Recursively delete hidden metadata files.
find . -name ".DS_Store" -depth -exec rm {} \;
Check Public IP
Get your external IP address.
curl -s ifconfig.me
Battery Health (CLI)
Get a detailed battery report.
pmset -g batt
Say Completion
Make your Mac notify you when a task finishes.
sleep 10; say "Task is done"

06. Essential Keyboard Shortcuts

Spotlight Search
The fastest way to open apps and files.
Cmd + Space
Force Quit Menu
Kill unresponsive applications.
Cmd + Option + Esc
Screenshot Selection
Select an area to capture.
Cmd + Shift + 4
Emoji & Symbols
Quickly insert emojis anywhere.
Control + Cmd + Space
Switch App Windows
Cycle through windows of the SAME app.
Cmd + `
Hide Current App
Instantly clear the app from view.
Cmd + H
Lock Screen
Instantly lock your Mac.
Control + Cmd + Q

07. Developer Automations

Configure Git Identity
Set your global name and email.
git config --global user.name "Your Name" && git config --global user.email "mail@example.com"
Generate SSH Key
Modern Ed25519 key for GitHub/GitLab.
ssh-keygen -t ed25519 -C "mail@example.com"
Copy SSH Key
Quickly copy your public key for pasting.
pbcopy < ~/.ssh/id_ed25519.pub
List Open Ports
See which processes are listening on which ports.
sudo lsof -i -P -n | grep LISTEN
Kill Process on Port
Force stop whatever is using port 8080.
lsof -ti:8080 | xargs kill -9
Check CPU Architecture
Verify if you are on Intel or Apple Silicon (arm64).
uname -m
Xcode Select Install
Install Command Line Tools for dev work.
xcode-select --install