openclaw doctor --non-interactive plus openclaw gateway status on Node 24 and OpenClaw v2026.5.x—operations narration only.
Pair with the log redaction companion when you need field-level JSONL hygiene; this page owns identity, launchd, and outbound allowlists so procurement can read two clearly separated annexes.
- Pain 1: Running
openclaw onboardas the same user who owns sudo lets any SSH slip escalate into config edits. - Pain 2: Without a frozen allowlist file, “EU egress” stays a slide-deck promise that
openclaw doctorcannot diff. - Pain 3: Interactive doctor sessions in CI produce unrunnable evidence; auditors want
--non-interactivetranscripts tied to a semver.
| Posture | Runtime blast radius | Evidence you can attach |
|---|---|---|
| Single admin user | High | Screenshots only |
| Admin + openclaw-runtime | Reduced | Plist UserName + allowlist SHA + doctor log |
| Runtime + outbound deny-by-default | Lowest practical | YAML PR + gateway status JSON |
Account model
Reserve the leased-admin account for softwareupdate, Xcode patches, and emergency disk repairs only. Create openclaw-runtime as a standard user with its own home, SSH key policy, and file vault for tokens.
Never symlink admin-owned node_modules into the runtime tree; reinstall the CLI after you switch owners so dynamic imports resolve inside the runtime home.
Document both UIDs on the change ticket, list who may sudo, and require four-eyes approval before migrating secrets from staging.
launchd labels
Use a dedicated LaunchAgent domain label such as com.openclaw.gateway stored under ~/Library/LaunchAgents/ inside the runtime profile, not /Library/LaunchDaemons, unless site policy already mandates system daemons.
Set UserName to openclaw-runtime, pin WorkingDirectory to the config root, and keep ThrottleInterval high enough that flapping gateways do not hammer remote APIs during partial outages.
After every plist edit run launchctl bootout then bootstrap as the runtime user; capture openclaw gateway status immediately so support sees the same JSON your CI archives.
Whitelist template
Keep hostnames in Git, not in Slack. Below is a shape you can rename to match OpenClaw’s published security schema—replace domains with counsel-approved endpoints only.
version: 1 profile: eu-continental notes: > Attach to PR; doctor must echo identical paths. allow_tls_hosts: - api.eu.example-scratchpad.dev - git.example-corp.internal - registry.example-corp.internal deny_regex: - ".*\\.consumer-cloud\\.tld$"
Load the file through the hook described in OpenClaw security docs so openclaw doctor surfaces missing hosts before merge, not after a midnight page.
Six reproducible steps
- Baseline: SSH with break-glass admin, install Node 24, pin OpenClaw v2026.5.x, run
openclaw onboard, and store the firstopenclaw gateway statusblob. - Split: Create
openclaw-runtime, move configs, and reinstall packages so every path lives under the new home. - launchd: Drop the plist, load it as the runtime user, verify the label with
launchctl print gui/$uid/com.openclaw.gateway. - Allowlist PR: Commit the YAML, require security review, merge only after two approvers sign the hostname roster.
- Doctor gate: In CI run
openclaw config validatethenopenclaw doctor --non-interactive; fail the job on any new warning class. - Post-deploy: SSH as runtime, run
openclaw gateway status, attach logs plus plist checksum to the ticket.
Acceptance checklist
openclaw gateway statusreports healthy listeners whilewhoamiequalsopenclaw-runtime.- Launchd label matches the documented string and survives reboot without admin login.
- Doctor output lists every TLS host the gateway touched during smoke tests.
- Node binary path resolves to Node 24 and
openclaw --versionprints v2026.5.x. - Break-glass admin has not logged in for seven consecutive days outside maintenance window.
Citable engineering signals
- Two POSIX users minimum on the worksheet: privileged installer vs always-on gateway owner.
- One YAML SHA referenced by both staging and production change records.
- Non-interactive doctor log byte-identical between CI artifact and production post-check.
FAQ
Provision metal, then wire help and plans
Browse the blog index for matrices, compare Mac mini M4 plans on the pricing page, and open help for SSH onboarding questions.