Provisioning scripts and dotfiles to set up a macOS development environment from scratch.
bash <(curl -L git.io/JMmQ0)
It configures git and an SSH key, clones this repository into
~/ghq/github.com/fujikky/macos-provisioning, then runs scripts/install.sh.
| Path | Description |
|---|---|
install |
Entry point for a new machine |
scripts/install.sh |
Installs Homebrew and runs each setup script in order |
Brewfile |
Homebrew taps, formulae and casks installed by brew bundle |
scripts/create_dotfiles.sh |
Symlinks dotfiles/ into the home directory |
scripts/setup_macos.sh |
Applies macOS preferences (keyboard, trackpad, Dock) |
scripts/setup_claude.sh |
Places the Claude Code settings |
dotfiles/ |
Config files linked into the home directory |
dotfiles/ is linked per directory, so files added after linking show up in this
repository too. Only ~/.config/gh, where credentials live alongside the config,
is linked per file.
scripts/setup_claude.sh places what is under dotfiles/.claude/.
CLAUDE.mdandhooks/are symlinked, so editing them updates this repositorysettings.jsonis generated by mergingsettings.base.jsoninto the local settings, because Claude Code rewrites keys such asenabledPluginsitself.$HOMEis expanded when the script runs
Generated files under ~/.claude (cache, projects, history.jsonl) are not
synced, and neither is the machine-local ~/.claude/settings.local.json.
- macOS system settings that
setup_macos.shdoes not cover gh auth login- Signing in to each app (1Password, Slack, browsers, ...)