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:
curl -fsSL openboot.dev/install.sh | bashPick 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.
Brewfiles are manual YAML editing. Nix has a brutal learning curve. Shell scripts break silently. Dotfile repos become unmaintainable after six months.
OpenBoot is the first tool that handles everything — packages, dotfiles, shell config, macOS preferences, git identity — in an interactive TUI you can actually navigate. No config files to learn. No YAML to write. Just pick what you need and go.
curl -fsSL openboot.dev/install.sh | bashWorks on a fresh Mac — installs Homebrew, Xcode CLI tools, and everything else automatically.
Want to inspect the script first?
curl -fsSL openboot.dev/install.sh -o install.sh
cat install.sh
bash install.shAlready have Homebrew?
brew install openbootdotdev/tap/openboot
openboot| OpenBoot | Brewfile | chezmoi | nix-darwin | |
|---|---|---|---|---|
| Interactive package picker | TUI | manual edit | — | — |
| Web dashboard | openboot.dev | — | — | — |
| Shareable install URL | openboot install myalias |
— | — | — |
| 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
- Snapshot — Capture everything and save/publish to share with another Mac
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 →
New hire runs one command, gets the same environment as everyone else. Guide →
curl -fsSL openboot.dev/yourteam/frontend | bashMake your config on the dashboard, put the one-liner in your onboarding docs. When your stack changes, update the config — the install command stays the same.
CI / Automation
OPENBOOT_GIT_NAME="Your Name" \
OPENBOOT_GIT_EMAIL="you@example.com" \
curl -fsSL openboot.dev/install.sh | bash -s -- --preset developer --silentAll Commands
openboot # Resume last sync (or interactive if none)
openboot install # Same as above, explicit
openboot install alice/dev-setup # Install from a cloud config
openboot install ./backup.json # Install from a local file
openboot install -p developer # Install a built-in preset
openboot install --dry-run # Preview without installing
openboot snapshot # Capture (interactive menu in terminal)
openboot snapshot --local # Save to ~/.openboot/snapshot.json
openboot snapshot --publish # Upload to openboot.dev
openboot snapshot --import FILE # Restore from a snapshot file
openboot login / logout # openboot.dev auth
openboot version # Print versionRemoved in v1.0: pull, push, diff, clean, log, restore, init, setup-agent, doctor, update. See CHANGELOG.md for migration.
CLI Options
-p, --preset NAME Set preset (minimal, developer, full)
-u, --user NAME Use alias or openboot.dev username/slug config
--from FILE Install from a local config or snapshot JSON file
-s, --silent Non-interactive mode (requires env vars)
--dry-run Preview what would be installed
--packages-only Install packages only, skip system config
--update Update Homebrew before installing
--shell MODE Shell setup: install, skip
--macos MODE macOS prefs: configure, skip
--dotfiles MODE Dotfiles: clone, link, skip
--post-install MODE Post-install script: skip
--allow-post-install Allow post-install scripts in silent mode
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 |
Config alias or username/slug |
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
