MrTechKing

5 min read

OpenMontage: Turn Your AI Coding Agent Into a Video Studio (GitHub, Scanned)

Describe a video and your coding agent researches, scripts, generates, edits and renders it, on free or paid tools.

OpenMontage logo
✅
Scan: safe. Nothing malicious. Know the AGPL licence, paid services can cost money once you add keys, and nine high advisories sit in the local rendering toolchain. Scanned Nov 7, 2026; the full report is below.

OpenMontage turns an AI coding assistant such as Claude Code, Cursor, Copilot, Windsurf or Codex into a video production team. You describe the video you want, or paste a YouTube Short, Reel or TikTok you like as a reference, and the agent researches the topic, writes the script, finds or generates the visuals, adds narration, music and captions, and renders a finished file. There is no separate app: the assistant reads the project's pipeline files and calls its Python tools.

It is built around checkpoints rather than one big prompt. Each pipeline (explainers, talking heads, trailers, documentary montages, character animation, dubbing and more) runs in stages, and a local board called Backlot shows progress and every dollar spent. Generation pauses on a scene-by-scene contact sheet so you can approve the visuals before the render. The project counts 12 pipelines, over 100 tools and over 60 provider integrations, and it has about 78,000 stars and 76 contributors since its March 2026 start.

It does not have to cost anything. With no paid keys it can narrate with Piper, a free offline voice, pull footage from Archive.org, NASA and Wikimedia Commons, and render with Remotion, HyperFrames and FFmpeg. Add keys for services like fal.ai, Google or ElevenLabs and it can generate new images and video clips. The project's published examples include a 60-second animated short with a stated total cost of $1.33.

  • Repository: github.com/calesthio/OpenMontage
  • Licence: AGPL-3.0 (GNU Affero General Public License v3.0)
  • Language: Python. Stars: 77.9K. Forks: 10.4K. Last push: Nov 3, 2026.
  • Scan: safe, Nov 7, 2026, commit d21f5d4

Who it is for

Creators and marketers who already use an AI coding assistant and want explainers, shorts or trailers without an editing suite, and developers who want a video pipeline they can read and change. You need to be comfortable installing Python, Node and FFmpeg.

Getting started

1. Install Python 3.10 or later, Node 18 or later and FFmpeg, then download the project and set it up

git clone https://github.com/calesthio/OpenMontage.git && cd OpenMontage && make setup

2. Optional: add API keys to the .env file. Every key is optional; more keys unlock more tools

FAL_KEY=your-key

3. Open the folder in your AI coding assistant and ask for a video

Make a 45-second animated explainer about why the sky is blue

Make sure your budget suits you before adding paid keys: config.yaml starts at a $10 budget in warn mode, asks before any single action over $0.50, and warns rather than stops until you set the mode to cap. Your coding assistant's own usage is billed separately.

Safety scan

We cloned calesthio/OpenMontage at commit d21f5d4 on Nov 7, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secret hits and no pattern hits across 2,209 files and about 450,000 lines, mostly Python and Markdown. No binaries committed. The two scripts listed as installers are test fixtures inside one skill's test folder, with no sudo.
  • remotion-composer/package-lock.json has 244 packages and 16 advisories: nine high, five moderate, two low. The highs are five in fast-uri (URL parsing), two in browserslist, one in source-map-js and one in zod, mostly crashes, memory exhaustion or URL confusion from hostile input. This is the renderer running on your own machine on your own project, so the risk is low; do not expose Remotion Studio to a network.
  • The Python packages have no lockfile, so the advisory check could not cover them. make setup also fetches the latest hyperframes package from npm with npx rather than a pinned version. The HyperFrames docs bundled in the repo describe anonymous usage counters in its own CLI; set HYPERFRAMES_NO_TELEMETRY=1 to switch them off.
  • We found no usage reporting in OpenMontage's own code. Network hosts are the AI services (fal.ai, BFL, MiniMax, HeyGen, ElevenLabs, Google and others) and stock and archive libraries. Backlot binds to 127.0.0.1 and refuses requests with any other Host header.
  • It ships many skill files for the agent, so they got the extra pass: no hidden Unicode in the Markdown, YAML or JSON, no injection phrases and no agent hook files. One workflow with no third-party actions and no pull_request_target. A licence and contributing guide are present; no Dependabot or security policy.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time code2 installer scripts
