Ice Motion Director
Install

Ice Motion Director

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.

Ice, the Ice Motion Director mascot: a voxel ice cube in a navy director beret, sitting in a wooden director's chair and holding a clapperboard

One request, one route

One router skill reads your request and your project, then hands it to exactly one of six workflows.

Try the router

“Cut this podcast recording into three vertical shorts with Arabic captions.”

ice-editYou supply footage to cut

ice-film

A film made from scratch. A finished MP4 plus a delivery report.

ice-explainer

A voice explains something. A narrated explainer with captions.

ice-remake

Make it like this. A new film in that style, with your content.

ice-edit

An edit of your own footage. The cut, captions, vertical versions.

ice-lottie

Lottie and UI motion. Lottie JSON or animated SVG plus a developer handoff.

ice-ideas

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.

  1. Where will it play?Vertical, for socialWide, for the siteSquareAll three
  2. Should a voice speak?Music and on-screen textA voiceoverVoice and captionsSilent

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

What was made
Options and the winner
Three openings considered. B won: the product is on screen from the first second.
Critic's notes
Shot 5 holds too long; trimmed to fit the beat.
Still open
End card in coral or navy.
Next
Say "approved, go on" to start /ice-05-look

Example session written for this page.

One prompt, or every stage

For everyone

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.

For people who want to steer

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.

See the ten stages

Ten stages, every film

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.

Kind of film
Size of the job

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.

  1. brief

  2. concept

  3. script

  4. storyboardlook

  5. animatic

  6. buildsound

  7. mix

  8. review

  9. 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.

Stage 01, brief

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.

What stage 01 means on each route
ice-filmbrief
ice-explainerbrief
ice-remakebrief plus reference analysis
ice-editbrief plus ingest
ice-lottiebrief
ice-ideasbrief

No two films look alike

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.

  • Research dated today

    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.

  • A divergent pitch

    Several directions, at least two of them unexpected, judged by a separate critic.

  • A fingerprint per film

    The palette, type and structure of each finished film are stored on your machine, so the next one cannot repeat them.

  • The default-look gate

    Blue and purple everywhere, with no reason in the brief, fails the film's own gate.

The builder never grades itself

Separate critic roles review storyboards, frames, motion, sound and the exported file. A film meets every gate in this order.

Ice checking a strip of film frames through a voxel loupe, the clapperboard tucked under one arm
  1. Before the build

    Storyboard lint and pre-render lint, then a contact sheet before anything renders.

    Checks storyboard and plan

  2. Frames and seams

    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

  3. The slop scan

    Slop and PowerPoint-look scans catch the stock AI look before you do.

    Checks the look

  4. The default-look gate

    A film dominated by blue and purple, with no reason in the brief, fails.

    Checks the palette

  5. Distance and fingerprint

    Template distance and a fingerprint check against your previous films.

    Checks sameness

  6. Words and sound

    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

  7. A stranger's read

    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

  8. The delivery note

    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.

Every film is code

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:

  • HyperFrames
  • Remotion
  • HTML canvas with Playwright and FFmpeg
  • Three.js
  • Lottie
  • p5
  • FFmpeg alone

Real brands get their real material

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 versions
Everything lives in an ice/ folder in your project, so any session can resume where the last one stopped.

Arabic is first class

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 مدته ٢٠ ثانية

مخرج means director. Kashida stretches the word only at the joins Arabic allows; the line below mixes a Latin name and numerals without breaking the reading order.
  • Letterforms and dots in motion
  • Kashida, stretched at the right joins
  • Bidi isolation for mixed lines
  • Arabic-Indic or Western numerals
  • Line breaking and Arabic captions
  • Safe zones and cover text sizes for Arabic
  • Font choice with per-language font checks
  • Dialect as a setting for scripts and voiceover
  • Speech recognition used for timing only

156 styles, one command

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.

Satellite Briefing

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>

Install on every agent

One 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.

Any agent

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
  • It installs every Ice skill into every agent it finds on your machine, with no prompts.
  • Install them all: the skills open each other, so picking only some breaks the run.
  • Needs Node 22.20 or newer. Update later with npx skills update.

Claude Code

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
  • Inside a session: /plugin marketplace add Omar-Tnzxo/ice-motion-director, then /plugin install ice-motion-director@ice-motion-director.

Claude.ai and Desktop

Open Customize, Plugins, Add, Add marketplace, and enter Omar-Tnzxo/ice-motion-director.

  • Turn on Code execution and file creation in Settings, Capabilities first.
  • Update with Check for updates on the plugin page.
  • What works there: the brief, research, concepts, scripts and storyboards. Rendering needs a browser and FFmpeg on a computer, which the chat's code sandbox may not offer (not verified), so render the film with a local agent such as Claude Code.

Codex

CLI and app.

