https://github.com/openbootdotdev/openboot
Set up your Mac dev environment in one command — CLI + Web Dashboard + Team sharing
https://github.com/openbootdotdev/openboot
cli dev-environment developer-tools devops dotfiles go homebrew mac-setup macos productivity setup tui
Last synced: 23 days ago
JSON representation
Set up your Mac dev environment in one command — CLI + Web Dashboard + Team sharing
- Host: GitHub
- URL: https://github.com/openbootdotdev/openboot
- Owner: openbootdotdev
- License: mit
- Created: 2026-02-01T09:03:10.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-02-27T04:16:23.000Z (28 days ago)
- Last Synced: 2026-02-27T10:21:41.936Z (28 days ago)
- Topics: cli, dev-environment, developer-tools, devops, dotfiles, go, homebrew, mac-setup, macos, productivity, setup, tui
- Language: Go
- Size: 4.74 MB
- Stars: 188
- Watchers: 0
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# OpenBoot
> Setting up a new Mac shouldn't take two hours of your weekend.
>
> **[openboot.dev](https://openboot.dev)**
You know the drill. New Mac, same two-hour ritual:
```bash
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 something
```
Here's the alternative:
```bash
brew install openbootdotdev/tap/openboot
openboot
```
Pick 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.
## Why OpenBoot?
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.
## Quick Start
```bash
brew install openbootdotdev/tap/openboot
openboot
```
Alternative: one-line installer
```bash
curl -fsSL openboot.dev/install.sh | bash
```
## How It Compares
| | OpenBoot | Brewfile | chezmoi | nix-darwin |
|---|:---:|:---:|:---:|:---:|
| Interactive package picker | **TUI** | manual edit | — | — |
| Web dashboard | **[openboot.dev](https://openboot.dev)** | — | — | — |
| Shareable install URL | `openboot install myalias` | — | — | — |
| Snapshot & restore | full environment | — | dotfiles only | full (steep curve) |
| Learning curve | **Low** | Low | High | Very High |
## What It Does
- **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
## Web Dashboard
[openboot.dev](https://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
## Presets
Three starting points. Pick one, adjust in the TUI. [Full list →](https://openboot.dev/docs/presets)
| 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.
## Snapshot
Already have a Mac set up the way you like? Save it.
```bash
openboot snapshot
```
This captures everything: Homebrew packages, macOS settings, shell config, git identity. Upload it to [openboot.dev](https://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 →](https://openboot.dev/docs/snapshot)
### Clean
Installed too much? Clean up what's not in your config.
```bash
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 removed
```
## For Teams
New hire runs one command, gets the same environment as everyone else. [Guide →](https://openboot.dev/docs/teams)
```bash
brew install openbootdotdev/tap/openboot
openboot --user yourteam/frontend
```
Make your config on the [dashboard](https://openboot.dev/dashboard), put this in your onboarding docs. When your stack changes, update the config. The install command stays the same.
## Advanced Usage
CI / Automation
```bash
brew install openbootdotdev/tap/openboot
OPENBOOT_GIT_NAME="Your Name" \
OPENBOOT_GIT_EMAIL="you@example.com" \
openboot --preset developer --silent
```
Or with the one-line installer:
```bash
OPENBOOT_GIT_NAME="Your Name" \
OPENBOOT_GIT_EMAIL="you@example.com" \
curl -fsSL openboot.dev/install.sh | bash -s -- --preset developer --silent
```
All Commands
```bash
openboot # Interactive setup
openboot install myalias # Install from a config alias
openboot install user/config # Install from a specific user config
openboot snapshot # Capture your current setup
openboot clean # Remove packages not in your config
openboot init # Set up project from .openboot.yml
openboot doctor # Check system health
openboot update # Update Homebrew and packages
openboot update --self # Update OpenBoot itself
openboot login # Authenticate with openboot.dev
openboot logout # Remove auth token
openboot version # Print version
```
CLI Options
```
-p, --preset NAME Set preset (minimal, developer, full)
-u, --user NAME Use alias or openboot.dev username/slug config
-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
```
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 |
---
## FAQ
**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.
---
## Docs
📖 **[openboot.dev/docs](https://openboot.dev/docs)** — [Quick Start](https://openboot.dev/docs/quick-start) · [Presets](https://openboot.dev/docs/presets) · [Snapshot](https://openboot.dev/docs/snapshot) · [Custom Configs](https://openboot.dev/docs/custom-configs) · [Teams](https://openboot.dev/docs/teams)
## Contributing
Bug reports and feature requests: [open an issue](https://github.com/openbootdotdev/openboot/issues). Pull requests welcome.
Development Setup
```bash
git clone https://github.com/openbootdotdev/openboot.git
cd openboot
go build -o openboot ./cmd/openboot
./openboot --dry-run
```
---
**[openboot.dev](https://openboot.dev)** · [Dashboard](https://openboot.dev/dashboard) · [Docs](https://openboot.dev/docs) · [Dotfiles template](https://github.com/openbootdotdev/dotfiles)
**License:** MIT