render-video

Workflow for rendering a Helios composition to a video file. Use when you need to automate video production or export a high-quality animation.

45 stars

Best use case

render-video is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Workflow for rendering a Helios composition to a video file. Use when you need to automate video production or export a high-quality animation.

Teams using render-video should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/render-video/SKILL.md --create-dirs "https://raw.githubusercontent.com/BintzGavin/helios/main/.agents/skills/helios-skills/skills/workflows/render-video/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/render-video/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How render-video Compares

Feature / Agentrender-videoStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Workflow for rendering a Helios composition to a video file. Use when you need to automate video production or export a high-quality animation.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Render Video Workflow

Rendering is the process of capturing a composition frame-by-frame and encoding it into a video file (e.g., MP4). This is done using the `@helios-project/renderer` package in a Node.js environment.

## 1. Prerequisites

Ensure your composition is running. The renderer needs a URL to access the composition.
- Locally: `npm run dev` (e.g., `http://localhost:3000/composition.html`)
- Remote: Any accessible URL.

## 2. Create Render Script

Create a file named `render.js` (or `render.ts` if using `ts-node`).

```typescript
import { Renderer } from '@helios-project/renderer';
import path from 'path';

async function main() {
    // 1. Configuration
    const compositionUrl = 'http://localhost:3000/composition.html';
    const outputPath = path.resolve('output.mp4');

    // 2. Initialize Renderer
    const renderer = new Renderer({
        width: 1920,
        height: 1080,
        fps: 30,
        durationInSeconds: 10,
        // frameCount: 300, // Optional: Override durationInSeconds with exact frame count
        mode: 'canvas', // Use 'dom' if your animation uses CSS/HTML elements

        // Audio Configuration
        audioTracks: [
            { path: 'background.mp3', volume: 0.5 },
            { path: 'voiceover.wav', offset: 2 }
        ],
        audioCodec: 'aac',

        // Input Props (Dynamic Content)
        inputProps: {
            title: "Custom Render",
            color: "#00ff00"
        }
    });

    console.log(`Starting render of ${compositionUrl}...`);

    // 3. Execute Render
    try {
        await renderer.render(compositionUrl, outputPath, {
            onProgress: (p) => {
                const percent = Math.round(p * 100);
                process.stdout.write(`\rProgress: ${percent}%`);
            }
        });
        console.log(`\nDone! Saved to ${outputPath}`);
    } catch (err) {
        console.error('\nRender failed:', err);
        process.exit(1);
    }
}

main();
```

## 3. Run Render

Execute the script.

```bash
# If using ts-node
npx ts-node render.ts

# If using node (compiled js)
node render.js
```

## Troubleshooting

### "Page timeout" or "Connection refused"
- Ensure the local server hosting the composition is running.
- Check if the URL is correct and accessible in a regular browser.

### "Black output" or "Empty video"
- Ensure `helios.bindToDocumentTimeline()` is called in your composition.
- Ensure `window.helios` is exposed.
- If using `mode: 'canvas'`, ensure you are drawing to a `<canvas>` element.
- If using `mode: 'dom'`, ensure elements are visible.

### "Render hangs"
- Check if the composition has errors in the browser console.
- Enable tracing to debug:
  ```typescript
  await renderer.render(url, out, { tracePath: 'trace.zip' });
  ```

### Audio Issues
- Ensure audio file paths are correct relative to where the script is run.
- If using `mode: 'dom'` and relying on implicit audio (e.g. `<audio>` tags), ensure the elements are present in the DOM.

Related Skills

helios-renderer

45
from BintzGavin/helios

Renderer API for generating video/image output from Helios compositions. Use when you need to programmatically render a composition to a file using Node.js.

guided-testimonial-video

45
from BintzGavin/helios

End-to-end guided workflow for creating a social proof or testimonial video. Extracts brand identity from the repo, generates a warm soundtrack, and produces a trust-building motion.dev composition rendered via Helios CLI. Use when making customer testimonial, review highlight, or social proof videos.

guided-explainer-video

45
from BintzGavin/helios

End-to-end guided workflow for creating an explainer or walkthrough video. Extracts brand identity from the repo, generates a measured soundtrack, and produces a narrative-driven motion.dev composition rendered via Helios CLI. Use when making how-it-works, feature walkthrough, or educational videos.

helios-skills

45
from BintzGavin/helios

Collection of agent skills for Helios video engine. Use when working with programmatic video creation, browser-native animations, or Helios compositions. Install individual skills by path for specific capabilities.

Workflow & Productivity

skill-creator

45
from BintzGavin/helios

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

workflow-visualize-data

45
from BintzGavin/helios

Workflow for creating data-driven animations. Use when you need to visualize datasets using D3, P5, or other libraries.

create-composition

45
from BintzGavin/helios

Workflow for creating a new Helios composition. Use when building a new animation project or converting an existing animation to run in Helios.

helios-studio

45
from BintzGavin/helios

Studio tool for developing and previewing Helios compositions. Use when you want to launch the interactive development environment or manage assets.

helios-player

45
from BintzGavin/helios

Player API for embedding Helios compositions in web pages. Use when you need to display a composition with playback controls, enable client-side exporting, or support Picture-in-Picture.

guided-social-clip

45
from BintzGavin/helios

End-to-end guided workflow for creating a short-form social media clip (Reels, TikTok, Shorts). Extracts brand identity from the repo, generates a punchy soundtrack, and produces a vertical 9:16 motion.dev composition rendered via Helios CLI. Use when making Instagram Reels, TikTok videos, YouTube Shorts, or other vertical short-form content.

motion-design-rules

45
from BintzGavin/helios

Motion design framework for programmatic video. Defines anti-slideshow architecture, visual layering, physics-based easing, choreography rules, and quality validation. Reference this skill from any guided video skill.

guided-launch-announcement

45
from BintzGavin/helios

End-to-end guided workflow for creating a product launch or release announcement video. Extracts brand identity from the repo, generates a cinematic soundtrack, and produces a reveal-driven motion.dev composition rendered via Helios CLI. Use when making launch announcements, release videos, or product reveals.