# Official connecting kit (starter samples)

Atrium app developer spec, section 9: Official connecting kit (starter samples).

This spec, the signature test vectors (§3.1.1), and the four hello-world samples are the **official Atrium connecting kit**. There is **no npm / NuGet / PyPI SDK package** — by design. Copy a hello, keep the signature verify + lifecycle paths, delete what you do not need. Public snapshot: [CompanyForLife/atrium-app-samples](https://github.com/CompanyForLife/atrium-app-samples).

| Sample | Class | Language |
|---|---|---|
| `samples/hello-node` (atrium-app-samples) | Web app (default) | Node 20+ |
| `samples/hello-dotnet` (atrium-app-samples) | Web app (default) | .NET minimal API |
| `samples/hello-python` (atrium-app-samples) | Web app (default) | Python 3, standard library only |
| `samples/hello-go` (atrium-app-samples) | Web app (default) | Go, standard library only |
| `samples/hello-agent-node` (atrium-app-samples) | **Agent (exception)** | Node 20+ |

The four language hellos implement the same **web app** surface: health, signed lifecycle webhooks, signed triggers, native config routes with a schema from §5.3.1, optional disk persistence (`ATRIUM_DATA_DIR`), quick view (`/ui`), external configure (`/configure`), and Public API capability probes in the quick view.

`hello-agent-node` is the only starter **without** a UI. Use it only for true background agents (§6). Its README states that explicitly — copy a web-app hello unless you have a written reason not to.

We deliberately do not publish a language package. The runtime contract is a few hundred lines in any language, most of which is HTTP routing you already have in your own stack, and a library that owns your server is useless if you are adding Atrium to an existing app. Verifying signatures is the one part where a subtle mistake is a security hole rather than a bug, which is why it has published test vectors instead of a package.

Start from a hello sample. Richer demo apps (schedules, persistence beyond the sample state file, real product workflows) may exist for COHO dogfooding; they are not part of the supported external starter set. In-repo `kits/atrium-node` is birthday-dogfood only and not a supported partner interface.

Samples target **self-host** by default. If COHO runs your image on Atrium Hosting, follow the Dockerfile contract in §5.6; if your source lives in a private repository, see §5.5.
