Skip to main content
ralphy render <project> is the one-shot path from a populated workspace to a finished mp4. The editor, audio, video, and voice verbs are the observability and post-processing helpers that bracket it — preflight checks before the render, ffmpeg recipes after. Per AGENTS.md invariant #5, there is no auto-launched Studio; iterations happen via ralphy generate + ralphy render, not Studio scrubbing.

ralphy render

Reads scenario.json + asset-manifest.json, drives HyperFrames (Puppeteer rasterizer + FFmpeg muxer) against .ralphy/workspaces/<ws>/projects/<id>/index.html, optionally post-processes with EBU R128 loudnorm.
Output lands at .ralphy/workspaces/<ws>/projects/<id>/render/final.mp4. With --loudnorm, the raw render writes to final.raw.mp4 and the ffmpeg pass produces final.mp4 at -16 LUFS (TikTok/Reels target).
--output <path>
string
Custom output path. Default: .ralphy/workspaces/<ws>/projects/<id>/render/final.mp4.
--loudnorm
boolean
Post-process with loudnorm=I=-16:TP=-1.5:LRA=11. Adds a few seconds, fixes the “too quiet on mobile” problem.
--fps <fps>
number
Frame rate. Default: 30.
--quality <quality>
string
Quality preset: draft | standard | high. Default: standard.
--dry-run
boolean
Print the resolved render plan; skip the actual render.
Full surface: /reference/cli/render.

When it fails

HyperFrames render exits non-zero → the log line goes to generations.jsonl with status: "error" and E_INTERNAL raises with the last 500 bytes of stderr. Loudnorm failure → same, with the ffmpeg tail.

ralphy editor

Editor-stage observability — preflight every clip with ffprobe, sum durations, flag missing slots, surface aspect / fps / codec mismatches before the render.
preflight exits 1 on red — wire it into CI ahead of ralphy render and you’ll catch wrong-aspect leftovers from a model swap, missing scenes, codec drift. Full surface: /reference/cli/editor.

ralphy audio

Audio recipes wrapping cli/lib/ffmpeg-recipes.ts. Three recipes ship in v1:
Each recipe appends a structured log line to generations.jsonl when --project is set. Full surface: /reference/cli/audio.

ralphy video

Video recipes — also cli/lib/ffmpeg-recipes.ts. Common subset:
optimize reports the compression ratio in the result. Full surface: /reference/cli/video.

ralphy voice

Pre-flight checks against the ElevenLabs voice library. The single most common mid-batch failure is a deleted voice ID; the exists verb catches it before the batch commits.
Full surface: /reference/cli/voice.

The render → eval → publish loop

eval is the quality gate after the render; see Eval and research. When eval flags issues, the agent regenerates the offending slots and re-runs render — iterations are CLI-native.