This repository is intentionally phase-based so you can run only what you want, in the order you want.
Purpose: Confirm the machine is macOS, report architecture, and check for Xcode Command Line Tools.
Verify:
./bin/bootstrap 0
xcode-select -p
sw_vers
uname -mRollback:
No rollback is required. This phase only reads system state.
Purpose: Apply a small set of developer-friendly macOS defaults for screenshots and Finder visibility.
Verify:
./bin/bootstrap 1
defaults read com.apple.screencapture location
defaults read NSGlobalDomain AppleShowAllExtensions
defaults read com.apple.finder AppleShowAllFiles
defaults read com.apple.finder _FXSortFoldersFirstRollback:
- Restore the screenshot directory with
defaults write com.apple.screencapture location <old-path>. - Disable Finder visibility settings with
defaults write ... -bool falsefor the keys above. - Restart Finder or SystemUIServer after changing values.
Purpose: Install Homebrew if needed, sync packages from Brewfile, and keep shell setup idempotent.
Verify:
./bin/bootstrap 2
brew --version
brew bundle check --file ./BrewfileRollback:
- Remove individual packages with
brew uninstall <formula>orbrew uninstall --cask <cask>. - Remove Homebrew entirely only if you intend to reset the machine's package manager state.
- Remove the added
brew shellenvline from~/.zprofileif you no longer want Homebrew on PATH.
Purpose: Set global Git defaults, confirm GitHub CLI and VS Code availability, install VS Code extensions, and create project directories.
Verify:
./bin/bootstrap 3
git config --global --get user.name
git config --global --get user.email
gh auth status
code --list-extensions
ls "$HOME/projects"Rollback:
- Unset Git config keys with
git config --global --unset <key>. - Remove project directories manually if you created them only for this bootstrap.
- Uninstall VS Code extensions with
code --uninstall-extension <publisher.extension>.
Purpose: Start or reuse a Colima runtime, validate Docker, and check for Compose support.
Verify:
./bin/bootstrap 4
colima status
docker version
docker run --rm hello-world
docker compose versionRollback:
- Stop Colima with
colima stop. - Delete the Colima VM with
colima deleteonly if you explicitly want to remove its disk image. - Uninstall Docker or Compose packages with Homebrew if they are no longer needed.
Purpose: Install the configured Python version with pyenv, optionally switch the global version, and configure Poetry.
Verify:
./bin/bootstrap 5
pyenv versions
pyenv global
pyenv exec python --version
poetry config --list | grep virtualenvs.in-projectRollback:
- Reset the selected version with
pyenv global systemor another installed version. - Remove an installed Python with
pyenv uninstall <version>. - Reset Poetry config with
poetry config --unset virtualenvs.in-project.
Purpose: Ensure Ollama is available, optionally start the background service, and pull the configured model list.
Verify:
./bin/bootstrap 6
ollama list
pgrep -x ollama || trueRollback:
- Stop the background service with
pkill ollama. - Remove models with
ollama rm <model>. - Disable auto-start or remove models in config if you do not want local model pulls.
Purpose: Run a non-destructive tool presence audit and report whether optional yq parsing is available.
Verify:
./bin/bootstrap 99
make verifyRollback:
No rollback is required. This phase only reports system state.