Skip to content

phantompunk/machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine

Inspired by Thoughtbot/Laptop

Automate your macOS development environment setup with a single script. Machine installs Homebrew packages, configures system settings, and sets up essential development tools.

Overview

This script will:

  • Install Homebrew and packages from Brewfile
  • Set Fish shell as your default shell
  • Configure macOS settings (tap to click, Caps Lock to Escape, etc.)
  • Install App Store applications
  • Set up Go workspace directories
  • Install Deno runtime

Prerequisites

Before running the script:

  1. Install Xcode Command Line Tools (required for Homebrew):

    sudo softwareupdate -i -a
    xcode-select --install
  2. Install Git (required to clone this repository):

    • Git should be available after installing Xcode Command Line Tools
    • Verify with: git --version

Installation

  1. Clone the repository:

    git clone https://github.com/phantompunk/machine.git
    cd machine
  2. Review the script (recommended):

    less machine
    less Brewfile

    Warning: This script will make system-level changes. Review and customize Brewfile and the machine script before running.

  3. Run the script:

    sh machine 2>&1 | tee ~/machine.log
  4. Review the installation log (optional):

    less ~/machine.log

What Gets Installed

Shell & Core Tools

  • Fish Shell - User-friendly shell with autosuggestions (set as default)
  • Homebrew - Package manager for macOS

CLI Utilities

  • bat - Modern cat with syntax highlighting
  • eza - Modern ls replacement
  • fzf - Fuzzy finder
  • ripgrep - Fast recursive search
  • fd - Fast find alternative
  • zoxide - Smarter cd command
  • tldr - Simplified man pages

Development Tools

Programming Languages & Runtimes

  • Node.js - JavaScript runtime
  • Go - Go programming language
  • Python 3.10 - Python runtime
  • Pyenv - Python version manager
  • Rust - Rust programming language
  • Deno - Modern JavaScript/TypeScript runtime

Python Tools

Go Tools

Data & File Processing

Docker & Kubernetes

  • Colima - Container runtime (Docker Desktop alternative)
  • Docker - Container management
  • docker-compose - Multi-container applications
  • kubernetes-cli - Kubernetes management (kubectl)
  • k9s - Terminal UI for Kubernetes
  • helm - Kubernetes package manager
  • kind - Kubernetes in Docker
  • minikube - Local Kubernetes
  • kubectx - Context/namespace switcher
  • kubeseal - Encrypted Kubernetes secrets
  • eksctl - AWS EKS management

Infrastructure & DevOps

Database Tools

Documentation & Writing

  • Hugo - Static site generator

Utilities

  • wget - Network downloader
  • mas - Mac App Store CLI
  • shellcheck - Shell script linter
  • vegeta - HTTP load testing
  • vhs - Terminal recording
  • mods - AI for the command line
  • Tailscale - VPN mesh networking
  • exercism - Coding practice platform CLI
  • tdl - Three Dots Labs CLI

Desktop Applications

Mac App Store Applications

macOS Settings Applied

  • Enable tap to click on trackpad
  • Enable secondary click on mouse
  • Remap Caps Lock to Escape
  • Disable special characters on key press and hold

Customization

Modify Installed Packages

Edit Brewfile to add or remove packages:

# Add a brew formula
brew "package-name"

# Add a cask application
cask "app-name"

# Add a Mac App Store app
mas "App Name", id: 123456789

Modify System Settings

Edit the machine script to change macOS configuration (lines 79-89).

Post-Installation

After running the script:

  1. Configure Fish shell:

    # Add Homebrew to Fish path
    fish_add_path /opt/homebrew/bin
  2. Set up SSH key (for GitHub):

  3. Set up GPG key (for signed commits):

  4. Restart your terminal or open a new tab to use Fish shell

Troubleshooting

Homebrew Installation Fails

  • Ensure Xcode Command Line Tools are installed: xcode-select --print-path
  • Check for errors in ~/machine.log

Fish Shell Not Set as Default

  • Manually add Fish to /etc/shells: echo $(which fish) | sudo tee -a /etc/shells
  • Change shell: chsh -s $(which fish)

App Store Installations Fail

  • Ensure you're signed into the Mac App Store
  • Run mas signin your@email.com before running the script

Permission Errors

  • Some operations require admin privileges
  • The script will prompt for your password when needed

About

Developer setup script for macOS and Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors