Config Options

Every OpenBoot config — whether created from a preset, a snapshot, or the dashboard — follows the same structure. Here’s what each field does.

Full Example

{
  "name": "frontend-team",
  "description": "Standard setup for our frontend developers",
  "base_preset": "developer",
  "packages": [
    { "name": "node", "type": "formula" },
    { "name": "pnpm", "type": "formula" },
    { "name": "ripgrep", "type": "formula" },
    { "name": "visual-studio-code", "type": "cask" },
    { "name": "arc", "type": "cask" },
    { "name": "typescript", "type": "npm" }
  ],
  "custom_script": "mkdir -p ~/projects\ngit clone git@github.com:yourorg/main-repo.git ~/projects/main-repo",
  "dotfiles_repo": "https://github.com/yourorg/team-dotfiles.git",
  "snapshot": null,
  "alias": "fe",
  "visibility": "unlisted"
}

Fields

name

Display name for the config. Used as the page title and in the dashboard.

  • Type: string
  • Required: yes
  • Example: "frontend-team"

description

Optional description shown on the config page.

  • Type: string
  • Required: no
  • Example: "Standard setup for our frontend developers"

base_preset

Which preset to start from. The preset’s packages are included unless individually removed.

  • Type: string
  • Options: "minimal", "developer", "full"
  • Required: no
  • Default: none (empty config)

packages

The tools and apps to install. Stored as an array of package objects, each with a name and type.

  • formula — CLI tools installed via brew install
  • cask — GUI apps installed via brew install --cask
  • npm — Global npm packages installed via npm install -g

Each entry is an object: { "name": "package-name", "type": "formula" | "cask" | "npm" }. Names must match Homebrew or npm package names exactly.

custom_script

Shell commands that run after all packages are installed. Use this for project-specific setup like cloning repos, generating SSH keys, or configuring services.

  • Type: string (newline-separated commands)
  • Required: no
  • Runs as: bash (errors are logged but don’t stop the install)
mkdir -p ~/projects
git clone git@github.com:yourorg/api.git ~/projects/api
ssh-keygen -t ed25519 -C "dev@yourcompany.com" -f ~/.ssh/id_ed25519 -N ""

dotfiles_repo

Git URL to a dotfiles repository. OpenBoot clones it to ~/.dotfiles and optionally symlinks with GNU Stow.

  • Type: string (Git URL)
  • Required: no
  • Example: "https://github.com/yourname/dotfiles.git"

See Dotfiles & Shell for setup details.

snapshot

Snapshot data attached to this config (auto-populated when creating from openboot snapshot). Contains the raw scan results — packages, preferences, shell config, git settings, dev tool versions.

  • Type: object or null
  • Required: no
  • Usually: managed automatically, not edited by hand

alias

Short URL alias for easy sharing. If set, the config is accessible with a shorter command — for example, openboot install my-setup instead of openboot install username/slug.

  • Type: string
  • Required: no
  • Must be: unique across all configs

visibility

Controls who can see and install this config.

  • Type: string
  • Default: "unlisted"
  • Options:
    • "public" — listed on your profile, install URL works for everyone
    • "unlisted" — not listed on your profile, but install URL still works if shared
    • "private" — only you can access. Run openboot login first, then openboot install yourname/slug

Export

You can export any config as a JSON file from the dashboard. Click the Export button on a config card to download a .json file containing all config data (name, packages, custom script, dotfiles repo, snapshot, visibility, and alias).

macOS Preferences Whitelist

These are the 23 system settings that OpenBoot can configure. Only these are captured by openboot snapshot and applied during install.

Global

SettingDescriptionDefault Value
Show all file extensionsFiles show .txt, .js, etc. in Finderon
Always show scrollbarsNo auto-hiding scrollbarson
Disable auto-correctNo automatic text correctionon
Disable auto-capitalizationNo automatic capitalizationon
Fast key repeatFaster character repeat when holding a keyon
Short key repeat delayShorter delay before repeat startson

Finder

SettingDescriptionDefault Value
Show path barFull path shown at bottom of Finderon
Show status barItem count and disk space at bottomon
Default to list viewFinder opens in list viewon
No extension change warningNo alert when renaming file extensionson
Show hidden filesDotfiles and hidden folders visibleon

Dock

SettingDescriptionDefault Value
Keep Dock visibleDock does not auto-hideon
Hide recent applicationsNo “recent apps” section in Dockon
Icon sizeDock icon size in pixels48
Scale minimize effectUse scale animation instead of genieon

Screenshots

SettingDescriptionDefault Value
Save locationWhere screenshots are saved~/Screenshots
PNG formatSave as PNG instead of other formatson
Disable shadowNo drop shadow on window screenshotson

Safari

SettingDescriptionDefault Value
Developer menuShow Develop menu in menu baron
WebKit developer extrasEnable Web Inspector and other dev toolson

TextEdit

SettingDescriptionDefault Value
Plain text modeDefault to plain text, not rich texton
UTF-8 encodingUse UTF-8 for plain text fileson

Time Machine

SettingDescriptionDefault Value
Don’t prompt for new disksNo “use this disk for backup?” popupson