---
name: setup
description: Diagnoses and completes OMP SPT prerequisites, adapter acquisition, activation, updates, and subnet onboarding with explicit operator handoffs. Use when the user says "setup", reports that OMP SPT is not installed or active, needs to join a subnet, or asks how to start an endpoint.
---

# OMP SPT setup assistance

Diagnose before changing anything. Use public `omp` and `spt` commands, keep the flow idempotent, and never invent credentials, pairing codes, endpoint ids, or elevation consent.

## 1. Probe

Run each available non-interactive probe and retain its exact result:

- `omp --version`
- `spt --version`
- `spt adapter version omp-spt`
- `spt adapter get-string omp-spt adapter_label`
- `spt whoami --json` when checking whether this session is already activated
- `spt endpoint list --json` when checking endpoint readiness or the roster

A missing command is a missing prerequisite; a version below the supported floor is an incompatible prerequisite. Neither proves that the other components are broken. Do not replace these probes with an interactive launcher.

## 2. Install or update prerequisites

Ask before executing a remote installer. Choose the command for the user's actual shell:

- PowerShell: `irm https://omp.sh/install.ps1 | iex` and `irm https://sabermage.github.io/spt-releases/install.ps1 | iex`
- POSIX shell: `curl -fsSL https://omp.sh/install | sh` and `curl -fsSL https://sabermage.github.io/spt-releases/install.sh | sh`

Install only what the probes showed missing. If OMP is present but older than **16.3.15**, run `omp update`. If spt-core is present but older than **0.31.0**, run `spt update`; if that older binary cannot update itself, ask before using the published spt installer above. If installation or update changes `PATH`, ask the operator to open a fresh shell.

Repeat both version probes and do not proceed until `omp --version` is at least 16.3.15 and `spt --version` is at least 0.31.0. Authentication prompts and OS elevation are operator actions: explain why they are needed and wait rather than bypassing them.

## 3. Acquire or repair the adapter

Only after both prerequisite floors pass, if `spt adapter version omp-spt` fails, run `spt adapter add --release BigscreenVR/omp-spt`. For a repository checkout explicitly requested for development, the supported alternative is `spt adapter add ./adapter/omp-spt.toml` only when that manifest exists relative to the current directory.

Verify both `spt adapter version omp-spt` and `spt adapter get-string omp-spt adapter_label`. Do not report setup complete from a downloaded file or a registry row alone.

For a present but older adapter, use `spt adapter update omp-spt`. Bare `spt update` is the whole-node path when the user requests core plus every release-shipped adapter. A running endpoint keeps its loaded adapter until it is stopped and relaunched.

## 4. Activate or launch

- To activate this ordinary OMP session, direct the user to extension-native `/ready <id>` or `/live <id>`; `/live --auto` is only for explicit auto-resume intent.
- Verify this session with `spt whoami --json` and endpoint readiness or roster state with `spt endpoint list --json`.
- If the user wants a separate hosted endpoint, hand the operator `spt endpoint create <id> --adapter omp-spt` followed by `spt go <id>` to run in a separate terminal, using an id the user supplied or approved. `create` mints the endpoint and brings its first session up; `spt go` attaches the interactive native OMP TUI.

Never execute `spt endpoint create`, `spt endpoint start`, `spt endpoint resume`, or `spt go` from inside OMP or tell the model to launch one as a setup probe: that nests a second interactive OMP TUI. Do not start a second listener, bind a Worker endpoint, or replace the current native OMP TUI.

## 5. Optional subnet onboarding

Read `spt how-to subnet` before acting. `spt subnet create <name>` and `spt subnet show-code` reveal or create joining material; `spt subnet join <name> --code <6-digit>` enrolls the whole machine. These operations may require OS elevation. Explain the trust boundary, obtain explicit operator consent, and let the operator supply the fresh code. Verify with `spt subnet status`.

<!-- [impl->REQ-PARITY-SETUP] -->
Finish with a compact report of detected versions, adapter verification, activation state, subnet state if requested, and any exact operator handoff still required. Never turn a failed or skipped probe into a success claim.
