# Host scripts **Status:** S0b–S6 implemented. S7 pending. All scripts wrap **`nemohermes` / `openshell` / Docker**. No parallel control API. ## Entrypoints | Script | Role | Status | |--------|------|--------| | `bootstrap.sh` | Host prereqs; install Docker if missing | ✅ S0b | | `install.sh` | Staged installer (S0b–S5) | ✅ S0b–S5 | | `install/s1-env.sh` | S1: create/validate `.env` | ✅ S1 | | `install/s2-models.sh` | S2: model + vision config + smoke | ✅ S2 | | `install/s4-sandbox.sh` | S4: sandbox verify (attach) or onboard | ✅ S4 | | `install/s5-policy-skills.sh` | S5: policy overlays + skills sync | ✅ S5 | | `doctor.sh` | Health checks (Docker, CLIs, sandbox, policy, skills, inference) | ✅ S6 | | `upgrade.sh` | Snapshot, pull pins, migrate, re-apply policy, doctor | ⏳ Pending | | `connect/*.sh` | Operator connect helpers (Square, QBO, Vagaro, channels) | ⏳ Pending | ## Shared library | File | Purpose | |------|---------| | `lib/common.sh` | Logging, CLI detection, env loading, repo root | | `lib/env.sh` | `.env` validation and creation helpers | | `lib/vision_smoke.sh` | Vision capability smoke test | ## Usage ```bash # Bootstrap (Docker if missing) ./scripts/bootstrap.sh # Full install (S0b–S5) ./scripts/install.sh # Individual stages ./scripts/install.sh --stage s1 # env only ./scripts/install.sh --stage s2 # models only ./scripts/install.sh --stage s4 # sandbox verify/onboard ./scripts/install.sh --stage s5 # policy + skills ./scripts/install.sh --stage s3-s5 # S3 through S5 # Health checks (S6) ./scripts/doctor.sh # human-readable ./scripts/doctor.sh --json # machine-readable # Or via Make make bootstrap make install make install-s1 make install-s2 make install-s3-s5 make install-s5 make doctor ``` ## Design reference See [docs/INSTALL.md](../docs/INSTALL.md), [docs/UPGRADE.md](../docs/UPGRADE.md), [design/updates-lifecycle.md](../design/updates-lifecycle.md).