---
summary: "ScaiGrid's runtime-environment wrapper for ScaiCore programs \u2014 provisioning,\
  \ lifecycle, checkpoints, plugin install, publish-as-model."
title: ScaiCore Runtime
path: modules/scaicore
status: published
---

This page documents the ScaiGrid module that hosts and manages ScaiCore runtime environments — provisioning, lifecycle, checkpoint resolution, approval flow, plugin install, publish-as-model. **For the ScaiCore language and standalone runtime itself, see [/docs/scaicore](https://www.scailabs.ai/docs/scaicore).**

ScaiCore-the-language is a separate product with its own docs. ScaiGrid's `scaicore` module is a wrapper around it — the same way ScaiGrid wraps any inference provider. It takes a ScaiCore IR bundle, stores it as a *Core* in your tenant, manages the lifecycle (created, starting, running, paused, stopped), routes its checkpoints to humans for approval, lets you install plugins, and optionally publishes the whole thing as a chat model in the ScaiGrid model catalogue.

## When to use it

- You have a ScaiCore program (compiled to a `.scaicore-ir` bundle) and you want ScaiGrid to host it for you.
- You want the program's human-in-the-loop checkpoints to land in a queue that real people can resolve from the admin UI.
- You want the agent to appear as a model in ScaiGrid's catalogue so any ScaiGrid client can chat with it via `/v1/inference/chat`.
- You want to delegate a specific human user's identity to the program so its tool-calls run as them.

If you only need to *write* ScaiCore programs, you don't need this module — [/docs/scaicore](https://www.scailabs.ai/docs/scaicore) covers the language and the standalone runtime.

## Two-minute mental model

- A **Core** is one row in your tenant: a name, a slug, a `.scaicore-ir` source bundle, plus runtime config (mode, concurrency, identity, plugins, environment variables, resource limits).
- A **checkpoint** is a paused execution inside a Core waiting for a human decision. ScaiGrid persists it, notifies the assignee, and lets them resolve it via the API or admin UI.
- A **delegation** is a way for the Core to run as a specific human user instead of as the tenant service account.
- A **plugin** is a registered external endpoint the Core can call through its `HostEnvironment` plugin bridge.
- **Publishing** a Core creates a `FrontendModel` row (slug `scaicore/{tenant}/{core}`) so the Core is callable through ScaiGrid's standard model catalogue.

## Where to go next

- [Quickstart](./quickstart) — upload a bundle, start a Core, resolve a checkpoint.
- [Architecture](./concepts/architecture) — how the wrapper sits over the language runtime.
- [Checkpoints](./concepts/checkpoints) — the approval-flow data model.
- [Approval flow](./tutorials/approval-flow) — wire a HITL checkpoint end-to-end.
- [Publish as model](./tutorials/publish-as-model) — expose a Core through the inference API.
- [API reference](./reference/api) — every endpoint.
- [Permissions](./reference/permissions) — the six module permission keys.

The module id is `scaicore`; the API is mounted at `/v1/modules/scaicore/`. For the language and standalone runtime, see [/docs/scaicore](https://www.scailabs.ai/docs/scaicore).
