ice-film
A film made from scratch. A finished MP4 plus a delivery report.
A motion design and video director for your coding agent. It plans, writes the film as code, renders it and checks it.
npx skills add Omar-Tnzxo/ice-motion-director -g --all Open source, Apache-2.0, for Claude Code, Codex, Cursor, Gemini CLI and 40+ more agents.

One router skill reads your request and your project, then hands it to exactly one of six workflows.
“Cut this podcast recording into three vertical shorts with Arabic captions.”
ice-editYou supply footage to cut
A film made from scratch. A finished MP4 plus a delivery report.
A voice explains something. A narrated explainer with captions.
Make it like this. A new film in that style, with your content.
An edit of your own footage. The cut, captions, vertical versions.
Lottie and UI motion. Lottie JSON or animated SVG plus a developer handoff.
Ideas before anything is built. A concept set and a script, ready to build.
You
/ice-motion-director:ice Make a 20-second launch film for my note-taking app. Here is the site: <your URL>
Ice
I looked at your site and the ad rules for your field. Two decisions are still open; the first option in each is my recommendation.
Then I pitch, write, storyboard and build. If you are here, you see the style frames once before the full build.
/ice-04-storyboard
Review card: storyboard
/ice-05-lookExample session written for this page.
In Claude Code, start your first message with /ice-motion-director:ice, then describe the film in your own words, short or long; the command makes sure the director starts, even with other video skills installed. Ice researches your business first, then asks about every decision your prompt leaves open: four options per question with the recommended one first, at most four questions per message, and more than one message when many decisions are open. It asks nothing when your prompt already covers everything, or when you say "don't ask"; otherwise it waits for your answers, because silence is never taken as a yes. Then, only if you are there to answer, one preview (the style frames or the animatic), and after that it runs to the final file with no more questions. As each stage lands it sends you two lines and its stills without waiting for a reply, so a note can reach it mid-way. Everything it decided is logged and explained in the delivery note.
Run one stage at a time, from /ice-01-brief to /ice-10-deliver (in Claude Code the form that always works is /ice-motion-director:ice-01-brief). Each stage ends with a review card: what was made, the options and why one won, the critic's notes, the choices still open. Ask for changes as often as you like; say "approved" to lock a stage, or "approved, go on" to lock it and start the next one. /ice-status shows where you are.
Prompt length changes who makes each decision, never the quality. Switch at any time: type a stage command in the middle of a run, or /ice to let it finish on its own.
Every route runs on one spine of ten stages, the way a production company works. The numbers stay the same; the order changes with the kind of film.
Leads with Story. The default order. 04 and 05 run side by side, then 08a is made while 07 builds, and 08b mixes on the draft.
brief
concept
script
storyboardlook
animatic
buildsound
mix
review
deliver
All ten stages run, in this order. Two blocks on one step run side by side when your agent has sub-agents, one after another when it does not: 04 storyboard with 05 look, then 08a sound while 07 builds; 08b mixes on the draft. At stage 10, each language and aspect ratio renders in parallel.
Research first: the business brief (what it is, audience, product truth, market and competitors, brand identity and real material, current campaigns, tone), the brand material plan and the industry and platform ad rules; then the project brief and the questions on every open decision: four options each, at most four per message, more than one message when needed.
Main artifacts ice/BRIEF.mdice/research/COMPLIANCE.mdice/assets/brand-sheet.jsonice/DIRECTION.md
Rules come from ice-direction intake, ice-assets
At this size Full spine, lean crew, review rounds by the crew tiers in ice-film.
| ice-film | brief |
|---|---|
| ice-explainer | brief |
| ice-remake | brief plus reference analysis |
| ice-edit | brief plus ingest |
| ice-lottie | brief |
| ice-ideas | brief |
Templates and demos are references, never defaults. A film has to differ from its nearest bundled template on at least four of six axes before it moves on. A look you chose yourself (a reference, a named style, your brand's own identity) is exempt on the axes it fixes.
Try the rule. Mark what your film changes from its nearest template:
2 of 6
Too close to its template. The film goes back to direction.
Every film starts with fresh research built only from your brief. A query term that does not trace to your brief is dropped before it runs.
Several directions, at least two of them unexpected, judged by a separate critic.
The palette, type and structure of each finished film are stored on your machine, so the next one cannot repeat them.
Blue and purple everywhere, with no reason in the brief, fails the film's own gate.
Separate critic roles review storyboards, frames, motion, sound and the exported file. A film meets every gate in this order.

Storyboard lint and pre-render lint, then a contact sheet before anything renders.
Checks storyboard and plan
Frame and seam checks, motion density and dead air, and the craft gate on the render itself, so nothing stalls, jumps or goes missing.
Checks every frame
Slop and PowerPoint-look scans catch the stock AI look before you do.
Checks the look
A film dominated by blue and purple, with no reason in the brief, fails.
Checks the palette
Template distance and a fingerprint check against your previous films.
Checks sameness
Captions and sync validators, loudness and spec checks on the exported file, and a mix audit that proves every sound effect is heard, with a short list for your ears.
Checks the exported file
A fresh viewer who never saw the brief must understand the film, a brand film must read as its brand in random frames, and the climax is compared against a reference.
Checks the viewer
Render approval and a delivery report where every claim comes with measured numbers.
Checks ice/review/NOTE.md
The gates measure the rendered video itself: pace, depth, finishing, grade, fixed marks, the speaker's light and whether every sound effect is heard. Every claim in the delivery report comes with measured numbers, in ice/review/NOTE.md.
HTML, CSS, GSAP, Remotion, Lottie or FFmpeg. A film renders the same way every time, on a normal laptop, with no GPU and no paid video model.
Nothing is generated as stock footage. Text, numbers and logos are always set in code, exactly as you approved them. The engine is picked per film:
When a film is about a real company, product or app, Ice researches it and gathers its real material: live captures of its site and app, official brand kits, colors and fonts read from its own site, logos used untouched. A brand's look is never guessed; when the material cannot be obtained, it says so and asks you. No "unofficial" line and no AI label is burned into the film: for a concept about a brand you do not work for, that line goes in the delivery note and the suggested post caption.
your-project/ ice/ state.jsonroute, current stage, timestamps BRIEF.mdevery slot names its source DIRECTION.mdeach decision, its options and its reason research/dated research notes plan/script, storyboard, shot plan, cue sheet review/NOTE.mdthe delivery report, measured renders/final/the film and its versionsice/ folder in your project, so any session can resume where the last one stopped.Arabic and right-to-left rules apply whenever a film is in Arabic or mixes it with another language, from the first text decision.
مـخـرج
فيلم لتطبيق Notes مدته ٢٠ ثانية
Type /ice-style to browse the library by family, or name a style and what your film is about to start one in it.
A preset locks the look family only. The brief, research, concept and quality gates still run, so the film is not a copy of the style's demo.
Real, licence-clean, georeferenced satellite or aerial imagery graded down to an analyst's...
Best for environmental change over time, distances and scale, investigations...
Source lemo-opuscar (LemoLab)
Start a film in it
/ice-style satellite-briefing <what your film is about>
Films made with Ice Motion Director, each shown with its whole workflow and every round of feedback it took.
Every film gets its own page: the final film, the prompt that made it and every stage from the brief to delivery, with the options weighed, the critic rounds and the checks. They are made one film at a time and published as each one is approved.
Spotify concept ad
Unofficial concept, not affiliated with Spotify
View workflowMohawalat Fahm reel
An unofficial edit made with Ice Motion Director; not an Al Jazeera production. The footage and marks belong to their owners.
View workflowCarney on Alberta
An unofficial test made with Ice Motion Director. It is not an Al Jazeera production and not a Government of Canada production. The footage and marks belong to their owners: the Prime Minister of Canada, Al Jazeera, The Canadian Press, CPAC and AFP.
View workflowOne line installs into every agent it finds on your machine. The big agents also get a native plugin path, and every agent and OS has a manual copy path.
Claude Code, Codex, Cursor, Gemini, Copilot, Windsurf, Cline, Roo, Kilo, OpenCode, Antigravity, Amp, Goose, Kiro, Qwen, Trae, Zed, Warp and more.
npx skills add Omar-Tnzxo/ice-motion-director -g --all npx skills update.Install it as a plugin from any shell.
claude plugin marketplace add Omar-Tnzxo/ice-motion-director claude plugin install ice-motion-director@ice-motion-director /plugin marketplace add Omar-Tnzxo/ice-motion-director, then /plugin install ice-motion-director@ice-motion-director.Open Customize, Plugins, Add, Add marketplace, and enter Omar-Tnzxo/ice-motion-director.
CLI and app.
codex plugin marketplace add Omar-Tnzxo/ice-motion-director codex plugin add ice-motion-director@ice-motion-director /plugins in Codex and install it from there, then start a new session.codex plugin marketplace upgrade ice-motion-director. In the Codex app, use the Plugins tab.Install the skills for Cursor.
npx skills add Omar-Tnzxo/ice-motion-director -a cursor Gemini CLI extension and Antigravity CLI plugin.
gemini extensions install https://github.com/Omar-Tnzxo/ice-motion-director agy plugin install https://github.com/Omar-Tnzxo/ice-motion-director gemini extensions update ice-motion-director; run the same agy command again to update Antigravity CLI.npx skills add Omar-Tnzxo/ice-motion-director -a antigravity.CLI and VS Code.
copilot plugin marketplace add Omar-Tnzxo/ice-motion-director copilot plugin install ice-motion-director@ice-motion-director https://github.com/Omar-Tnzxo/ice-motion-director.copilot plugin update ice-motion-director.Install it as an extension.
qwen extensions install Omar-Tnzxo/ice-motion-director qwen extensions update ice-motion-director.Windsurf, Cline, Roo Code, Kilo Code, OpenCode, Amp, Goose, Kiro, Trae, Zed, Warp, Augment and others.
npx skills add Omar-Tnzxo/ice-motion-director -a <agent> windsurf, cline, roo, kilo, opencode, amp, goose, kiro-cli, trae, zed, warp, augment.Your agent checks these for the route you pick and tells you what is missing, with the one command for your system. Free packages and models a route needs it installs on its own at pinned versions and names in the delivery note; anything paid or behind an account is asked first. Ideas and scripts need nothing. Lottie needs Node. Every delivered film (films, explainers, remakes and edits) needs Node, FFmpeg, a browser and Python 3 with the quality-check packages: without Python a film can be built but not delivered, because its richness check cannot run.
| Need | Command |
|---|---|
| Node.js (LTS) | winget install --id OpenJS.NodeJS.LTS -e |
| FFmpeg | winget install --id Gyan.FFmpeg -e |
| Chrome or Chromium | winget install --id Google.Chrome -e |
| Python 3 | winget install --id Python.Python.3.13 -e |
npx.cmd skills add, or allow scripts for your user once with Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.--all works the same in PowerShell and cmd (in cmd, --skill '*' does not work; quote it as --skill "*").| Need | Command |
|---|---|
| Node.js (LTS) | brew install node@24 |
| FFmpeg | brew install ffmpeg |
| Chrome or Chromium | brew install --cask google-chrome |
| Python 3 | brew install python |
| Need | Command |
|---|---|
| Node.js (LTS) | nvm, then nvm install --lts |
| FFmpeg | sudo apt install ffmpeg |
| Chrome or Chromium | Chrome .deb or sudo snap install chromium |
| Python 3 | sudo apt install python3 python3-venv |
| Need | Command |
|---|---|
| Node.js (LTS) | sudo dnf install nodejs |
| FFmpeg | sudo dnf install ffmpeg-free |
| Chrome or Chromium | sudo dnf install chromium |
| Python 3 | sudo dnf install python3 |
| Need | Command |
|---|---|
| Node.js (LTS) | sudo pacman -S nodejs npm |
| FFmpeg | sudo pacman -S ffmpeg |
| Chrome or Chromium | sudo pacman -S chromium |
| Python 3 | sudo pacman -S python |
Exact minimum versions live in skills/ice-engines/references/versions.json. Manual copy paths for every agent: the install matrix.
--offline or ICE_OFFLINE=1, or make them ask first in ~/.ice-motion-director/sources.json. Before large downloads and renders it checks free disk space and works on a drive with room.~/.ice-motion-director/fingerprints.jsonl stores the palette, type and structure of each finished film so the next one does not repeat it. Delete it any time.Ice Motion Director merges and rewrites the best open-source motion and video skills into one system. Every source, its author and its license:
Full details, what was used and where it lives: CREDITS.md. Original license texts: LICENSES/.

No. Films are written as code and rendered with a browser and FFmpeg on a normal laptop.
Yes, the films you make are yours. A few bundled folders named noncommercial/ carry their authors' noncommercial licenses; the workflows check your project's commercial-use answer and skip them for commercial work. Outside material it finds or you supply (footage, music, logos) is listed with its license status in the delivery note; clearing those rights before you publish is yours.
ice-engines picks per film: HyperFrames, Remotion, HTML canvas with Playwright and FFmpeg, Three.js, Lottie, p5 or FFmpeg alone. Remotion needs a company license for some businesses; the skill tells you when that applies.
Say "decide for me" or "don't ask". It will choose, log every reason in ice/DIRECTION.md, and list every choice in the delivery report, so you can change any of them in one reply. If you simply do not answer, it waits: silence is never taken as a yes.
Your agent checks it for the route you pick and tells you what is missing, with the one command for your system. Free packages and models a route needs (transcription, stem separation and similar) it installs on its own at pinned versions and names in the delivery note; anything paid or behind an account is asked first. Ideas and scripts need nothing. Lottie needs Node. Every delivered film needs Node, FFmpeg, a browser and Python 3.
From you: one prompt that starts with /ice-motion-director:ice in Claude Code, then the questions on every open decision (four options each, at most four per message, none if your prompt covers everything or you say "don't ask") and, if you are there, one preview, where you also hear two or three real music options laid on the film and pick one (three unless you set music_options to 2 in sources.json). While it runs, each stage reaches you as two lines and its stills, so you can step in mid-way. Behind it, your agent runs all ten stages with several helper agents, so even a short ad runs for a while and uses far more of your plan than a chat answer. If your agent hits a usage limit in the middle, type /ice later: it resumes from ice/state.json where it stopped.
Yes. Ice Motion Director is open source under Apache-2.0. Folders named noncommercial/ and vendor/hypit/ keep their own licenses, stated inside them.
Paste one line, then ask for a film in plain words. Ice takes it from brief to delivery and shows you its work at every step you want to see.
npx skills add Omar-Tnzxo/ice-motion-director -g --all 