Automate: recipes and batches
#Recipes
A recipe chains Genesis tools together and is used as a single one. Once saved it appears on
Home (with its own form), in the CLI as genesis run recipe.<id>, in the Assistant and for any
AI connected via MCP (recipe_<id>): an AI can launch a whole process with a single call.
Built-in:
| Recipe | What it does |
|---|---|
| Subtitled vertical clips | Finds the best moments of a long video (ai.highlights), cuts them, turns them vertical following the subject and adds subtitles |
| Podcast: clean audio and article | Reduces noise, normalizes to −16 LUFS, transcribes (SRT) and writes a Word article |
| Subtitle (and go vertical) | Automatic subtitles, optionally after reframing to 9:16 |
| Image for social media | 1080×1080, 1080×1920 and 1200×630 versions, cropped without distortion |
Create them in Automate → New recipe or duplicate a built-in one. They're saved in
<Genesis data>/recipes/<id>.json:
{
"id": "my-recipe",
"name": "My recipe",
"description": "What it does (the AI using it reads this too).",
"inputs": [
{ "name": "video", "label": "Video", "type": "file", "required": true },
{ "name": "count", "label": "Clips", "type": "number", "default": 3 }
],
"steps": [
{ "id": "moments", "tool": "ai.highlights", "input": { "input": "{{inputs.video}}", "count": "{{inputs.count}}" } },
{ "id": "clips", "tool": "video.cut", "forEach": "{{steps.moments.highlights}}", "parallel": 2,
"input": { "input": "{{inputs.video}}", "start": "{{item.start}}", "end": "{{item.end}}",
"output": "{{inputs.video|dir}}/{{inputs.video|stem}}_clip{{number}}.mp4" } }
],
"outputs": { "clips": "{{steps.clips}}" }
}- Inputs:
file,files,text,longtext,number,booleanandchoice(withoptions). - Steps: any tool, including plugins (
ext.…) and other recipes (recipe.…).ifskips the step when it's false;forEachrepeats it for each item of a list (item,index,number), up toparallel(1–4) at a time. - References:
{{inputs.x}},{{steps.id.field}},{{steps.id.list[0].field}}. A reference on its own keeps its type (number, list…); inside a string it's written as text. - Filters:
|stem(name without extension),|name,|dir,|ext,|json,|default:valueand|or:other.reference(for example, the result of a step that was skipped). - Everything is checked before running (tools that don't exist, references to later steps, undeclared inputs…) and errors say which step they're in.
#Batches
Automate → Batch (or the batch.run tool) applies a tool or recipe to a list of files or to a
folder, with the same settings for all. If one fails, it carries on with the rest and reports on
each one. In the settings you can use {{file}}, {{file|stem}}, {{file|dir}} and {{number}}:
genesis run batch.run tool=recipe.subtitular folder=~/Videos/talks 'extensions=["mp4"]' parallel=2genesis run batch.run tool=image.transform folder=photos 'input={"width": 1200, "output": "{{file|dir}}/web/{{file|stem}}.jpg"}'#Templates
When you open Documents, Presentations, Spreadsheets or the Video editor without a file you get Start from a template: 4 documents (report, meeting minutes, business proposal, letter), 3 presentations (investor pitch, lecture, quarterly results), 3 spreadsheets (monthly budget, invoice with VAT, project tracker) and 3 videos (vertical for social media, video with intro and lower third, photo slideshow).
The Template button in each editor's toolbar saves the current project as your own template
(<Genesis data>/templates/<type>/), which appears first in the gallery and can be deleted from
there.
#Best moments (ai.highlights)
It transcribes the file and asks a language model (a connected account or a local model) for the fragments that work best on their own. It snaps them to subtitle boundaries so sentences aren't cut and respects the minimum and maximum duration without overlaps. It accepts hints like «funny moments» or «practical tips».