Make a MacBook extremely productive for developers.
- Climb Out of the GFW
- Get Apple's Dev Toolchain
- Get Package Manager
- Get a Real Browser
- Install Fonts
- Get a Clipboard History Manager
- Authenticate with GitHub CLI
- Set Git Identity
- Set Up Node.js Version Management
- Get a Better Terminal
- Switch Apps Without Touching the Trackpad
- Get Code Editor
- Don't Type, Just Speak
- Get Your AI Coding Partner
- Make the Shell Usable
- Set Up Shell Aliases
- Fix Long-Press Behavior for Vim
- Screenshot and Pin Anything
- Run LLMs Locally
- Fix Mouse Scroll Direction
- Enable Three-Finger Drag on Trackpad
- Use F-Keys Without Holding Fn
Install ClashV-Ninja: jinkela.app
Install Xcode from App Store, or run in terminal:
xcode-select --installInstall Homebrew:
Xcode Command Line Tools must be installed first.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Install Chrome:
Requires ClashV-Ninja (proxy) to be set up first in 🇨🇳.
Download: https://www.google.com/chrome/
Fonts for coding and terminal.
# Terminal font
brew install --cask font-iosevka
# Code font
brew install --cask font-monaspace# Clipboard manager
brew install --cask maccy| Shortcut | Action |
|---|---|
| ⌘ ⇧ C | Open clipboard history |
| ↑ / ↓ then ↩ | Select and paste an item |
| Type to filter | Search through history |
| ⌥ P | Pin / unpin item to top |
| ⌥ ⌫ | Delete item from history |
brew install gh
gh auth logingit config --global user.name "your-username"
git config --global user.email "your-email@example.com"Install fnm and Node.js:
Tools like Claude Code depend on Node.js. Use fnm (Fast Node Manager) to manage versions.
brew install fnmAdd to ~/.zshrc:
eval "$(fnm env --use-on-cd --shell zsh)"Then install Node.js:
fnm install --lts
fnm default lts-latestInstall iTerm2: https://iterm2.com/downloads.html
Then install Shell Integration (enables inline image display in terminal):
curl -L https://iterm2.com/shell_integration/install_shell_integration_and_utilities.sh | bashNote: iTerm2 is the best terminal overall, but it has some rendering issues when used with Coding CLIs like Claude Code. If you are a heavy Claude Code user, consider using Kaku instead.
Kaku shortcuts:
| Shortcut | Action |
|---|---|
| ⌘ ⇧ P | Open command palette |
| ⌘ T | New tab |
| ⌘ 1 / 2 / 3... | Switch to tab by number |
| ⌘ D | Split pane to the right |
| ⌘ ⇧ D | Split pane below |
| ⌘ W | Close current pane |
Tip: In Kaku Settings, you can enable Confirm Tab Close and Confirm Pane Close (both off by default) to avoid accidentally closing tabs or panes.
Raycast is a launcher that replaces Spotlight. Among many other things, it lets you bind a global hotkey to any app so you can jump to it instantly from anywhere.
Install Raycast, then press ⌘ , to open Settings → Extensions → find an app → set its hotkey.
Karabiner-Elements handles the keyboard remapping layer. Caps Lock is otherwise a wasted key — Karabiner remaps it to a Hyper Key (⌃⇧⌥⌘ all at once), a combination nothing else uses, so it becomes a safe namespace for your own shortcuts. Install Karabiner-Elements, then remap Caps Lock to Hyper Key (⌃⇧⌥⌘).
Once both are set up, configure Raycast hotkeys:
- Caps + H → Chrome
- Caps + V → VSCode
- Caps + L → Lark
- Caps + O → Obsidian
- Caps + S → Superhuman
- Caps + M → Outlook
- ...
Install VSCode:
- Install VSCode
- Sign in with GitHub to sync settings
- Install Vim extension
- Install Markdown Preview GitHub extension
Install Typeless
Install Claude Code:
curl -fsSL https://claude.ai/install.sh | bashInstalling and configuring oh-my-zsh (with plugins, themes, etc.) is a bit tedious. Just let Claude Code handle it — ask it to install and set up oh-my-zsh for you.
Configure ~/.zshrc
⚠️ For reference only — adjust to your own needs.
alias pull="git pull"
alias gco="git checkout"
alias proxy="export https_proxy=http://127.0.0.1:6789 http_proxy=http://127.0.0.1:6789 all_proxy=socks5://127.0.0.1:6789 && echo '✅ proxy configured in current session'"
alias claude="proxy && claude --dangerously-skip-permissions"
alias zshconf="vim ~/.zshrc"
alias reloadzsh="source ~/.zshrc"Enable key repeat on long press:
defaults write -g ApplePressAndHoldEnabled -bool falseBy default macOS shows an accent picker on long press. This disables it so keys repeat instead (useful for Vim).
Install Snipaste
- Press F1 to take a screenshot (if it doesn't work, try Fn F1 — or adjust the F-key behavior in the Use F-Keys Without Holding Fn section).
- Click Pin to paste the screenshot onto the desktop.
- Drag a pinned image to reposition it;
- Double-click it to dismiss.
Install Ollama:
curl -fsSL https://ollama.com/install.sh | shInstall Mac Mouse Fix
macOS only lets you pick one scroll direction for everything. Mac Mouse Fix decouples the two: trackpad keeps its natural scroll direction, while the mouse wheel is reversed to match physical expectations.
In System Settings → Accessibility → Pointer Control → Trackpad Options, enable "Use trackpad for dragging" and set the dragging style to "Three-Finger Drag".
This lets you drag windows and select text by moving three fingers, without needing to click and hold.
In System Settings → Keyboard, enable "Use F1, F2, etc. keys as standard function keys".
By default, bare F-key presses trigger media controls (brightness, volume); you need Fn F1 to send a real function key. Flipping this setting reverses the behavior — F1 sends a real function key directly, and Fn F1 triggers media controls instead.