Committed binariesNone.
CI workflows1 workflow. None use pull_request_target. No third-party actions.
Network hosts40 distinct hosts referenced from source; most often api.bfl.ai, huggingface.co, queue.fal.run, cdn.example. No URLs to bare IP addresses.
Known vulnerabilities16 advisories across 243 pinned packages: 0 critical, 9 high, 5 moderate, 2 low. remotion-composer/package-lock.json: 244 packages, 16 advisories.
Project hygieneHas licence file, contributing guide. Missing security policy, automated dependency updates, CodeQL.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

Installer scripts (2)
Worst known vulnerabilities (16 of 16)
AdvisorySeverityPackageSummary
GHSA-73wf-gq98-2v4ghighbrowserslist@4.28.4Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)
GHSA-c83g-rgw3-j3cxhighbrowserslist@4.28.4Browserslist: Unbounded memory growth (no cache eviction) via distinct query results, leading to eventual OOM
GHSA-5jgf-p345-68v8highfast-uri@3.1.5fast-uri vulnerable to host confusion via skipped IDN canonicalization on scheme-relative references
GHSA-f65p-4m7j-42xchighfast-uri@3.1.5fast-uri vulnerable to server-side request forgery via malformed IPv6 normalization
GHSA-fph4-wmhf-6fwfhighfast-uri@3.1.5fast-uri vulnerable to server-side request forgery via repeated hostname percent-decoding
GHSA-jqff-g426-hqxphighfast-uri@3.1.5fast-uri vulnerable to host confusion via percent-encoded scheme normalization
GHSA-qw65-cvwx-89v3highfast-uri@3.1.5fast-uri vulnerable to authority injection via an unvalidated port in serialize
GHSA-68fv-2mgg-jv7qhighsource-map-js@1.2.1source-map-js allows event-loop denial of service through indexed source-map section offsets
GHSA-mrhx-c7xc-m3w5highzod@4.3.6Zod can exhaust memory while validating oversized constrained collections
GHSA-w5vr-8v7q-w6rvmoderatebaseline-browser-mapping@2.10.40baseline-browser-mapping process termination on invalid input causes denial of service
GHSA-hrr3-gc8f-f4qjmoderatefast-uri@3.1.5fast-uri vulnerable to inconsistent host case normalization via percent-encoded octets
GHSA-w74x-v6f9-j3xgmoderatefast-uri@3.1.5fast-uri vulnerable to URI scheme spoofing via percent-encoded scheme decoding
GHSA-wjr9-j795-jxcrmoderatefast-uri@3.1.5fast-uri vulnerable to host confusion via unchecked WHATWG host canonicalization
GHSA-rj75-hqrm-r3gfmoderatepostcss-selector-parser@7.1.4PostCSS: Quadratic complexity in flat selector parsing allows CPU exhaustion
GHSA-333x-w4r6-6crplowfast-uri@3.1.5fast-uri vulnerable to scheme injection via an unescaped first-segment colon in suffix references
GHSA-xhq7-xmqj-769hlowfast-uri@3.1.5fast-uri vulnerable to improper path equivalence in relative reference normalization

By the numbers

Stars77.9K
Forks10.4K
Contributors76
Commits501
Open issues118
Open pull requests330
Releases0
Latest releasenone tagged
LicenceAGPL-3.0
Main languagePython
Project age7 months
Last pushNov 3, 2026
Tracked files2,209
Lines of code450.3K
Checkout size89 MB

Lines by language: Markdown 216.3K, Python 152.6K, HTML 41.1K, JSON 12.2K, TypeScript 12K, JavaScript 10.1K.

Questions

Is OpenMontage free?

The software is free under the AGPL-3.0 licence, and the zero-key path costs nothing beyond your coding assistant's usage. Generated images, video and premium voices are billed by each provider, for example about $0.03 an image on fal.ai by the project's own guide.

What does the AGPL licence mean for me?

Using it on your own machine to make videos is fine. If you change the code and let other people use your version, including over a network as a service, the AGPL requires you to offer them your modified source code. A company planning to build a product on it should have that checked first.

Which API keys do I need?

None to start. Free keys from Pexels, Pixabay and Unsplash widen the stock library. FAL_KEY is the broadest paid option, covering FLUX images and Veo, Kling and MiniMax video. OpenAI, Google, ElevenLabs, Runway, Suno and others are all optional. With a suitable graphics card, local video models can also run free.

Can I copy a video I found online?

It uses a reference video for its pacing, structure and tone, and proposes new concepts, using the yt-dlp tool to fetch it. That does not give you rights to the original, and each stock library and AI service has its own terms, so check them before publishing commercially.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.