Minimal macOS dotfiles managed with GNU Stow.
claude/for Claude Code global configuration (CLAUDE.md,settings.json)codex/for Codex CLI configuration (AGENTS.mdβ symlink toCLAUDE.md)zsh/for shell configurationBrewfilefor package reproducibilitymacos-defaults.shfor common macOS preferences
Machine-specific secrets stay outside the repo:
~/.zshrc.local
Required:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install stowOptional but recommended:
brew bundle --file Brewfile
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"The shell config is defensive now, so missing optional tools will not break shell startup.
./install.sh
source ~/.zshrcWhat install.sh does:
- stows tracked packages into
$HOME - detects recursive conflicts before linking
- backs up replaced files to
~/.dotfiles-backups/<timestamp>/ - creates
~/.zshrc.localwhen missing
Install packages from the tracked Homebrew bundle:
brew bundle --file BrewfileReview the script first, then run it manually if you want those defaults:
chmod +x macos-defaults.sh
./macos-defaults.shExample ~/.zshrc.local:
export GITHUB_TOKEN="your_token_here"
export OPENAI_API_KEY="your_key_here"dotfiles/
βββ Brewfile
βββ claude/
β βββ .claude/
β βββ CLAUDE.md
β βββ settings.json
βββ codex/
β βββ .codex/
β βββ AGENTS.md -> ../../claude/.claude/CLAUDE.md
βββ install.sh
βββ macos-defaults.sh
βββ zsh/
β βββ .zshrc
β βββ .zshrc.local.example
βββ README.md