MulmoCast videos

The GUI panel shows and renders MulmoCast scripts (mulmoScripts) — the slides and videos an agent writes for you. This page covers the parts that need something installed first.

  1. Remotion scenes
    1. 1. Install the packages, in your home directory
    2. 2. Check that MulmoCast can see them
    3. 3. Claude Code must be logged in
    4. 4. Make a video
    5. Things to know

Remotion scenes

Since mulmocast 2.13.0 a beat can be a remotion scene: you describe in words what the scene shows, Claude Code writes it as a Remotion component, and MulmoCast renders it into the beat’s video — motion, SVG paths, 3D (three.js), noise and shader effects.

{
  "remotionParams": { "brief": "Deep navy background, off-white text, one cyan accent." },
  "beats": [
    {
      "text": "What the narrator says over this scene.",
      "image": {
        "type": "remotion",
        "prompt": "The title appears in the centre, then three boxes appear left to right, joined by arrows.",
        "fps": 30
      }
    }
  ]
}
  • image.prompt (required) — what the scene shows.
  • image.fps (optional) — 1 to 60, 30 when left out.
  • remotionParams.brief (optional) — art direction shared by every scene, so they look like one video.

The scene lasts as long as its narration, or as the beat’s duration when you set a longer one. The full reference is mulmocast’s remotion.md.

1. Install the packages, in your home directory

They are optional packages of mulmocast and MulmoTerminal does not install them — only people who want these scenes need them. Install them in your home directory:

cd ~
npm install remotion @remotion/bundler @remotion/renderer react react-dom \
  @remotion/three three @react-three/fiber @remotion/effects @remotion/paths @remotion/noise \
  @remotion/shapes @remotion/transitions @remotion/motion-blur @remotion/layout-utils

Why there: npx mulmoterminal@latest keeps the app in a folder under ~/.npm/_npx/ that is replaced on every release, so packages installed next to it would be gone after the next upgrade. Node looks for packages in every parent folder’s node_modules, so ~/node_modules is found from any release.

2. Check that MulmoCast can see them

npx mulmoterminal@latest init

The tool list should include:

  ✓ remotion — Remotion scenes in MulmoCast videos

○ remotion — optional means nothing was found; installed only in part; missing: … names the packages still to install.

3. Claude Code must be logged in

The scene is written by claude -p, started by the MulmoTerminal server — not by the cell you are talking to. So:

  • claude has to be installed and logged in on the machine the server runs on.
  • It runs as the server’s own login (your default one). A cell running on another subscription does not change that, and the usage is counted there.
  • Each scene calls it a few times — to write the component, to fix it if it fails to render, and to look at frames from the render and improve it. Expect a minute or more per scene.

4. Make a video

Agents use a remotion beat only when you ask for one, since they cannot tell whether the packages are installed. Ask by name — for example “make the second beat a remotion scene: …” — or write the beat into the script yourself, then render the video from the GUI panel as usual.

The first render downloads a headless Chrome for Remotion (around 90 MB), once.

The code Claude Code wrote is kept next to the beat’s images, in <beat>_remotion/<hash>.tsx, and reused as long as nothing it was written from changes: the prompt, the narration’s wording, the brief, the scene’s place in the video, and the canvas size and fps. Change any of those — including adding a beat before it — and the scene is written again. Audio that only got longer or shorter (another voice, another speed) re-renders the same code without asking Claude Code.

Things to know

  • The generated code runs on your machine, in a headless browser that can reach the network — the same trust as an html_tailwind beat’s script. Do not render a script you do not trust.
  • The install leaves a package.json and node_modules in your home directory, and those packages are then found by any Node project under it that does not install its own copy.
  • A remotion beat cannot also have a moviePrompt.
  • On Linux without a GPU, three.js scenes may fail to get a WebGL context.

This site uses Just the Docs, a documentation theme for Jekyll.