MacOS Dev Setup
colosieve
MacOS 26 Tahoe
Upgraded to MacOS 26 Tahoe—the latest release brings:
- Enhanced performance
- Security patches
- Improved developer tooling integration
Homebrew
Installed Homebrew, the de facto package manager for macOS:
- Think of it as
apt
oryum
for Mac - Streamlines installing, updating, and managing open-source software
- No more wrestling DMG files
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Node via Homebrew
Set up Node.js using Homebrew with nvm (Node Version Manager):
- Allows switching between Node versions per project
- No version conflicts across different codebases
brew install nvm
Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
Then source it and install Node:
source ~/.zshrc
nvm install --lts
nvm use --lts
What is LTS?
LTS = Long-Term Support
Node.js releases designated as LTS receive:
- Critical bug fixes for 30 months
- Security patches for 36 months
- Stable APIs—no breaking changes
Production apps should always use LTS versions. Current LTS releases use even-numbered major versions (18.x, 20.x, 22.x).
Other software with LTS:
- Ubuntu Linux (e.g., 22.04 LTS, 24.04 LTS) — 5 years support
- Java (e.g., Java 11, 17, 21) — years of updates
- Python (e.g., 3.9, 3.10, 3.11) — bug fixes and security patches
GitHub Account
Created a GitHub account—essential infrastructure for modern development:
- Host repositories
- Collaborate via pull requests
- Integrate with CI/CD pipelines
Git SSH Credentials
Set up SSH key authentication for GitHub:
$ ssh-keygen -t ed25519 -C "your_email@example.com"
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3Nza...9GKJl your_email@example.com
# ^ Copy this entire line to GitHub
Add the public key to GitHub: Settings → SSH and GPG keys → New SSH key
After setup, you can clone repositories directly:
$ git clone git@github.com:username/repo.git
VS Code
Installed Visual Studio Code—Microsoft’s lightweight, extensible editor:
- Built-in Git support
- IntelliSense code completion
- Integrated debugging
- Massive extension marketplace
brew install --cask visual-studio-code
Copilot in VS Code
Configured GitHub Copilot in VS Code—Microsoft’s catch-all AI brand:
- Tab completion for code
- AI-assisted coding suggestions
- In the VS Code context: inline code generation
Claude Code
Installed Claude Code—Anthropic’s CLI tool powered by Claude AI:
- Interactive coding assistance
- Codebase understanding
- Automated refactoring
- Works directly from the terminal
npm install -g @anthropic-ai/claude-code
OpenCode.ai
Set up OpenCode.ai—an open-source alternative to commercial AI coding tools:
- Code generation and refactoring
- Intelligent suggestions
- Code explanations
- Still needs some love and development
npm i -g opencode-ai
Ghostty
Installed Ghostty, a fast, native terminal emulator built in Zig:
- GPU-accelerated rendering
- Minimal latency
- Native macOS integration
- Designed for performance-conscious developers
brew install --cask ghostty
Nerd Fonts
Installed JetBrains Mono Nerd Font—currently the most popular choice among developers:
- Excellent readability
- Ligature support
- Thousands of glyphs for icons
- Works in terminal prompts and editors
brew install --cask font-jetbrains-mono-nerd-font
What is a “Terminal”?
A terminal (or terminal emulator) is a text-based interface to the operating system shell.
Historical context:
- Physical hardware (teletypes, VT100s) connecting to mainframes
For developers, terminals provide:
- Direct access to system commands
- Shell scripting and automation
- Remote server management via SSH
- Version control operations (Git)
- Build tools and package managers
Starship Prompt
Installed Starship—makes your terminal prompt nice and clean.
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
Unix/BSD/Linux and MacOS
Unix (1969): Original operating system from Bell Labs—introduced hierarchical filesystem, pipes, and shell scripting.
BSD (Berkeley Software Distribution): Unix variant developed at UC Berkeley—introduced TCP/IP networking, virtual memory, and the C shell.
Linux (1991): Unix-like kernel by Linus Torvalds—open source, powers servers, Android, embedded systems.
macOS: Built on Darwin, which derives from BSD and the Mach microkernel. macOS is POSIX-compliant and UNIX 03 certified—shares common utilities (ls
, grep
, ssh
) with Linux/BSD but uses Apple frameworks (Cocoa, Metal) for the GUI layer.
In practice: macOS gives you a Unix foundation with commercial polish—familiar CLI tools, package managers like Homebrew, but filesystem layout and some utilities differ from Linux (e.g., sed
and grep
behavior).
Next Topics
Coming up in future sessions:
- Crash course on shell
- Crash course on git
- Crash course on web developing