Setting up a new Mac shouldn't take two hours of your weekend.
You know the drill. New Mac, same two-hour ritual:
brew install git node go python rust docker kubectl terraform
brew install --cask visual-studio-code docker iterm2 chrome slack figma
npm install -g typescript eslint prettier
# dig through old laptop for .zshrc
# re-configure git identity
# tweak macOS settings one by one
# two hours later, still missing somethingHere's the alternative:
brew install openbootdotdev/tap/openboot
openbootPick what you need in a terminal UI. Takes minutes. Or snapshot your current Mac and share it—your whole team gets the same setup with one command.
No tracking. No telemetry. Just works.
brew install openbootdotdev/tap/openboot
openbootAlternative: one-line installer
curl -fsSL openboot.dev/install.sh | bashBrewfiles are manual YAML editing. Nix has a brutal learning curve. Dotfile repos become unmaintainable after six months.
I wanted something simple: a visual way to pick packages, a dashboard to manage configs without touching files, and URLs you can share. One command, same environment for everyone on your team.
| OpenBoot | Brewfile | chezmoi | nix-darwin | |
|---|---|---|---|---|
| Interactive package picker | TUI | manual edit | — | — |
| Web dashboard | openboot.dev | — | — | — |
| Shareable install URL | openboot -u you |
— | — | — |
| Snapshot & restore | full environment | — | dotfiles only | full (steep curve) |
| Learning curve | Low | Low | High | Very High |
- Homebrew packages & apps — Installs Docker, VS Code, Chrome, whatever you need
- Dotfiles — Clone your repo and symlink with GNU Stow, or skip it
- Shell config — Sets up Oh-My-Zsh with useful aliases
- macOS settings — Developer-friendly defaults for Dock, Finder, keyboard
- Git setup — Asks for your name and email, configures git
- Smart about duplicates — Detects what's already installed, skips it
- Clean command — Remove packages that drifted from your config
- Full restore — Snapshots save everything: packages, git config, shell theme, plugins
openboot.dev — if you'd rather click than type commands.
- Visual builder — Pick packages with checkboxes instead of editing YAML
- Brewfile import — Already have a Brewfile? Drop it in, it maps automatically
- Shareable links — Every config gets a URL:
openboot.dev/yourname/my-setup - Team configs — Share one link, everyone gets the same environment
Three starting points. Pick one, adjust in the TUI. Full list →
| Preset | What's In It |
|---|---|
| minimal | CLI tools: ripgrep, fd, bat, fzf, lazygit, gh, Warp, Raycast, Rectangle |
| developer | Minimal + Node, Go, Docker, VS Code, Chrome, OrbStack, TablePlus |
| full | Developer + Python, Rust, kubectl, Terraform, Ollama, Cursor, Figma |
Most people start with developer and uncheck what they don't need.
Already have a Mac set up the way you like? Save it.
openboot snapshotThis captures everything: Homebrew packages, macOS settings, shell config, git identity. Upload it to openboot.dev for a shareable URL, or save it locally with --local.
When you restore a snapshot, you get everything back exactly as it was. Docs →
Installed too much? Clean up what's not in your config.
openboot clean # Compare against local snapshot
openboot clean --user yourname # Compare against cloud config
openboot clean --from my-setup.json # Compare against a snapshot file
openboot clean --dry-run # See what would be removedNew hire runs one command, gets the same environment as everyone else. Guide →
brew install openbootdotdev/tap/openboot
openboot --user yourteam/frontendMake your config on the dashboard, put this in your onboarding docs. When your stack changes, update the config. The install command stays the same.
CI / Automation
brew install openbootdotdev/tap/openboot
OPENBOOT_GIT_NAME="Your Name" \
OPENBOOT_GIT_EMAIL="you@example.com" \
openboot --preset developer --silentOr with the one-line installer:
OPENBOOT_GIT_NAME="Your Name" \
OPENBOOT_GIT_EMAIL="you@example.com" \
curl -fsSL openboot.dev/install.sh | bash -s -- --preset developer --silentAll Commands
openboot # Interactive setup
openboot snapshot # Capture your current setup
openboot clean # Remove packages not in your config
openboot doctor # Check system health
openboot update # Update Homebrew and packages
openboot update --dry-run # Preview updates
openboot version # Print versionCLI Options
-p, --preset NAME Set preset (minimal, developer, full)
-u, --user NAME Use remote config from openboot.dev
-s, --silent Non-interactive mode (requires env vars)
--dry-run Preview what would be installed
--update Update Homebrew and packages
--rollback Restore backed up files
--resume Resume incomplete installation
--shell MODE Shell setup: install, skip
--macos MODE macOS prefs: configure, skip
--dotfiles MODE Dotfiles: clone, link, skip
Environment Variables
| Variable | Description |
|---|---|
OPENBOOT_GIT_NAME |
Git user name (required in silent mode) |
OPENBOOT_GIT_EMAIL |
Git user email (required in silent mode) |
OPENBOOT_PRESET |
Default preset |
OPENBOOT_USER |
Remote config username |
Do I need anything installed first?
macOS 12.0 or newer. Homebrew if you have it, but the installer will get it for you if not.
What if I already have some of these tools?
It checks what's installed and skips anything you already have.
Is my data tracked?
No. No telemetry, no analytics. Code is open source, check for yourself.
📖 openboot.dev/docs — Quick Start · Presets · Snapshot · Custom Configs · Teams
Bug reports and feature requests: open an issue. Pull requests welcome.
Development Setup
git clone https://github.com/openbootdotdev/openboot.git
cd openboot
go build -o openboot ./cmd/openboot
./openboot --dry-runopenboot.dev · Dashboard · Docs · Dotfiles template
License: MIT
