diff --git a/src/docs/cli-reference.md b/src/docs/cli-reference.md index 768297d..54fb576 100644 --- a/src/docs/cli-reference.md +++ b/src/docs/cli-reference.md @@ -7,17 +7,18 @@ order: 9 # CLI Commands -OpenBoot v1.0 has two real verbs: **`install`** adds things to your Mac, **`snapshot`** captures what's on it. Everything else is auth or bookkeeping. +OpenBoot's main commands are **`install`**, which adds things to your Mac, and **`snapshot`**, which captures what's on it. Supporting commands handle authentication, diagnostics, and updates. ``` openboot install [source] # install from preset, file, or cloud config openboot snapshot # capture your environment openboot doctor # check system health and diagnose issues +openboot update # upgrade the openboot binary itself openboot login / logout # openboot.dev auth openboot version # print version ``` -> **v1.0 removed these commands:** `pull`, `push`, `diff`, `clean`, `log`, `restore`, `init`, `setup-agent`, `update`, `list`, `edit`, `delete`. OpenBoot no longer uninstalls packages or tracks revision history — `install` is add-only, and `snapshot --publish` overwrites. Manage configs on the [dashboard](/dashboard). See the project [CHANGELOG](https://github.com/openbootdotdev/openboot/blob/main/CHANGELOG.md) for migration. +> **v1.0 removed these commands:** `pull`, `push`, `diff`, `clean`, `log`, `restore`, `init`, `setup-agent`, `list`, `edit`, `delete`. OpenBoot no longer uninstalls packages or tracks revision history — `install` is add-only, and `snapshot --publish` overwrites. Manage configs on the [dashboard](/dashboard). See the project [CHANGELOG](https://github.com/openbootdotdev/openboot/blob/main/CHANGELOG.md) for migration. ## `openboot install` @@ -84,7 +85,7 @@ For private configs, run `openboot login` first. | `--dotfiles ` | `clone`, `link`, or `skip` | | `--post-install ` | `skip` to skip post-install scripts | | `--allow-post-install` | Allow post-install scripts in silent mode | -| `--update` | Update Homebrew before installing | +| `--update` | Update Homebrew and exit — nothing is installed | | `--verbose` | Debug logging to stderr | `install` is **add-only**. It never uninstalls packages or removes settings — if a package is in your local system but not in the config, it stays. To remove packages, run `brew uninstall` directly. @@ -218,22 +219,35 @@ Checks performed: | Oh-My-Zsh | Installed at `~/.oh-my-zsh` | | Brew shellenv | `~/.zshrc` sources `brew shellenv` (Apple Silicon only) | | OpenBoot dir | `~/.openboot/` exists | -| OpenBoot state | `install_state.json` is valid JSON | -| PATH | `/usr/local/bin` and/or Homebrew prefix on PATH | +| OpenBoot state | `~/.openboot/sync_source.json` or `state.json` exists (a previous install) | +| PATH | `/opt/homebrew/bin` on PATH (Apple Silicon only; skipped on Intel) | All checks are read-only — `doctor` never modifies your system. --- -## Upgrading OpenBoot +## `openboot update` -OpenBoot no longer has a self-update command. It's installed via Homebrew — use Homebrew to upgrade: +Upgrade the `openboot` binary itself. ``` -brew upgrade openboot +openboot update # upgrade to the latest release +openboot update --dry-run # print what would be done, change nothing ``` -OpenBoot also does a lightweight auto-update check when you run `install`. +Both install methods (the one-line installer and `brew install`) put OpenBoot under Homebrew. On these installs, `openboot update` refreshes the `openbootdotdev/tap` repository and runs `brew upgrade openbootdotdev/tap/openboot`. You can also upgrade with Homebrew directly. + +If you installed a release binary by hand instead of through Homebrew, `update` downloads from GitHub and keeps a backup of the previous binary: + +``` +openboot update --version 1.0.5 # pin to an exact version +openboot update --rollback # restore the most recent backup +openboot update --list-backups # list backups under ~/.openboot/backup +``` + +Backups live in `~/.openboot/backup/`; the 5 most recent are kept. `--version` and `--rollback` are refused on Homebrew-managed installs — use `brew` for those. + +`install` also checks for updates before it runs. By default, it only notifies you when a newer version is available. Automatic upgrades are opt-in: set `"autoupdate": "true"` in `~/.openboot/config.json` to enable them, or `"autoupdate": "false"` to disable checks. Set `OPENBOOT_DISABLE_AUTOUPDATE=1` to skip the check regardless of that preference. --- diff --git a/src/docs/env-vars.md b/src/docs/env-vars.md index 3ea9353..d66965d 100644 --- a/src/docs/env-vars.md +++ b/src/docs/env-vars.md @@ -1,13 +1,13 @@ --- title: Environment Variables -description: All environment variables the install script and openboot CLI understand. +description: Environment settings for the install script and openboot CLI. group: Reference order: 12 --- # Environment Variables -Every environment variable OpenBoot reads. Short list — v1.0 kept things minimal. +Environment settings for the install script and CLI. ## Install script (`install.sh`) @@ -15,13 +15,14 @@ Used when you run `curl -fsSL openboot.dev/install.sh | bash`. The script instal | Variable | Description | Default | |----------|-------------|---------| -| `OPENBOOT_VERSION` | Install a specific version instead of latest | `latest` | | `OPENBOOT_DRY_RUN` | Set to `true` to preview without changes | — | +The script always installs the latest release published in the tap; there is no version pin. + Preview the install script without making changes: ``` -OPENBOOT_DRY_RUN=true curl -fsSL https://openboot.dev/install.sh | bash +curl -fsSL https://openboot.dev/install.sh | OPENBOOT_DRY_RUN=true bash ``` ## CLI (`openboot`) @@ -34,6 +35,9 @@ Used by the `openboot` binary at runtime. | `OPENBOOT_GIT_EMAIL` | Git user email — **read only in `--silent` mode** (required if Git isn't already configured) | | `OPENBOOT_PRESET` | Default preset. Overridden by `-p` / `--preset` | | `OPENBOOT_USER` | Default cloud config (alias or `user/slug`). Overridden by `-u` / `--user` | +| `OPENBOOT_DOTFILES` | Dotfiles repo URL for preset-based installs. Remote configs and snapshots use their own dotfiles settings; this does not override a remote config's `dotfiles_repo` | +| `OPENBOOT_DISABLE_AUTOUPDATE` | Set to `1` to skip the auto-update check that runs before `install` | +| `OPENBOOT_API_URL` | Override the openboot.dev API base URL — testing only; must be `https://` or `http://localhost` | Silent install with Git identity: @@ -59,4 +63,5 @@ Not environment variables, but useful to know. | `~/.openboot/snapshot.json` | Local snapshot (when using `--local`) | | `~/.openboot/install_state.json` | What was installed on this machine, and when | | `~/.openboot/sync_source.json` | The cloud config this machine is synced to | +| `~/.openboot/config.json` | Update preference: `"autoupdate": "notify"` (default), `"true"` (automatic upgrades), or `"false"` (no checks) | | `~/.dotfiles/` | Cloned dotfiles repo (when configured) | diff --git a/src/docs/faq.md b/src/docs/faq.md index 4e61715..b653456 100644 --- a/src/docs/faq.md +++ b/src/docs/faq.md @@ -95,9 +95,7 @@ An account (GitHub or Google OAuth) is needed to: brew upgrade openboot ``` -OpenBoot also does a lightweight auto-update check when you run `install`. - -The old `openboot update --self` command was removed in v1.0 — use `brew upgrade` instead. +You can also run `openboot update`. On a Homebrew install, it refreshes the OpenBoot tap before upgrading the formula. When you run `install`, OpenBoot checks for newer releases and notifies you by default; automatic upgrades are opt-in. Set `OPENBOOT_DISABLE_AUTOUPDATE=1` to skip the check. See [CLI Commands — Update](/docs/cli-reference#openboot-update) for update preferences and options for manually installed binaries. Your configs, snapshots, and auth tokens are unaffected by upgrades. diff --git a/src/docs/quick-start.md b/src/docs/quick-start.md index 1de8893..dc413ac 100644 --- a/src/docs/quick-start.md +++ b/src/docs/quick-start.md @@ -21,7 +21,7 @@ Installs Xcode Command Line Tools and Homebrew if they're missing, downloads Ope ```bash brew install openbootdotdev/tap/openboot -openboot +openboot install ``` The interactive TUI opens and you pick what to install. @@ -29,10 +29,10 @@ The interactive TUI opens and you pick what to install. ## First run ```bash -openboot +openboot install ``` -The TUI opens with the `developer` preset selected. **Arrow keys** navigate, **Space** toggles packages, **Enter** confirms. Homebrew starts installing — usually 10–30 minutes depending on what you picked. +The TUI checks your environment and asks you to choose a preset (`minimal`, `developer`, or `full`). Review the selected packages and setup options, then confirm the plan. Homebrew starts installing — usually 10–30 minutes depending on what you picked. When it finishes, restart your terminal or run: @@ -51,7 +51,7 @@ See [Presets](/docs/presets) for what's in each one. ## Running again later -Just type `openboot`. If the machine is already synced to a config (or a preset), OpenBoot fetches the latest version, shows what's missing, and asks to apply it. Nothing gets uninstalled — `install` only adds. +Run `openboot install` again. If the machine is already synced to a config, OpenBoot fetches the latest version, shows what's missing, and asks to apply it. Nothing gets uninstalled — `install` only adds. ``` → Syncing with @alice/dev-setup (last synced 2 days ago) diff --git a/src/docs/what-is-openboot.md b/src/docs/what-is-openboot.md index 7683b76..c6d301d 100644 --- a/src/docs/what-is-openboot.md +++ b/src/docs/what-is-openboot.md @@ -31,13 +31,13 @@ OpenBoot is an open-source CLI that automates the boring part of setting up a ne curl -fsSL https://openboot.dev/install.sh | bash ``` -This installs Xcode Command Line Tools and Homebrew if you don't have them yet, downloads the `openboot` binary, and launches the TUI. +This installs Xcode Command Line Tools and Homebrew if you don't have them yet, installs `openboot` through Homebrew, and launches the TUI. **Already have Homebrew?** ```bash brew install openbootdotdev/tap/openboot -openboot +openboot install ``` Either way, from there: diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index b2f6d89..35a13f8 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -141,10 +141,9 @@
✓ Xcode Command Line Tools ready
✓ Homebrew ready
Detected: darwin/arm64
-
Downloading OpenBoot v0.44.0...
-
✓ Downloaded to ~/.openboot/bin/openboot
-
✓ Checksum verified
-
✓ Added to PATH
+
Installing OpenBoot via Homebrew...
+
✓ OpenBoot installed!
+
Starting OpenBoot setup...