Build and install a blueprint
A blueprint is a portable deployment package: a snapshot of projects, agents, skills, MCPs, and cron triggers that can be installed into any pod. Build one from your existing resources, then install it from the registry to recreate that setup in a new environment.
How blueprints work
A blueprint template contains:
- Projects: names, descriptions, permissions, and agent assignments
- Agents: references (or forks) with their skill and MCP dependencies
- Skills: references (or forks) with version pins
- MCPs: references (or forks)
- Cron triggers: schedules, prompts, and timezones (installed disabled by default)
When you install, Ren resolves each resource: if you can reference the original (same org or public), it links; otherwise it forks a copy into your pod. See Blueprints for the full concept.
In the UI
In the UI
-
Open Blueprints in the sidebar and click New blueprint.
-
Select the projects, agents, skills, and MCPs to include.
-
Click Create. The blueprint is saved as a draft.
-
To share it, click Publish to registry.
-
To install, browse the registry, pick a blueprint, and click Install.
Programmatically
Create a blueprint
curl -X POST https://api.renai.build/api/blueprints \ -H "Authorization: Bearer $REN_PAT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Customer support", "description": "Support agent with knowledge base", "selection": { "projectIds": ["prj_def456"], "agentIds": ["agt_abc123"], "skillIds": ["skl_abc123"] } }'Publish a blueprint
curl -X POST "https://api.renai.build/api/blueprints/blt_abc123/publish" \ -H "Authorization: Bearer $REN_PAT_TOKEN"Install a blueprint into a pod. source is the blueprint’s id or slug:
curl -X POST "https://api.renai.build/api/blueprints/install" \ -H "Authorization: Bearer $REN_PAT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source": "blt_abc123", "podId": "pod_abc123" }'import { createRenClient, pat } from "@renai-labs/sdk"
const client = createRenClient({baseUrl: "https://api.renai.build",auth: pat(process.env.REN_PAT_TOKEN!),})
// Create a blueprintconst { data: blueprint, error } = await client.blueprint.create({body: {name: "Customer support",description: "Support agent with knowledge base",selection: {projectIds: ["prj_def456"],agentIds: ["agt_abc123"],skillIds: ["skl_abc123"],},},})if (error) throw errorconsole.log(blueprint.id) // "blt_abc123"
// Publish it to the registryawait client.blueprint.publish({ path: { id: blueprint.id } })
// Install it into a podawait client.blueprint.install({body: { source: blueprint.id, podId: "pod_abc123" },})