<!-- Sub-10-minute, deterministic bring-up (DOCS-STRATEGY #1/#3). Every command runs as written. -->
# Quickstart

Goal: install `omp-spt`, create a named endpoint, and attach to its native OMP TUI.

## 1. Install the prerequisites

You need [Oh My Pi 16.3.15 or newer](https://github.com/can1357/oh-my-pi/commit/e8d0a93d)
and [`spt-core`](https://sabermage.github.io/spt-releases). There is no separate plugin
installation step because the adapter release carries its OMP plugin skills.

The v0.9.4 `omp-spt` release supports **x86_64 Windows and x86_64 Linux only**.
Its archive contains Windows MSVC, Linux GNU, and static Linux musl x86_64
helpers, but no macOS or Arm64 payload. The musl helper is a compatibility tier
for OMP-capable hosts; it is not a generic Alpine support claim.

**PowerShell (x86_64 Windows)**

```powershell
if (-not (Get-Command omp -ErrorAction SilentlyContinue)) { irm https://omp.sh/install.ps1 | iex }
if (-not (Get-Command spt -ErrorAction SilentlyContinue)) { irm https://sabermage.github.io/spt-releases/install.ps1 | iex }
```

**bash (x86_64 Linux / Git Bash on x86_64 Windows)**

```bash
command -v omp >/dev/null 2>&1 || curl -fsSL https://omp.sh/install | sh
command -v spt >/dev/null 2>&1 || curl -fsSL https://sabermage.github.io/spt-releases/install.sh | sh
```

Open a fresh shell if either installer updated your `PATH`, then verify both commands:

```bash
omp --version
spt --version
```

`omp-spt` requires Oh My Pi 16.3.15 or newer and `spt-core` 0.39.1 or newer. If
either version check reports an older release, run `omp update` or `spt update` as appropriate,
open a fresh shell if needed, and repeat both checks before installing the adapter.

## 2. Install the adapter

```bash
spt adapter add --release BigscreenVR/omp-spt
```

This installs one fat `adapter.spt` release for the supported x86_64 Windows and Linux targets.
The archive includes their adapter binaries, the manifest, native extension, OMP plugin metadata,
and packaged commune, signoff, role, setup, and knock skills. No separate plugin installation is needed.

## 3. Create and attach to an endpoint

Choose a stable endpoint id. This example uses `librarian`:

```bash
spt endpoint create librarian --adapter omp-spt
spt go librarian
```

For another name, use the canonical form `spt endpoint create <id> --adapter omp-spt` followed by
`spt go <id>` and replace `<id>`.

`create` is the only way an endpoint is minted: it records the adapter and project folder as the
endpoint's defaults and brings its first session up — OMP launches with `adapter/strings/omp-spt.mjs`
in a broker-held terminal. `spt go` attaches your terminal directly to OMP's native TUI, and on a
later run resumes or starts a session as the endpoint's state needs. `ReadyAgent` and `LiveAgent`
are the supported hostable roles.

During bring-up, the extension:

1. binds the OMP session id to the Spacetime endpoint;
2. marks the endpoint idle and starts delivery;
3. submits each incoming message as an OMP turn;
4. reports the turn's text to spt-core's IO feed and polls the now-signal at every boundary, so
   explicit `@<…@>` messages and `;;…;;` seals are read by spt-core and answered in
   `DISPATCH_RESULTS` while ordinary assistant output stays local; and
5. ends the binding when the native TUI shuts down.

You now have a named endpoint in the standard Spacetime messaging and lifecycle model. Use the
[`spt-core` documentation](https://sabermage.github.io/spt-releases) for endpoint rosters,
messaging, subnets, and other public commands.

## 4. Update later

```bash
spt adapter update omp-spt
```

OMP loads the packaged extension fresh on endpoint bring-up. Restart an already running endpoint
to move it to the updated adapter:

```bash
spt endpoint stop librarian
spt endpoint start librarian
```

`start` opens a fresh session on the existing endpoint without attaching; `spt go librarian`
does the same and attaches. `spt endpoint resume librarian` brings its latest session back instead.

Next, read the [Native integration contract](./reference/harness-contract.md) for launch,
delivery, explicit messaging, failure, and shutdown behavior.
