.openboot.yml Reference

.openboot.yml is a project-level config file that tells openboot init what to install and how to set up the development environment for a specific project. Commit it alongside your code so everyone on the team gets the same setup with one command.

Full Example

version: "1.0"

brew:
  taps:
    - homebrew/cask-fonts
  packages:
    - git
    - node@20
    - go
    - jq
    - ripgrep
  casks:
    - visual-studio-code
    - docker

npm:
  - typescript
  - eslint
  - prettier

env:
  NODE_ENV: development
  API_URL: http://localhost:3000

init:
  - npm install
  - cp .env.example .env
  - npm run db:migrate

verify:
  - node --version
  - npm --version
  - git --version
  - docker --version

Fields

version

Schema version. Currently the only valid value is "1.0".

  • Type: string
  • Required: yes
  • Value: "1.0"

brew

Homebrew packages to install. All three sub-fields are optional.

brew.taps

Homebrew taps to add before installing packages. Use this for packages that live outside the default Homebrew registry.

  • Type: list of strings
  • Example: ["homebrew/cask-fonts", "stripe/stripe-cli"]

brew.packages

Homebrew formulae (CLI tools) to install via brew install.

  • Type: list of strings
  • Example: ["git", "node@20", "ripgrep", "jq"]

brew.casks

Homebrew casks (GUI apps) to install via brew install --cask.

  • Type: list of strings
  • Example: ["visual-studio-code", "docker", "tableplus"]

npm

Global npm packages to install via npm install -g. Only runs if npm is available on the system.

  • Type: list of strings
  • Example: ["typescript", "eslint", "prettier"]

env

Environment variables to display after packages install. OpenBoot prints these with suggested export commands — it does not write them to any file automatically.

  • Type: key-value map
  • Example:
env:
  NODE_ENV: development
  DATABASE_URL: postgres://localhost:5432/mydb

init

Shell commands to run after packages are installed. Each command runs from the project directory in sequence. Use this for npm install, copying config files, running migrations, etc.

  • Type: list of strings
  • Runs as: individual shell commands from the project directory
  • On failure: init stops at the first failing command
init:
  - npm install
  - cp .env.example .env
  - npm run db:migrate

verify

Shell commands to run as a final check. Each command is expected to exit with code 0. All commands run regardless of earlier failures, and results are summarized at the end.

  • Type: list of strings
  • On failure: reports which checks failed but does not undo prior steps
verify:
  - node --version
  - docker --version
  - psql --version

Placement

The file must be named .openboot.yml and placed in the project root. When running openboot init /path/to/project, OpenBoot looks for .openboot.yml at that path.

Usage

# From the project directory
openboot init

# From anywhere, pointing at the project
openboot init ~/projects/my-app

# Preview without installing
openboot init --dry-run

# Non-interactive (for CI/CD)
openboot init --silent

See CLI Commands for all openboot init flags.