Agents
Build AI and agents into your editor.
Three ways to add AI inside the editor. Guardrails, memory and assets are built in.
For builders
Three ways to build with AI, inside the editor.
Add generative AI with one endpoint URL.
Point the editor at your endpoint. Your users generate pictures, video and voice inside the editor. Use your own AI keys, or our managed service.
<VideoEditor ai={{ endpointUrl: '/api/ai', image: true }} />Let agents design the template.
Your agent builds the design with the editor’s tools, in the editor or headless. People approve it, or edit it in the same editor.
Turn creative work into a pipeline.
Save templates with locked brand items as presets. Run them in your pipeline, one finished piece per row of data.
Built in, so you do not have to build it.
Locked items stay locked.
Only a person can change a lock, and the agent is refused if it tries. Set a limit on AI use per session.
Continue where it stopped.
Save the conversation and restore it later, so the agent continues where it stopped.
Your files, your storage.
Uploads and generated files go to your own storage.
Example presets
Start from a preset. Or ask for anything.
These are only examples. Your users ask in their own words, and the AI designs it with the editor’s tools.
Brand text layout
The AI proposes a text layout that follows your brand. It is applied only after the person approves it.
Canvas resize
Resize one design with Fit, Fill, Reflow or Keep. The assistant can do it for you.
Extra sizes and Social pack
The export panel makes several sizes at once. Each size is a separate video.
+ Your own preset
Save a template with your brand items locked, and reuse it. Saving your own request as a preset is coming soon.
Your tools
Connect your own tools to the editor.
Put your own buttons in the editor. Or let your AI model drive it, with the editor’s own tools.
Show the code
import { ImageEditor, type ImageCustomAction } from '@layermetry/media-editor/react';
const inspectPicture: ImageCustomAction = {
id: 'inspect-picture',
label: 'Inspect picture',
placements: ['selection', 'contextMenu'],
when: { itemTypes: ['image'] },
run(ctx) {
ctx.notify(`Selected picture: ${ctx.items[0].id}`, 'info');
},
};
<ImageEditor licenseKey="YOUR_LICENSE_KEY" onClose={() => undefined}
customActions={[inspectPicture]} />import { createHeadlessChatRuntime } from '@layermetry/video-editor';
// A video editor with no interface, for your own agent.
const runtime = createHeadlessChatRuntime({ licenseKey: KEY, canvasSize: { width: 1080, height: 1920 } });
await runtime.ready; // the licence check
const tools = runtime.toolContracts; // name, description and argument schema of each tool
// Send `tools` to your model. When the model calls one, run it in the editor:
const result = await runtime.executeTool(call.name, call.input, { turnMessages });The boundary
Where the boundary is.
What stops an agent doing something unexpected?
Only verbs change the document, and the verbs are a published, numbered list. An agent proposes verbs from that list; the host or the person approves them; the SDK checks each one before it is applied. Anything not on the list simply cannot happen.
Which verbs can a model never call?
Six of them, in any mode. No prompt reaches those six.
Can we add our own verbs?
Yes. A host registers its own verbs next to ours, so the agent’s vocabulary is yours to extend, not just the model behind it.
Can an outside agent call the verbs over MCP?
Not today. An MCP server that exposes the verbs is on the roadmap.
Give your agent a vocabulary.
Forty-four verbs live today, and your own next to them.
