braeburn
v2.3.0
Published
macOS system updater CLI
Readme
braeburn
A macOS system updater CLI. Keeps tools installed via Homebrew, npm, pip, .NET, and others up to date.
Install
npm install -g braeburnUsage
braeburn # run all enabled steps interactively
braeburn -y # run all steps, auto-accept everything
braeburn homebrew npm # run specific steps only
braeburn config add --name "Oh My Zsh" --command "omz update"Commands
| Command | Description |
|---|---|
| braeburn [steps...] [-y] | Run update steps (default) |
| braeburn log [step] | View the latest output log for a step |
| braeburn config | Show config subcommand help |
| braeburn config list | Print current configuration |
| braeburn config update | Open interactive configuration editor |
| braeburn config update --no-<step> | Disable a step |
| braeburn config update --<step> | Re-enable a step |
| braeburn config add --name <name> --command <command> | Add a custom update command |
| braeburn config remove <id> | Remove a custom update command |
Steps
Steps are grouped by system capability. For new setups, braeburn uses a conservative default profile: only package-manager-driven CLI/tooling updates are enabled by default.
| Step | Category | Default (new setup) | Requires |
|---|---|---|---|
| pyenv | Runtimes | off | pyenv or Homebrew |
| nvm | Runtimes | off | ~/.nvm |
| rustup | Runtimes | off | rustup |
| homebrew | Apps & Packages | on | brew (required) |
| mas | Apps & Packages | off | mas |
| macos | Apps & Packages | off | — |
| npm | CLI Tools | on | npm |
| braeburn | CLI Tools | on | npm |
| pip | CLI Tools | on | pip3 |
| uv | CLI Tools | off | uv |
| gh | CLI Tools | off | gh |
| dotnet | CLI Tools | on | dotnet |
| aspire | Aspire | off | aspire |
| ohmyzsh | Shell | off | ~/.oh-my-zsh |
| cleanup (homebrew cleanup) | Maintenance | off | brew |
User-managed commands
Add a named shell command to the default update run:
braeburn config add --name "Oh My Zsh" --command "omz update"Braeburn stores it in the config as a [[custom]] block:
[[custom]]
id = "oh-my-zsh"
name = "Oh My Zsh"
command = "omz update"User-managed commands run after enabled built-in steps when running braeburn or braeburn -y. They are not included when explicitly selecting built-in steps such as braeburn homebrew -y. Commands run through your shell, show a user-managed warning before interactive execution, and receive the normal confirmation prompt unless -y is supplied.
List configured commands with braeburn config list, remove one with braeburn config remove oh-my-zsh, and view its latest log with braeburn log custom-oh-my-zsh.
Requirements
- macOS
- Node.js ≥ 24
- Homebrew (required)
