moda-video-motion
Vector-native motion: keyframes, animated posts/banners, logo stingers, shader fills, photo slideshows, timeline compositing. Free authoring; exports mp4/gif.
How do I install this agent skill?
npx skills add https://github.com/moda-design/moda --skill moda-video-motionIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill facilitates professional motion design and video production using the Moda platform's specialized CLI tools. It possesses an inherent attack surface for indirect prompt injection by ingesting data from external websites and existing canvases. It also utilizes a sandboxed JavaScript environment for design mutations, which is explicitly noted to be a non-hard security boundary.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
moda-video-motion
<!-- moda:banner -->PREREQUISITE — load moda-core once per session (step-0, write contract,
free/metered map). Already loaded? Skip ahead. If you cannot load it, the
non-negotiables: run moda doctor --json before anything; moda brand list
before creating; writes that pin a revision use your last read's — on
stale_revision, re-read and retry once (it heals); send the canvas link the
moment it exists; stuck or failed? moda ask "<question>" — free and fast,
never guess.
Sizes and defaults
| Piece | Size | --category | Export |
|---|---|---|---|
| Landscape motion / stinger | 1920×1080 | animation | --format mp4 --page N |
| Vertical post, story, reel | 1080×1920 | animation | mp4 (gif for a loop) |
| Square animated post | 1080×1080 | animation | mp4 or gif |
| Animated banner ad | the ad's exact size | animation | gif |
| Shader-fill background | any canvas | any | mp4/gif — it freezes in stills |
Five facts that decide most of the work:
- Keyframes and clip sequencing apply ONLY on
--category animation; on any other canvas every motion call is dropped with a warning. Animated shader fills move anywhere. - Static exports (png/jpeg/pdf/pptx) of animation and video-filled nodes render BLANK or frozen — deliver mp4/gif, and say so if a still is requested.
- mp4/gif REQUIRE
--page N: one animated page per file. A page with no animation rejects typedno_animation— the honest answer is a still + the link. - One stitched film from many scenes:
moda export CANVAS_REF --format mp4 --scope sequencerenders all visible pages of a multi-page animation canvas as ONE video, in order, transitions included — no--page, mp4 only, and the 18000-frame / 600 s mp4 ceiling covers the WHOLE film (600 s at 30 fps). The editor's export panel has the same "sequence" mode as the interactive alternative. A canvas with a persisted Main Edit timeline exports it with--scope main_edit(mp4 only, page-less like sequence).--fpspicks the rate (mp4 24|30|60 default 30, gif 10|12|15|24 default 12); 60 fps halves the longest exportable mp4 film (300 s; a gif is capped at 9000 frames / 300 s). - Everything in this recipe is unmetered: iteration costs nothing.
Recipe — motion on a canvas
moda canvas create --name "[Piece]" --intent "[one-line brief]" --size [WxH] --pages 1 --category animation --brand [KIT]— send the link immediately.- Author the still frame FIRST — real type, brand geometry, layout:
moda canvas markup [CANVAS_REF] --file - --page [PAGE_ID](references/markup.md). Motion on a bad frame is a bad piece that moves. moda canvas screenshot [CANVAS_REF]— fix the frame before animating.- Add motion:
moda canvas edit [CANVAS_REF] --file motion.js— amotion.page(...)program with tweens, effects, staggers and recipes. Read references/motion-recipes.md FIRST: its opening "motion model" section is the five rules that decide whether the motion is correct (rest state, one track per target, whatblendmakes keyframes mean, whyendMsis not a snap-back point, how an endless loop is authored), and the named recipes — logo sting, animated stat, kinetic type, shader background — follow it. Author from that file; don't probe. - Draft-judge the movement:
moda export [CANVAS_REF] --format gif --page [N] -o draft.gifand look at it. A screenshot shows one frozen frame — it cannot tell you whether the motion works. - Deliver: live link FIRST, then
moda export [CANVAS_REF] --format mp4 --page [N] -o [piece].mp4. Readwarnings[].
Recipe — footage under real type (timeline compositing)
- Get the clip into team files:
moda file upload [clip.mp4], or reuse the durablefile_…a generated render returned (moda-video-clip owns generation). - Animation canvas at the delivery size, then place the clip with
<video src="file_…" width="1920" height="1080" fit="cover"/>viamoda canvas markup [CANVAS_REF] --file - --page [PAGE_ID]— the clip is a fill; layer type and brand marks above it. - Sequence and trim in
moda canvas edit [CANVAS_REF] --file cut.js(t.video(node, { startMs }); trim/rate/loop viaupdate()— references/edit-code.md). moda export [CANVAS_REF] --format mp4 --page [N] -o [piece].mp4, then readwarnings[]: server mp4 muxes audible clip audio, andaudio_source_droppednames anything that did not survive. Relay it — never a silent loss.
Examples
- "an animated banner ad, 300×250" → motion recipe at the ad's exact size → gif.
- "a stinger from our logo" → motion recipe,
recipe-rise+ a shader backdrop. - "make this post move" → import/rebuild the frame on an animation canvas, then animate.
- "cut these two clips together with our headline over them" → compositing recipe.
- "a video from these 5 photos" → compositing recipe: place, sequence, export mp4.
Errors
Any typed error → load moda-core and read its recovery reference.
Edit programs are atomic — a failure means NOTHING applied: re-read, fix the
program, re-run. no_animation on export means the page has no motion yet.
Make it recurring
The weekly animated post → moda-automate; a stinger or lower-third you will reuse on every future piece → moda-templates.
See also: moda-video — the lane fork, generated clips, cost boundaries · moda-core — the contract, recovery, everything Moda can do.
References
| Doc | Load when |
|---|---|
| references/motion-recipes.md | ALWAYS before authoring motion — the motion model, then the named deliverables (logo sting, teaser, animated ad) |
| references/edit-code.md | before writing an edit program: batches, revisions, warnings |
| references/video.md | the timeline API, canvas video placement, export rules — jump to "The motion timeline API"; the long first half is the generated-clip model roster, which this lane does not need |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/moda-design/moda/moda-video-motion">View moda-video-motion on skillZs</a>