# Introduction

`omp-spt` is the native [Oh My Pi](https://github.com/can1357/oh-my-pi) adapter for
[Spacetime (`spt-core`)](https://sabermage.github.io/spt-releases). It gives named Spacetime
endpoints a real OMP terminal session rather than translating OMP through another interface.

The adapter supports the two hostable agent roles that belong in an interactive OMP session:

- **`ReadyAgent`** stays reachable for direct messages in its native OMP TUI.
- **`LiveAgent`** uses the same native endpoint and also activates the live-agent Psyche lifecycle.

There is no separate plugin installation step. Install OMP and `spt-core`, then install the
`BigscreenVR/omp-spt` adapter release with its bundled extension and OMP plugin skills.

## Mental model

Three components share the work:

```text
spt-core endpoint lifecycle
        |
        | launch, resume, attach
        v
native OMP process
        |-- owns the broker PTY and attachable TUI
        `-- loads adapter/strings/omp-spt.mjs
                    |
                    `-- bind, delivery, activity state, replies, shutdown
```

- **`spt-core`** owns endpoint records, messaging, lifecycle coordination, subnet reachability,
  adapter installation, and updates.
- **Native OMP** owns the hosted process, interactive terminal, model turn, tools, and transcript.
- **`omp-spt`** supplies the launch and transcript helpers plus the packaged OMP extension that
  connects native OMP events to `spt-core`.

The release artifact is one fat `adapter.spt` archive. It contains the supported adapter binaries,
manifest, shared native extension, OMP plugin metadata, and packaged commune, signoff, role, setup,
and knock skills, so installation and updates move as one unit.

## What the extension does

When OMP starts a hosted session, the extension binds the OMP session id to the named Spacetime
endpoint and starts message delivery. It names the session `<endpoint-id> @ <node>
(<project-name>/)` and gives the terminal title an idle glyph or animated busy spinner, making a
fleet of OMP windows identifiable at a glance. Incoming messages are queued into OMP turns, while
ordinary assistant output remains in the local conversation. Sending to another endpoint requires
explicit `spt send` use or the `@<…@>` shortform, which spt-core reads from the turn text the
extension reports. When the TUI shuts down, the extension ends the
bound session and releases its listener.

The result is still normal OMP. You attach to OMP's own TUI, and OMP remains in direct control of
the broker PTY.

Start with the [Quickstart](./quickstart.md). For event-by-event behavior, read the
[Native integration contract](./reference/harness-contract.md).
