This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Ernest Chiang's personal dotfiles for macOS development environment setup. Manages shell configuration, package installation, and application settings synchronization through symlinks from ~/.dotfiles/ to home directory.
Run scripts in this order for a new machine:
source ~/.dotfiles/scripts/init-macos.sh # Bootstrap Oh My Zsh, create ~/.nvm
source ~/.dotfiles/scripts/setup-macos.sh # Apply macOS system defaults
source ~/.dotfiles/scripts/setup-symlinks.sh # Create dotfile symlinks to ~
source ~/.dotfiles/scripts/setup-brew.sh # Install Homebrew packages
source ~/.dotfiles/scripts/setup-zsh.sh # Install Powerlevel10k theme
source ~/.dotfiles/scripts/setup-python.sh # Setup pyenv.zprofile: Login shell - PATH setup, environment variables, version manager initialization (jenv, pyenv, nvm).zshrc: Interactive shell - Oh My Zsh, plugins (git, autojump), Powerlevel10k theme, functions, aliases
- Detects Intel (
x86_64) vs Apple Silicon (arm64) at runtime - Different Homebrew paths:
/usr/local(Intel) vs/opt/homebrew(Apple Silicon)
scripts/setup-symlinks.sh links these files from ~/.dotfiles/ to ~:
- Shell:
.zshrc,.zprofile,.aliases,.aliases.local,.p10k.zsh - Git:
.gitconfig,.gitconfig.local,.gitignore_global,.git-commit-template - Vim:
.vimrc+ Vundle plugins - Mackup:
.mackup.cfg
scripts/lib.sh provides colored output functions used by other scripts:
info(),user(),success(),fail()
scripts/setup-macos.shline 28-31: Set computer name before running.gitconfig.local: Personal git name/email (use.gitconfig.local.exampleas template).aliases.local: Personal aliases (use.aliases.local.exampleas template)
- GPG commit signing enabled by default
- Signing key:
497E3F5132703CDB749908C8C9CEFB07A1878177 - Default branch:
main - Includes:
.gitconfig.localfor sensitive/personal config
- pyenv: Python versions
- jenv: Java versions
- nvm: Node.js versions (loaded async via zsh-async for faster shell startup)
.mackup.cfg syncs 20+ app configurations via Dropbox, including VS Code, Sublime Text, AWS, Docker, SSH.