Before you start
This guide is written for two kinds of readers:
Everyday users who just switched to Mac: the first three sections are enough for you. That covers system settings, essential apps, and optimizations for users in mainland China. You can skip the developer-environment part.
Developers moving over from Windows: read the whole thing. Within 30 minutes, you should have a complete and usable setup, including AI tools.
The checkboxes on the left side can help you track your progress, and they should keep state even after a refresh.
2026 environment note: the current version of macOS is macOS 26 Tahoe. Every command in this article has been verified on Apple Silicon Macs. Most commands also work on Intel Macs, but a few details may differ and will be called out where needed.
System settings
Everyone should do this part. It gets macOS into a "feels normal" state much faster. If you are coming from Windows, this section fixes the biggest friction points in one pass.
Mouse and trackpad
Open System Settings -> Trackpad:
- Tap to click: turn it on so a light tap counts as a click
- Scroll direction: if you do not like macOS "Natural scrolling", turn it off in the Mouse section
Open System Settings -> Accessibility -> Pointer Control -> Trackpad Options:
- Dragging style: choose "Three Finger Drag" so moving windows feels more natural
Finder settings
Finder is the Mac file manager, and the default settings are not very friendly for developers.
Open Finder, then press Cmd + , to open settings:
- General: change "New Finder windows show" to Downloads or your Home folder
- Advanced: enable "Show all filename extensions"
In the Finder menu bar, click View -> Show Path Bar and Show Status Bar. That way you can always see which directory you are in, which feels much closer to Windows.
Screenshot settings
The built-in screenshot tools on Mac are better than most people expect:
| Shortcut | Function |
|---|---|
Cmd + Shift + 3 |
Capture the full screen |
Cmd + Shift + 4 |
Capture a selected area |
Cmd + Shift + 4, then press Space |
Capture a specific window |
Cmd + Shift + 5 |
Open the screenshot tool, including screen recording |
Screenshots are saved to the desktop by default, but you can change the save location from the Cmd + Shift + 5 panel.
System tweaks in Terminal (optional)
The following commands can make development on macOS more comfortable. Copy and paste them into Terminal:
# Save screenshots as JPG to keep file sizes smaller
defaults write com.apple.screencapture type jpg
# Show hidden files in Finder
defaults write com.apple.finder AppleShowAllFiles YES
# Always show the path bar
defaults write com.apple.finder ShowPathbar -bool true
killall Finder
Essential apps
This section is for everyone. Every tool here is free, and most of them replace software you may have paid for on Windows.
Homebrew: the package manager for Mac
This is the most important tool on macOS. It is similar to winget on Windows, but much more capable. Install this first because nearly everything else in the guide depends on it.
Open Terminal by pressing Cmd + Space and searching for "Terminal", then paste this in:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
If you are in mainland China: if the install is slow or hangs, jump to the "Optimizations for users in mainland China" section below, set up the mirrors first, then come back.
Verify the installation:
brew --version
# Output should look like: Homebrew 4.x.x
Raycast: replace Spotlight
Cmd + Space is the default Mac search shortcut, but Spotlight is fairly limited. Raycast is the better replacement, and the free plan is already strong enough for most people:
brew install --cask raycast
After installing it, open Raycast and set its shortcut to Cmd + Space. It will prompt you to disable Spotlight for that shortcut.
The free version of Raycast gives you app launching, file search, clipboard history, window management, a calculator, and unit conversion. One tool replaces four or five paid utilities.
Window management: Rectangle (free)
On Windows, dragging a window to the edge automatically snaps it into place. Older versions of macOS do not do that well by default. Rectangle fills that gap:
brew install --cask rectangle
After installation, you can snap windows with shortcuts such as Ctrl + Option + Left Arrow for the left half and Ctrl + Option + Right Arrow for the right half. Windows users usually adapt to this instantly.
If you already pay for Raycast Pro, it includes built-in window management, so you can skip Rectangle.
Video player: IINA (instead of VLC)
Free, open source, native-looking on macOS, and supports almost every format:
brew install --cask iina
Archive extractor: Keka (instead of WinRAR)
Supports zip, 7z, rar, and more:
brew install --cask keka
Password manager: Bitwarden (free and open source)
Stop storing passwords in the browser. Bitwarden is open source, free, and can even be self-hosted:
brew install --cask bitwarden
App uninstaller: AppCleaner
macOS does not have a traditional Windows-style uninstaller. Deleting an app directly often leaves leftovers behind. AppCleaner removes the app and the related files:
brew install --cask appcleaner
Optimizations for users in mainland China
This is the part almost every Mac setup guide misses, even though it matters the most for users in China.
Homebrew mirrors
By default, Homebrew downloads from GitHub, which is often slow in mainland China. You can switch it to domestic mirrors:
# USTC mirrors (recommended)
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
# Persist the settings
echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zshrc
echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.zshrc
echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"' >> ~/.zshrc
source ~/.zshrc
npm registry mirror
# Use the npmmirror registry
npm config set registry https://registry.npmmirror.com
# Verify
npm config get registry
Git proxy (optional)
If you already use a proxy tool locally, you can give Git its own proxy settings:
# Replace the port with your own proxy port
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# Remove the proxy settings later if needed
git config --global --unset http.proxy
git config --global --unset https.proxy
Developer environment
From this point on, the guide is for developers only. Everyday users can stop here.
Basic Git setup
macOS ships with Git, but it is better to install the latest version through Homebrew:
brew install git
# Replace these with your own details
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# Use main as the default branch name
git config --global init.defaultBranch main
# Verify
git --version
Node.js: manage versions with fnm
For 2026, the recommendation is fnm (Fast Node Manager) instead of nvm. It is faster and works better on Apple Silicon:
brew install fnm
# Add fnm to zsh
echo 'eval "$(fnm env --use-on-cd)"' >> ~/.zshrc
source ~/.zshrc
# Install Node 22, the current LTS
fnm install 22
fnm use 22
fnm default 22
# Verify
node --version # v22.x.x
npm --version
pnpm: the package manager to default to in 2026
npm and yarn are no longer the best defaults for most people. pnpm is faster and uses less disk space:
npm install -g pnpm
# Verify
pnpm --version
Use pnpm instead of npm: pnpm install, pnpm dev, pnpm build. In most projects, the commands map over directly.
Editor: VS Code or Cursor
VS Code (stable, best ecosystem):
brew install --cask visual-studio-code
Cursor (the AI-enhanced VS Code fork that exploded in 2025-2026):
brew install --cask cursor
They can live side by side. Install VS Code first, get comfortable, then try Cursor when you want stronger AI assistance.
Recommended VS Code extensions:
ESLint- lintingPrettier- formattingGitLens- better Git insightTailwind CSS IntelliSense- Tailwind autocompleteChinese (Simplified)- Chinese UI, if you want it
Better terminal: iTerm2 + Starship
The built-in Terminal app is usable, but iTerm2 is a better experience:
brew install --cask iterm2
Starship is a lightweight cross-shell prompt, much lighter than oh-my-zsh:
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
source ~/.zshrc
AI tools
This is the biggest shift from 2024 to 2026, and it is also where most older Mac setup guides are already outdated.
Claude Desktop
The local Claude desktop client supports file analysis and coding assistance:
brew install --cask claude
Claude Code: AI coding in the Terminal
This is Anthropic's CLI AI tool. It can inspect projects, write code, and execute tasks directly from the terminal:
brew install --cask claude-code
After installation, run claude from your project directory.
Cursor: AI-native editor
It was already mentioned in the editor section above, but it is worth repeating: Cursor currently gives one of the best AI-assisted coding experiences available. It is built on VS Code, so you can migrate most of your extensions and settings directly.
Local models (advanced, optional)
If you want to run AI models locally without sending data over the network:
brew install --cask ollama
Then test a lightweight model:
ollama run llama3.2
Local models need reasonably strong hardware. An M2 or newer Mac with at least 16 GB of RAM is a practical starting point. An M4 MacBook Pro can run 8B models smoothly.
Docker and containers
Run your databases and backend services in Docker so they do not pollute your local machine.
Install Docker Desktop
brew install --cask docker
Launch Docker Desktop and wait until the status in the lower-left corner turns green and says "Running".
Verify:
docker --version
docker compose version
Start a local database in one command
Create a docker-compose.yml file in a directory you like, for example ~/dev/services/:
# ~/dev/services/docker-compose.yml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
adminer:
image: adminer
ports:
- "8080:8080"
volumes:
postgres_data:
Start it:
docker compose up -d
Open http://localhost:8080 to launch Adminer. Use postgres as the server, and postgres for both the username and password.
Final checks
After finishing the setup above, run these commands to confirm everything is working:
# Core tools
brew --version
git --version
# Node environment
node --version # should be v22.x.x
pnpm --version
# Docker
docker --version
docker compose version
If every command prints a version number, your Mac developer environment is ready.
Try creating a Next.js project
pnpm create next-app@latest my-app
cd my-app
pnpm dev
Open http://localhost:3000. If you see the Next.js welcome page, the full environment is working.
Recommended next step: collect your usual tools into a Brewfile so the next time you switch Macs, you can rebuild the whole setup in one shot. A future guide on this site will cover that workflow.