# SPT

## What is SPT?

A communication ecosystem for all of your computers. Interact with _any resource_, on _any machine_, **from** any machine, using any interface. Empower your LLMs to do the same.

`spt-core` is the heart of a harness-independent framework. It offers: inter-agent messaging, live agent lifecycle, terminal hosting, seamless self-update, and zero-config cross-machine networking — shipped as both a Rust library workspace and a single canonical binary (`spt` / `spt.exe`).

SPT lets coding agents talk to each other — across sessions, across projects, and across machines — without a central server. An agent running under one harness can message an agent under another, keep a persistent identity and memory across context resets, and be reached (or revived) from any paired machine. Three pieces make that up:
- **(a)** the `spt` binary, the per-machine core that does the work — messaging, lifecycle, terminal hosting, P2P networking — and is what this repository distributes.
- **(b)** *harness adapters*, thin declarative manifests that teach spt-core how to drive a specific agent harness. An adapter for Claude Code is in development; harnesses like Codex and Pi — the [pi coding agent](https://github.com/badlogic/pi-mono) — are the kind of target the contract is designed for.
- **(c)** *shells*, bridge applications to any resource or service that an agent can drive and be driven through. The adapter contract is public, documented, and royalty-free to build against — today's surface for third parties is the binary plus that contract.

## Status

| Capability | State |
|---|---|
| Inter-agent messaging (send / ring / ready / poll), same-machine and cross-machine | ✅ works today |
| Live-agent lifecycle (persistent identity, context communes, dormancy/wake) | ✅ works today |
| Terminal hosting + remote attach (drive a session on another node) | ✅ works today |
| Zero-config P2P networking (QUIC) + TOTP-seeded machine pairing, private subnets | ✅ works today |
| Harness contract: manifest + `spt api` (build your own adapter) | ✅ works today |
| Shell adapters (e.g. desktop-notification shell) + `spt adapter add` | ✅ works today |
| Signed, peer-propagated self-update | ✅ works today |
| Claude Code harness adapter (`spt-claude-code`) | 🚧 in development |
| OS-service registration at install (always-on after reboot) | 🔜 next |
| macOS builds | 🔜 next |
| SDK crates on crates.io | 🔜 later |

Platforms today: **Windows + Linux**.

## Install

One line, non-interactive. Downloads the latest release, sha256-verifies it, places the binary, and registers it on your user PATH.

**Linux:**

```sh
curl -fsSL https://sabermage.github.io/spt-releases/install.sh | sh
```

**Windows (PowerShell):**

```powershell
irm https://sabermage.github.io/spt-releases/install.ps1 | iex
```

Then verify:

```
spt --version
```

> **Windows note:** the PATH registration takes effect in *new* terminals. The installer prints the absolute path to the binary so you can use it immediately in the current one.

## Getting started — developers

Two agents exchanging a message, end to end, in under 10 minutes:

- **[Human quickstart](https://sabermage.github.io/spt-releases/quickstart/messaging.html)** — install, `spt ready` two agents, send and poll a message, then see what actually happened.

## Getting started — adapter developers & dev-agents

Build a working harness or shell adapter from the published contract alone:

- **[Adapter quickstart](https://sabermage.github.io/spt-releases/quickstart/adapter.html)** — a minimal adapter that satisfies the manifest + `spt api` contract, walked through via the `mock-adapter` reference (source ships with every release).
- **[Manifest JSON Schema](https://sabermage.github.io/spt-releases/manifest.schema.json)** — validate your adapter manifest mechanically.

## Documentation

- **Docs site:** <https://sabermage.github.io/spt-releases> — mental model, quickstarts, the complete harness-contract reference, CLI reference, rustdoc.
- **For AI agents:** [`llms.txt`](https://sabermage.github.io/spt-releases/llms.txt) (curated index) and [`llms-full.txt`](https://sabermage.github.io/spt-releases/llms-full.txt) (full export). Append `.md` to any doc URL for raw markdown.

## License

Split by artifact:

- **Install scripts, `mock-adapter`, and documentation content** — [MIT](./LICENSE-MIT). Copy them; that's what they're for.
- **The `spt` binary** — a short [proprietary freeware license](./LICENSE-BINARY): free to run and redistribute unmodified, no warranty. Building adapters, shells, or integrations against the public contract is explicitly **unrestricted and royalty-free**.