codex plugin marketplace add Omar-Tnzxo/ice-motion-director
codex plugin add ice-motion-director@ice-motion-director
  • Or run /plugins in Codex and install it from there, then start a new session.
  • Update: codex plugin marketplace upgrade ice-motion-director. In the Codex app, use the Plugins tab.

Cursor

Install the skills for Cursor.

npx skills add Omar-Tnzxo/ice-motion-director -a cursor

Gemini CLI and Antigravity

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
  • Update Gemini with gemini extensions update ice-motion-director; run the same agy command again to update Antigravity CLI.
  • Antigravity app and IDE: npx skills add Omar-Tnzxo/ice-motion-director -a antigravity.

GitHub Copilot

CLI and VS Code.

copilot plugin marketplace add Omar-Tnzxo/ice-motion-director
copilot plugin install ice-motion-director@ice-motion-director
  • VS Code: Command Palette, Chat: Install Plugin From Source, paste https://github.com/Omar-Tnzxo/ice-motion-director.
  • Update: copilot plugin update ice-motion-director.

Qwen Code

Install it as an extension.

qwen extensions install Omar-Tnzxo/ice-motion-director
  • Update: qwen extensions update ice-motion-director.

Every other agent

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>
  • Agent ids: windsurf, cline, roo, kilo, opencode, amp, goose, kiro-cli, trae, zed, warp, augment.
  • Manual copy paths for every agent and every OS are in the install matrix in the repo.

What your machine needs

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.

Install commands for Windows
NeedCommand
Node.js (LTS)winget install --id OpenJS.NodeJS.LTS -e
FFmpegwinget install --id Gyan.FFmpeg -e
Chrome or Chromiumwinget install --id Google.Chrome -e
Python 3winget install --id Python.Python.3.13 -e

Windows notes

  • Every command works the same in PowerShell and cmd.
  • If PowerShell says running scripts is disabled, use 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 "*").
  • In WSL, install inside WSL only when your agent also runs inside WSL.
Install commands for macOS
NeedCommand
Node.js (LTS)brew install node@24
FFmpegbrew install ffmpeg
Chrome or Chromiumbrew install --cask google-chrome
Python 3brew install python
Install commands for Ubuntu or Debian
NeedCommand
Node.js (LTS)nvm, then nvm install --lts
FFmpegsudo apt install ffmpeg
Chrome or ChromiumChrome .deb or sudo snap install chromium
Python 3sudo apt install python3 python3-venv
Install commands for Fedora
NeedCommand
Node.js (LTS)sudo dnf install nodejs
FFmpegsudo dnf install ffmpeg-free
Chrome or Chromiumsudo dnf install chromium
Python 3sudo dnf install python3
Install commands for Arch
NeedCommand
Node.js (LTS)sudo pacman -S nodejs npm
FFmpegsudo pacman -S ffmpeg
Chrome or Chromiumsudo pacman -S chromium
Python 3sudo pacman -S python

Exact minimum versions live in skills/ice-engines/references/versions.json. Manual copy paths for every agent: the install matrix.

What it does not do

  • It does not shoot live action. It edits footage you supply and builds everything else as motion design in code.
  • It is not a photoreal CGI or character-animation studio. Complex character rigs, lip sync and heavy photoreal 3D are outside its range; stylized 2D, kinetic type, collage, pixel, hand-drawn and light 3D are its home.
  • It is not an AI video generator. AI images, video or voices are optional extras you can ask for, never the main engine. Text, numbers and logos are always set in code.
  • It does not invent facts about real brands. Real brands get their real material; anything it cannot obtain, it asks you for.

Privacy and network

  • Runs locally. Films render on your machine with your browser and FFmpeg. Nothing is uploaded by these skills.
  • Network calls, all disclosed. Web research for direction (through your agent's own search tool); downloads of free real media it picks on its own (music, sound effects, footage, photos, flags, maps, fonts) from public libraries and official sources, each recorded in your project with its source and license status, with portraits of named public figures and official flags looked up through Wikidata and Wikimedia Commons, and your own library folders (local_libraries in sources.json) searched first; Ice's own CC0 sound-effects pack (128 recorded effects), fetched once from the project's GitHub Release and checked by SHA-256; installs of free tools and models at pinned versions, named in the delivery note; Google Fonts when the chosen font comes from there. Turn the downloads off with --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.
  • Optional, only on request. AI image, video or voice generation, hosted transcription or TTS. These may cost money and are never used without your say-so.
  • Local memory. A small fingerprint file at ~/.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.
  • No telemetry.
  • Copied, with the original license kept
  • Ideas only, rewritten in our own words
  • Noncommercial folders, own license
  • Vendored with its own license
  • The founder's own skills

Full details, what was used and where it lives: CREDITS.md. Original license texts: LICENSES/.

Questions people ask

Ice wearing navy voxel headphones, both hands on the ear cups, the clapperboard standing beside its feet

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.

Give your agent a director

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
Ice holding the clapperboard open, ready to call action