An open API service indexing awesome lists of open source software.

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

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)**


GitHub stars
Release
License
codecov
macOS
Go


OpenBoot Demo

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