You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: My 2024 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, 2023 M3 Max 36 GB RAM 1TB HD) today. Here's everything I use on a Mac.
Previous versions of this post: from 2018-2020, 2021, 2022 and 2023. If I update this post in future, these contents will be archived but this URL will remain.
Scroll all the way to the bottom for lists and other Mac setup tools from friends!
New Mac Setup - Diffs i'm making this year
Usually I start these off with a from-scratch step by step procedure list, but because I am mostly replacing a lost laptop from last year, you can mostly follow my 2023 guide. However I am making a couple big changes this year, so I will start with the diffs, then go down to the from scratch guide.
ollama run llama3.2
ollama run HammerAI/llama2-tiefighter
ollama run vanilj/mistral-nemo-12b-celeste-v1.9
ollama run qwen2.5-coder:14b
ollama run hf.co/unsloth/DeepSeek-R1-Distill-Llama-8B-GGUF:Q8_0
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)
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)
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
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 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.
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.
fnm install 22 to install node
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
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
you also need to reassign the default music player for music files to QuickTime or VLC - the usual way of "Always Open With" never works, you have to do this: Select any MP3 file, Press "Command+i", Change "Open with:" to VLC, Click the "Change All…" button. Tada.
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.
title: My 2024 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, 2023 M3 Max 36 GB RAM 1TB HD) today. Here's everything I use on a Mac.
Scroll all the way to the bottom for lists and other Mac setup tools from friends!
New Mac Setup - Diffs i'm making this year
Usually I start these off with a from-scratch step by step procedure list, but because I am mostly replacing a lost laptop from last year, you can mostly follow my 2023 guide. However I am making a couple big changes this year, so I will start with the diffs, then go down to the from scratch guide.
Orion browser
This is the biggest change I'm making this year. I struggled with Arc browser all year and now it is dead. I still really like vertical tabs and foldered tabs and link previews, so I am now happily using Kagi's Orion: https://kagi.com/orion/
Other apps i am using by default now
https://texts.com/ <- only way to get unread twitter dms
uv
won Pythondon't install python the normal way. no conda, no brew python. use uv for python management.
(i am a small angel in Astral)
Raycast task manager
switched to raycast instead of alfred https://www.raycast.com/swyxio
AI app installations
(use https://huggingface.co/spaces/DontPlanToEnd/UGI-Leaderboard to decide other models to download, or https://www.reddit.com/r/LocalLLaMA/comments/1i8tx5z/i_benchmarked_almost_every_model_that_can_fit_in/)
also llama.vim from ggerganov
Other changes I am still evaluating
Failed changes
i tried fish shell. however, because most setups assume bash/zsh, this dooms you to a life time of translating readmes

life is too short for this.
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)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
and theni 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 apackages.txt
and 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
Setup Terminal
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
source ~/.zshrc
to load the zshrcgit config --global init.defaultBranch main
git config --global user.name "swyxio"
git config --global user.email YOUR@EMAIL.HERE
diff-so-fancy
git 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/agnoster
theme 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/gh
gh auth login
pyenv
and no more Anaconda for me. the new hotness isuv
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 futurepip install
useuv pip install
, oruv venv
instead ofvirtualenv
orpython -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 torchvision
fnm install 22
to install nodebrew install pnpm
earlier <- seems to be increasingly the normnpm login
npm config set loglevel="warn"
npm i -g undollar
for removing $npm install -g npm-check-updates
for updating depssudo npm install -g trash-cli
to add atrash
command to so you dont permanently delete filesbrew install yarn --ignore-dependencies
- yarn notebrew 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 zshrcpip3 install --user powerline-status
git clone <https://github.com/powerline/fonts> && cd fonts && ./install.sh
Setup Apps
I hate Docker Desktop so i am using "docker" without it
sudo curl -L https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-darwin-aarch64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
brew 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": true
Screenflow 11 download
Other good "new laptop setup" lists:
The text was updated successfully, but these errors were encountered: