title: My 2025 New Mac Setup
description: I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development.
tags: mac, tech
slug: new-mac-setup
category: note
canonical_url: https://www.swyx.io/new-mac-setup/
I set up my new Macbook Pro (14 inch, 2024 M4 Pro 24 GB RAM 500GB HD) today (i recommend more memory but this was not my choice). Here's everything I use on a Mac.
Previous versions of this post: from 2018-2020, 2021, 2022 and 2023 and 2024. If I update this post in future, these contents will be archived but this URL will remain.
Changes:
Raycast the super app
my goal is to replace as many small utilities i used to use, with raycast plugins
Raycast's founder has more here.
Claude maxxing
Windsurf
Beeper
other AI apps
non ai stuff
New Mac Setup - from scratch
Immediate first steps
- Browser: Arc Browser: I tried Kagi but too many apps are incompatible with Safari so RIP. set to default.
- IMMEDIATELY create a google meet, share screen, record screen (to get all permissions working so you dont have to restart browser later). can also do this via discord or zoom webapps - just start call share screen and get all the perms working ASAP)
- Log in to: (this helps with logins for the other services below)
- Twitter
- Github (more setup instructions below)
- Gmail
- Install Warp (my normal terminal of choice, good for AI generated commands, but memory hog)
Things that take a while to install
Get these going first so they can run in the background
- Install oh-my-ZSH -
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- Install Homebrew -
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" and then
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/swyx/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
i have a bunch more stuff in brew list but i'm not sure what i use actively. You can mass install these - dump them in a packages.txt and then brew install $(cat packages.txt)
aom icu4c@76 libvmaf python@3.13
aribb24 imath libvorbis qemu
brotli jpeg-turbo libvpx rabbitmq
ca-certificates jpeg-xl libx11 rav1e
cairo krb5 libxau readline
capstone lame libxcb rubberband
certifi leptonica libxdmcp sdl2
cjson libarchive libxext snappy
colima libass libxrender speex
dav1d libb2 lima sqlite
docker libbluray little-cms2 srt
docker-completion libdeflate lz4 svt-av1
dtc libevent lzo tesseract
elixir libidn2 m4 theora
erlang libmicrohttpd mbedtls unbound
ffmpeg libnghttp2 mpdecimal unixodbc
flac libogg mpg123 vde
fnm libpng ncurses webp
fontconfig librist nettle wxwidgets
freetype libsamplerate opencore-amr x264
frei0r libslirp openexr x265
fribidi libsndfile openjpeg xorgproto
gettext libsodium openssl@3 xvid
gh libsoxr opus xz
giflib libssh p11-kit yt-dlp
glib libtasn1 pango z
gmp libtiff pcre2 zeromq
gnutls libtool pipx zimg
graphite2 libunibreak pixman zstd
harfbuzz libunistring pnpm
highway libusb postgresql@14
honcho libvidstab python-packaging
flyctl
Either of these will prompt you to install Apple Command Line Tools - takes 15-25 minutes to download the damn thing so do this first. Don't run them in parallel.
OS/Browser Settings
- System Settings:
- Disable Spotlight search for all miscellaneous crap except apps and system preferences
- including stupid Developer option (make sure to add Xcode.app to /Applications not /user/swyx/Applications)
- the "touch xcode.app" trick failed recently for homebrew. fix is
xcode-select --install and sudo xcode-select -s /Library/Developer/CommandLineTools i think
- Disable Ask Siri
- Turn off autocorrect in Keyboard

