Snapshot

Capture your current Mac’s dev environment and turn it into a shareable config — without building anything from scratch.

openboot snapshot

Or if you don’t have openboot yet:

curl -fsSL https://openboot.dev/install.sh | bash -s -- snapshot

What It Captures

CategoryWhat’s ScannedHow
Homebrew FormulaeTop-level CLI tools (not dependencies)brew leaves
Homebrew CasksAll installed GUI appsbrew list --cask
Homebrew TapsThird-party repositoriesbrew tap
NPM Global PackagesGlobally installed npm packagesnpm list -g
macOS Preferences26 whitelisted developer settingsCurated list
Shell ConfigOh-My-Zsh plugins, theme, aliases.zshrc parsing
Git Configuser.name, user.email, editor, default branch~/.gitconfig
Dev ToolsGo, Node.js, Python, Rust, Java, Ruby, DockerVersion detection

Only whitelisted data is captured. No SSH keys, API tokens, .env files, or credentials — ever.

How It Works

Step 1 — Scan. OpenBoot scans your system with real-time progress:

✓ Homebrew Formulae    28 found
✓ Homebrew Casks       12 found
✓ macOS Preferences     9 found
✓ Shell Environment     scanned
✓ Git Config            scanned

Step 2 — Review. A full-screen TUI editor lets you customize what’s included:

  • Tabs: Formulae, Casks, NPM Packages, macOS Preferences
  • Space to toggle individual items on/off
  • / to search, a to select all in a category
  • Taps, Shell, Git, and Dev Tools are shown as a read-only summary

Step 3 — Save. Choose where it goes:

  • Upload to openboot.dev — get a shareable install URL
  • Save locally — stored at ~/.openboot/snapshot.json

If you upload, you’ll authenticate via browser (like gh auth login), name your config, and get a one-line install command:

curl -fsSL openboot.dev/yourname/my-setup | bash

Restoring from a Snapshot

Use --import to restore your environment from a previously captured snapshot:

openboot snapshot --import ~/.openboot/snapshot.json
openboot snapshot --import https://example.com/snapshot.json

What gets restored:

CategoryWhat’s Applied
Homebrew FormulaeInstalled via brew install
Homebrew CasksInstalled via brew install --cask
Homebrew TapsAdded via brew tap
NPM Global PackagesInstalled via npm install -g
Git Configuser.name and user.email set via git config --global — skipped if both are already configured
Shell ConfigOh-My-Zsh theme and plugins written to .zshrc — only applied if Oh-My-Zsh was captured in the snapshot
macOS PreferencesApplied via defaults write for each captured preference

Before installing, a full-screen editor lets you review and deselect anything you don’t want. If the snapshot is partial (some steps failed during capture), you’ll be warned and asked whether to proceed.

Run --dry-run to preview the installation without making any changes:

openboot snapshot --import my-setup.json --dry-run

Flags

FlagWhat it does
--dry-runPreview what would be captured or restored, without making changes
--jsonOutput snapshot as JSON to stdout — great for piping to jq
--localSave to ~/.openboot/snapshot.json instead of uploading
--import <path>Restore from a local file or URL

Privacy & Safety

Snapshots are designed to be safe to share:

  • Paths sanitized — home directory references replaced with ~/
  • Whitelisted preferences only — no arbitrary system data is read
  • No secrets captured — SSH keys, tokens, credentials are never included
  • Full control — you review and deselect anything before uploading

See Config Options for the full list of macOS preferences that can be captured.