# Library

> The Library (Console → Building blocks → Library) holds ready-made bundles of agents, models, skills, templates and cells from library.openeng.app. Importing a bundle adds its items to your own lists and selects them on a config in one step; you then review and publish that config. As of September 25, 2026, OpenEng AI isn't live yet.

A **library** is a themed, ready-made bundle of building blocks: agents, models, skills, templates
and cells for one kind of work, such as "Kubernetes Operations" or "Backend API Platform". You
import a bundle into a config as one unit instead of picking every item yourself. The bundles are
published at [library.openeng.app](https://library.openeng.app), and the Console's **Library** page
(Building blocks → Library) lists them and imports them.

> [!WARNING] Status on September 25, 2026: OpenEng AI isn't live yet
> The Console and Web Console interfaces load, but the OpenEng AI API routes and the Broker aren't
> deployed. Nothing can be saved or published, and no AI engine can register or connect. Pro,
> Enterprise and pay-as-you-go launch in Q4 2026 and can't be purchased yet. This page describes
> OpenEng AI as it works once those services are live ([status](ai.md)).

*Figure: Building blocks → Library — one card per bundle with its category, its item counts and an Import button that expands in place.*

## What a bundle contains

A bundle carries no new content of its own. It points, by id, at items already published in the
other public catalogs:

| In the bundle | Points at | Catalog |
| --- | --- | --- |
| Agents | `agent_def_…` | [agents.openeng.app](https://agents.openeng.app) — see [Agents](agents.md) |
| Models | `mdl_def_…`, each tied to one role group (for example the planner or the reviewer) | [models.openeng.app](https://models.openeng.app) — see [Models](models.md) |
| Skills | `skill_def_…` | [skills.openeng.app](https://skills.openeng.app) — see [Skills](skills.md) |
| Templates | `tpl_def_…` | [templates.openeng.app](https://templates.openeng.app) — see [Templates](templates.md) |
| Cells | `cell_def_…` | [cells.openeng.app](https://cells.openeng.app) — see [Cells](cells.md) |
| Loops (supported by the importer; no current bundle has any) | `loop_def_…` | [loops.openeng.app](https://loops.openeng.app) — see [Loops](loops.md#global-loops) |

A bundle picks at most one model per role group. The Console can also import loops from a bundle,
but none of the current bundles includes any.

### The bundles today

As of September 25, 2026, library.openeng.app publishes eight bundles:

| Bundle | Category | Agents | Models | Skills | Templates | Cells |
| --- | --- | --- | --- | --- | --- | --- |
| Backend API Platform | Backend | 6 | 6 | 6 | 4 | 4 |
| CI/CD & Release Engineering | DevOps | 6 | 7 | 6 | 4 | 4 |
| Cloud Cost & FinOps | FinOps | 6 | 6 | 4 | 3 | 4 |
| Database & Data Reliability | Data | 6 | 7 | 6 | 4 | 4 |
| Frontend & Web Ops | Frontend | 6 | 7 | 6 | 4 | 0 |
| Kubernetes Operations | Infrastructure | 6 | 7 | 6 | 4 | 4 |
| Observability & Incident Response | Operations | 6 | 7 | 6 | 1 | 4 |
| Security & Compliance Baseline | Security | 6 | 7 | 5 | 4 | 4 |

For example, **Kubernetes Operations** brings six inspector and auditor agents (admission webhooks,
certificate expiry, config and secret drift, CoreDNS, capacity and reliability, cost), hardening
skills such as least-privilege RBAC and Helm chart scaffolding, four templates (ArgoCD GitOps
delivery, Helm chart authoring, a cluster security review, deployment manifests), cells for EKS,
AKS and GKE, and a model for each of seven role groups (Qwen3 4B for complexity analysis, Qwen3 14B
for planning, Qwen3 32B for plan orchestration, Qwen3 8B for the agent and the delegator, Phi-4 14B
for review, Llama 3.2 3B for summaries). Each bundle has its own page on library.openeng.app listing
every item.

## Import a bundle

1. Open **Library** in the Console (or press ⌘K and choose **Import a library**).
2. On a bundle's card, choose **Import**. The card expands in place (there is no dialog):
   - **Import into**: **New config**, or one of your existing configs.
   - **Config name**: used only when you create a new config. It defaults to the bundle's name.
3. Choose **Confirm import**. When it finishes, the Console opens the target config, and a toast
   sums up what was added (for example "6 agents, 7 models, 6 skills, 4 templates").
4. Review the config in its guided builder and publish it ([Configs](configs.md#publishing)).
   Importing never publishes anything: the engine only serves what you publish.

> **Note:** The import never creates a config you didn't name. Pick **New config** to get a fresh
> one, or pick an existing config to add the bundle to it.

## What an import does

The import reuses the same steps each Building blocks page uses, one domain at a time:

- **Agents** are copied into your agents (Agents → **Mine**) and attached to the config. An
  orchestrator agent arrives with every sub-agent in its tree.
- **Models** are added to **My models** under a unique name; a catalog model you already added is
  reused rather than copied again. They're catalog models, Ollama-library tags that need Ollama
  installed and running on the machine ([Models](models.md#the-models-page)). Each one is then bound to the role group the bundle names,
  unless the config already has a model for that role group: your existing choice always wins.
- **Skills** and **loops** are adopted: each becomes your own copy that remembers its catalog id.
  One you already adopted is reused.
- **Templates** become your own private templates, each holding a reference block to the catalog
  template, and are attached to the config.
- **Cells** are **not** registered for you. A cell connects to your own cloud account and needs a
  deployment URL that a bundle can't know, so the import ends with a notice that the bundle's cells
  need connecting. Finish each one on the [Cells](cells.md) page.
- Everything imported is **selected** on the config, so the config builder shows it ticked and the
  publish check finds it.
- If a bundle explicitly asks for it, the import also turns on the config's **Self-improving
  skills** switch ([Skills](skills.md#self-improving-skills)).

Each item is imported on its own. If one fails (for example, an item was removed from its catalog),
the rest still import, and a warning names what was skipped. Importing the same bundle again is
safe: items already on the config aren't added twice.

## After importing

- Register the bundle's cells on the [Cells](cells.md) page, then select them in the config.
- Check the config's **Models** step: the bundle filled only the role groups that were still empty.
- Publish the config. Running it needs the `openeng` engine, which starts only on an active Pro plan
  ([Plans & billing](account.md)).

## Plan & tier notes

The Library is open on every plan: browsing and importing bundles has no plan gate. The items it
imports follow their own pages' rules.

## Troubleshooting

**"Couldn't load the library catalog."** The Console couldn't reach library.openeng.app. Choose
**Try again**. If the page instead says the catalog may be stale, it's showing the last copy it
loaded successfully.

**"N cells need connecting."** Expected: cells are never registered automatically. Register each
one on the Cells page with your own deployment URL.

**"Some items were skipped."** An item the bundle names is no longer in its catalog, or a model's
role isn't a known role group (that model is imported without a binding). The rest of the bundle
imported normally.

**A role group kept its old model.** The import never replaces a model that's already bound to a
role group. Change it in the config's Models step.

**Nothing changed on my machine.** Importing only edits the config's draft. Publish the config.
