lace-app-sdk
Manifest
LaceAppManifest declares everything your
app provides. LACE discovers manifests and wires providers at bootstrap — no
registration calls, no glue code.
# app.py — one file declares the whole app. LACE discovers the rest.
from lace_app_sdk.manifest import LaceAppManifest
from app.data import TICKETS
MANIFEST = LaceAppManifest(
app_id="acme.field_intake",
display_name="Field Intake",
version="0.1.0",
data_collections=[TICKETS],
tool_providers=["app.tools:ToolProvider"],
agent_providers=["app.agents:AgentProvider"],
route_providers=["app.routes:RouteProvider"],
) What a manifest declares
Routes, tools, pipelines, agents, data collections, UI, schedules, and migrations. The manifest is the app's whole contract with the platform: it is what gets reviewed before publish, what the permission model is derived from, and what changes when you ship a new version.
Declaration is enforcement
Because the manifest is the only way capabilities enter the runtime, an app cannot acquire a tool, a route, or a data collection it did not declare. That is what makes a diff of the manifest a meaningful review artifact — reviewing the declaration is reviewing the blast radius.
Next: data collections.