A modern macOS development environment setup script based on thoughtbot's laptop with customizations for contemporary development workflows.
- Cross-platform compatibility: Supports both Intel and Apple Silicon Macs
- Modern toolchain: Includes Bun, Deno, and other contemporary development tools
- Mobile development: Pre-configured for React Native and iOS development
- Version management: Uses asdf for managing multiple language versions
- Shell enhancements: Includes zsh with autosuggestions and Starship prompt
- Git, Vim, tmux, and essential Unix utilities
- Homebrew package manager
- asdf version manager with Ruby and Node.js
- Zsh with autosuggestions and Starship prompt
- Latest Ruby with Bundler configuration
- Latest Node.js with global npm packages
- Bun and Deno JavaScript runtimes
- Maestro for mobile app testing
- CocoaPods and Fastlane gems
- EAS CLI for Expo development
- iOS Simulator location utilities
- OrbStack (Docker alternative)
- Eloston Chromium
- BetterDisplay
- GitHub CLI
- Supabase CLI
- Vercel CLI
- Biome (code formatter/linter)
- rclone (cloud storage sync)
- macOS (Intel or Apple Silicon)
- Administrator access (for some installations)
-
Download and run the script:
curl --remote-name https://raw.githubusercontent.com/[your-username]/[your-repo]/main/mac sh mac 2>&1 | tee ~/laptop.log
-
Or clone the repository:
git clone https://github.com/[your-username]/[your-repo].git cd [your-repo] sh mac 2>&1 | tee ~/laptop.log
-
For local development (symlink method):
# Clone to your development directory git clone https://github.com/[your-username]/[your-repo].git ~/Development/laptop # Create a symlink in your home directory ln -sf ~/Development/laptop/mac ~/mac # Now you can run from anywhere sh ~/mac 2>&1 | tee ~/laptop.log
The script will:
- Install Rosetta 2 (on Apple Silicon Macs)
- Install and configure Homebrew
- Install development tools and applications
- Set up asdf version manager
- Install latest Ruby and Node.js versions
- Configure shell enhancements
- Install mobile development tools
Note: The script may prompt for your password during installation of certain components. All output will be logged to ~/laptop.log for troubleshooting.
Create a ~/.laptop.local file to add your own customizations that will run after the main script:
#!/bin/sh
# Example local customizations
brew install --cask your-favorite-app
gem install your-favorite-gem
npm install -g your-favorite-packageFeel free to fork this repository and modify the mac script to suit your needs. The script is well-commented and organized into logical sections.
After the script completes:
- Restart your terminal or run
source ~/.zshrcto apply shell changes - Check the log file at
~/laptop.logfor any issues or warnings - Verify installations by checking versions:
ruby --version node --version brew --version
- Permission errors: Ensure you have administrator access
- Network issues: Check your internet connection for downloads
- Homebrew conflicts: The script handles most common Homebrew issues automatically
- Installation failures: Check
~/laptop.logfor detailed error messages
- Check the original thoughtbot/laptop issues for common problems
- Review the
~/laptop.logfile for specific error messages - Ensure your macOS is up to date
This script is based on and inspired by thoughtbot's laptop, with modifications for modern development workflows and additional tools for mobile development.
This project maintains the same license as the original thoughtbot/laptop repository.