- Set to Big cursor for accessibility during presentation
- Fix trackpad direction: Trackpad -> Scroll & Zoom - Natural off
- Disable dictionary lookup: Trackpad -> Point & Click -> Look up & data detectors off
- (if using windows keyboard) remap alt and cmd keys for ergonomics
- Finder settings:
- Settings → advanced -> show filename extensions
- When performing a search -> Search the Current Folder
- Enable showing dotfiles (just hold Cmd + Shift + . (dot) in a Finder window)
- Show path bar in footer for easier navigation (View -> Show Path Bar)
- Prune the excessive sidebar bookmarks
- create "Work" folder and pin it
- Settings -> general - New Finder Windows show -> Work
- Keyboard:
- MacOS Dock:
- Remove everything from the Dock except: Finder, System Preferences and Trash
- Turn Dock Auto Hiding on - to get more screen real estate for presentations
- turn this on for MacOS Menu bar as well
- Chrome extensions: (tied to Chrome account)
Setup Terminal
- Download, install, and set font - Inconsolata for Powerline and Meslo LG M for Powerline
- autosuggestions:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- syntax highlighting
- If you encounter warnings, you may need to chmod stuff or warnings show at start of every session
$ sudo chmod -R 755 /usr/local/share/zsh
$ sudo chown -R root:staff /usr/local/share/zsh
- Copy my dotfiles (vimrc, zshrc, .gitignore_global): https://gist.github.com/swyxio/7fa1009e460ecb818d5e6d9ca4616a05
- source ~/.zshrc to load the zshrc
- You installed zsh above ZSH, now set up the rest
git config --global init.defaultBranch main
git config --global user.name "swyxio"
git config --global user.email YOUR@EMAIL.HERE
- once you have installed
diff-so-fancy
- set
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX" - makes for much nicer git diff
- You can also diff with this bash function
dif() { git diff --color --no-index "$1" "$2" | diff-so-fancy; } or with VSCode code --diff file1.js file2.js.
- You can also try https://github.com/dandavison/delta
- customize the
/.oh-my-zsh/themes/agnoster theme from dotfiles
- set font for Warp: https://warp.dev/
- only settings I really need to make are setting the font to "Inconsolata for Powerline" - which I downloaded above.
Set up apps/environments
You should have already installed a bunch of stuff with Homebrew as per above. Below I will list other stuff that you may wish to use:
- Github CLI:
brew install github/gh/gh
- you need to login to git - if you have 2fa enabled, you cant use your normal github password. try pushing to any random repo and enter in a Personal Access Token for password.
- then run
gh auth login
- add GitHub SSH key (not optional)
- Python: no more
pyenv and no more Anaconda for me. the new hotness is uv from Astral. it's a replacement for pip, virtualenv, pyenv, poetry, etc. very new but not a ton of personal experience and intend to try next time. pip install uv, then instead of future pip install use uv pip install, or uv venv instead of virtualenv or python -m venv. much faster and interchangeable with other tools... but still may have minor dependency resolution issues particularly for old projects.
- pyenv virtualenv needs some zshrc setup, or else get
Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly. errors, which i fixed with this.
- install pytorch:
pip3 install torch torchvision
- Setup Node.js/NPM using - you should already have fnm (a faster alternative to nvm) from the Homebrew install done above so no separate download needed.
- todo: try mise instead of nvm which handles multi lang fnm curl https://mise.run | sh
fnm install 24 to install node 24
- we did
brew install pnpm earlier <- seems to be increasingly the norm
npm login
npm config set loglevel="warn"
npm i -g undollar for removing $
npm install -g npm-check-updates for updating deps
sudo npm install -g trash-cli to add a trash command to so you dont permanently delete files
- Used to recommend yarn. now
brew install pnpm as fast node package manager
- you may need to work around Mac OS Sierra
brew install z - doesnt work out of the box exactly - see my issue on the rupa/z repo - homebrew changed the default install path of the z.sh script so just make sure you are pointing to the right new path - . /opt/homebrew/etc/profile.d/z.sh in your zshrc
- Misc - stuff i used to install and maybe dont need anymore
pip3 install --user powerline-status
- go to a neutral folder and
git clone <https://github.com/powerline/fonts> && cd fonts && ./install.sh
Setup Apps
Other good "new laptop setup" lists:
title: My 2025 New Mac Setup
description: I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development.
tags: mac, tech
slug: new-mac-setup
category: note
canonical_url: https://www.swyx.io/new-mac-setup/
I set up my new Macbook Pro (14 inch, 2024 M4 Pro 24 GB RAM 500GB HD) today (i recommend more memory but this was not my choice). Here's everything I use on a Mac.
Changes:
Raycast the super app
my goal is to replace as many small utilities i used to use, with raycast plugins
Raycast's founder has more here.
Claude maxxing
Windsurf
Beeper
other AI apps
non ai stuff
New Mac Setup - from scratch
Immediate first steps
Things that take a while to install
Get these going first so they can run in the background
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"curl -sS https://starship.rs/install.sh | sh/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"and theni have a bunch more stuff in
brew listbut i'm not sure what i use actively. You can mass install these - dump them in apackages.txtand thenbrew install $(cat packages.txt)Either of these will prompt you to install Apple Command Line Tools - takes 15-25 minutes to download the damn thing so do this first. Don't run them in parallel.
OS/Browser Settings
xcode-select --installandsudo xcode-select -s /Library/Developer/CommandLineToolsi thinkSetup Terminal
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions-
source ~/.zshrcto load the zshrcgit config --global init.defaultBranch maingit config --global user.name "swyxio"git config --global user.email YOUR@EMAIL.HEREdiff-so-fancygit config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"- makes for much nicer git diffdif() { git diff --color --no-index "$1" "$2" | diff-so-fancy; }or with VSCodecode --diff file1.js file2.js./.oh-my-zsh/themes/agnostertheme from dotfilesSet up apps/environments
You should have already installed a bunch of stuff with Homebrew as per above. Below I will list other stuff that you may wish to use:
brew install github/gh/ghgh auth loginpyenvand no more Anaconda for me. the new hotness isuvfrom Astral. it's a replacement for pip, virtualenv, pyenv, poetry, etc. very new but not a ton of personal experience and intend to try next time.pip install uv, then instead of futurepip installuseuv pip install, oruv venvinstead ofvirtualenvorpython -m venv. much faster and interchangeable with other tools... but still may have minor dependency resolution issues particularly for old projects.Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly.errors, which i fixed with this.pip3 install torch torchvisionfnm install 24to install node 24brew install pnpmearlier <- seems to be increasingly the normnpm loginnpm config set loglevel="warn"npm i -g undollarfor removing $npm install -g npm-check-updatesfor updating depssudo npm install -g trash-clito add atrashcommand to so you dont permanently delete filesbrew install pnpmas fast node package managerbrew install z- doesnt work out of the box exactly - see my issue on the rupa/z repo - homebrew changed the default install path of the z.sh script so just make sure you are pointing to the right new path -. /opt/homebrew/etc/profile.d/z.shin your zshrcpip3 install --user powerline-statusgit clone <https://github.com/powerline/fonts> && cd fonts && ./install.shSetup Apps
I hate Docker Desktop so i am using "docker" without it - Colima - though podman is up and coming
sudo curl -L https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-darwin-aarch64 -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composebrew install --cask notunes- so that you dont launch itunes/apple musicSelect any MP3 file, Press "Command+i", Change "Open with:" to VLC, Click the "Change All…" button. Tada.download Audacity - and install ffmpeg for audacity - the instructions are intentionally opaque - just go to https://lame.buanzo.org/#lameosx64bitdl and download and run the pkg - Audacity will detect it from there
Emojis: I used to use https://matthewpalmer.net/rocket/ but now I just use the naive Mac emoji picker (hit Fn key)
Privacy unfucker: Pure Paste from Sindre Sorhus
Password Manager: I use both 1password and lastpass depending on contexts
Window Manager: https://rectangleapp.com/ (there's mild history w/ spectacle/magnet but they're basically the same thingz. 2024: try https://github.com/MrKai77/Loop open source)
Screenshots: https://shottr.cc/ (shottr does OCR, but you may like a dedicated OCR utility)
Superhuman for Mac and https://mail.superhuman.com
Clipboard Manager: I now just use the one that comes with Alfred since I bought a lifetime upgrade a while ago. has good search and images, and can add snippets.
App Quitter: https://swiftquit.com/ (Close Mac Applications Automatically When Their Windows Close)
Loom: https://www.loom.com/desktop
Zoom: https://zoom.us/download
Caffeine (Keep Mac awake for talks): https://intelliscapesolutions.com/apps/caffeine
QuickShade (mac app controlled brightness)
NoTunes - disable itunes/apple music
Descript: https://www.descript.com/download/mac
Stuff I no longer use often but will bring in when i have the need
Chat: Slack and Discord
Note taking:
- Obsidian and set it up as mentioned in my post on Obsidian as a Second Brain
- Microsoft Todo: https://apps.apple.com/app/apple-store/id1274495053?mt=8
- SimpleNote: https://apps.apple.com/us/app/simplenote/id692867256?ls=1&mt=12
- Notion: https://www.notion.so/desktop
- https://chrome.google.com/webstore/detail/notion-web-clipper/knheggckgoiihginacbkhaalnibhilkk?hl=en
Stretchly: https://hovancik.net/stretchly/
Editor: Download Cursor use Settings Sync to sync across machines
"editor.bracketPairColorization.enabled": trueScreenflow 11 download
Other good "new laptop setup" lists: