#619 by GitHub stars
cth9191/animate
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to MP4. Ships with styles (cut paper, crosshatch ink, riso print, sketchbook, manim-style math, pixel art, isometric line art) and makes new one
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/animate/skills/animate/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
7e5eb56feb2d → 7e5eb56feb2d
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 7e5eb56feb2d
No earlier version was observed for comparison.
Verified commit 7e5eb56feb2dd573f890e1b7b34748af43d58263
git clone --filter=blob:none --no-checkout https://github.com/cth9191/animate.git .hotskills/cth9191-animate && git -C .hotskills/cth9191-animate checkout --detach 7e5eb56feb2dd573f890e1b7b34748af43d58263
# Copy each selected skill directory from .hotskills/cth9191-animate into .claude/skills/<skill-name>/Heat
7.5- Star growth, last 7 daysAhead of 100% of tracked repositories
- Star growth, last 24 hoursAhead of 99% of tracked repositories
- Rank movement, last 7 daysAhead of 99% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- animate
plugins/animate/skills/animate
How it works
animate
When your agent uses it
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to MP4. Ships with styles (cut paper, crosshatch ink, riso print, sketchbook, manim-style math, pixel art, isometric line art) and makes new ones from the user's references. Walks the user through intake, then three check-ins (story, look, storyboard) before animating, and proves the result with measured review checks. Use when the user asks for an animated video, short, explainer or reel made in code, or wants a look matched from references.
What it loads into context
Frontmatter
158 tokensAlways available to the agent
SKILL.md
4,868 tokensWhen the skill is activated
Reference documents
31,303 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Non-negotiables
- The flow
- Voice-over (optional)
- Music: the user's own track (optional)
- Assets: real screenshots and logos (optional)
- Formats: one piece, several shapes (optional)
- Motion: springs and blur
- Parallel agents (long pieces)
- Files
- Honesty about what's proven
Scripts executed separately
examples/history-of-ai/src/bridges.jsexamples/history-of-ai/src/scenes.jsexamples/history-of-ai/src/score.jskit/board.jskit/core.jskit/morph.jskit/score-head.jskit/score-tail.jsstyles/crosshatch/demo/src/bridges.jsstyles/crosshatch/demo/src/scenes.jsstyles/crosshatch/demo/src/score.jsstyles/crosshatch/kit.jsstyles/cut-paper/demo/src/bridges.jsstyles/cut-paper/demo/src/scenes.jsstyles/cut-paper/demo/src/score.jsstyles/cut-paper/kit.jsstyles/isometric/demo-dark/dark.jsstyles/isometric/demo/src/bridges.jsstyles/isometric/demo/src/scenes.jsstyles/isometric/demo/src/score.jsstyles/isometric/kit.jsstyles/math/demo/src/bridges.jsstyles/math/demo/src/scenes.jsstyles/math/demo/src/score.jsstyles/math/kit.jsstyles/pixel/demo/src/bridges.jsstyles/pixel/demo/src/scenes.jsstyles/pixel/demo/src/score.jsstyles/pixel/kit.jsstyles/riso/demo/src/bridges.jsstyles/riso/demo/src/scenes.jsstyles/riso/demo/src/score.jsstyles/riso/kit.jsstyles/sketchbook/demo/src/bridges.jsstyles/sketchbook/demo/src/scenes.jsstyles/sketchbook/demo/src/score.jsstyles/sketchbook/kit.jstemplates/beat-cut/src/bridges.jstemplates/beat-cut/src/scenes.jstemplates/beat-cut/src/score.jstemplates/piece/src/bridges.jstemplates/piece/src/scenes.jstemplates/piece/src/score.jstemplates/style/kit.jstools/beats.mjstools/build.mjstools/capture.mjstools/compare.mjstools/export.mjstools/framehash.mjstools/gallery.mjstools/gpu.mjstools/measure/refs.mjstools/measure/shotlog.pytools/review.mjstools/still.mjstools/storyboard.mjstools/textcheck.mjstools/tile.mjstools/voice.mjstools/voice_words.py
Files
../../../../.claude-plugin/marketplace.jsonasset431 bytes../../.claude-plugin/plugin.jsonasset699 bytesSKILL.mdcore18,231 bytesSKILL.mdcore18,231 bytescraft.mddoc10,160 bytesexamples/history-of-ai/brief.mddoc4,829 bytesexamples/history-of-ai/piece.jsonasset580 bytesexamples/history-of-ai/src/bridges.jsruns3,475 bytesexamples/history-of-ai/src/head.htmlasset6,774 bytesexamples/history-of-ai/src/scenes.jsruns47,827 bytesexamples/history-of-ai/src/score.jsruns9,211 bytesgrammar/FORMATS.mddoc10,912 bytesgrammar/FRAME.mddoc3,006 bytesgrammar/STORY.mddoc6,084 bytesintake.mddoc4,898 byteskit/board.jsruns2,583 byteskit/core.jsruns28,964 byteskit/morph.jsruns9,520 byteskit/score-head.jsruns11,474 byteskit/score-tail.jsruns2,366 bytesnew-style.mddoc7,464 bytesstyles/README.mddoc7,171 bytesstyles/crosshatch/STYLE.mddoc3,238 bytesstyles/crosshatch/demo/piece.jsonasset326 bytesstyles/crosshatch/demo/src/bridges.jsruns590 bytesstyles/crosshatch/demo/src/head.htmlasset2,385 bytesstyles/crosshatch/demo/src/scenes.jsruns3,049 bytesstyles/crosshatch/demo/src/score.jsruns721 bytesstyles/crosshatch/kit.jsruns10,924 bytesstyles/crosshatch/sample.pngasset525,760 bytesstyles/cut-paper/STYLE.mddoc3,203 bytesstyles/cut-paper/demo/piece.jsonasset302 bytesstyles/cut-paper/demo/src/bridges.jsruns919 bytesstyles/cut-paper/demo/src/head.htmlasset2,999 bytesstyles/cut-paper/demo/src/scenes.jsruns3,189 bytesstyles/cut-paper/demo/src/score.jsruns1,328 bytesstyles/cut-paper/kit.jsruns17,537 bytesstyles/cut-paper/sample.pngasset468,306 bytesstyles/isometric/STYLE.mddoc9,612 bytesstyles/isometric/demo-dark/dark.jsruns75 bytesstyles/isometric/demo-dark/piece.jsonasset564 bytesstyles/isometric/demo/piece.jsonasset323 bytesstyles/isometric/demo/src/bridges.jsruns760 bytesstyles/isometric/demo/src/head.htmlasset2,367 bytesstyles/isometric/demo/src/scenes.jsruns7,086 bytesstyles/isometric/demo/src/score.jsruns1,106 bytesstyles/isometric/kit.jsruns21,868 bytesstyles/isometric/sample.pngasset84,284 bytesstyles/math/STYLE.mddoc10,411 bytesstyles/math/demo/piece.jsonasset308 bytesstyles/math/demo/src/bridges.jsruns472 bytesstyles/math/demo/src/head.htmlasset2,843 bytesstyles/math/demo/src/scenes.jsruns7,282 bytesstyles/math/demo/src/score.jsruns1,146 bytesstyles/math/kit.jsruns27,911 bytesstyles/math/sample.pngasset73,966 bytesstyles/pixel/STYLE.mddoc10,496 bytesstyles/pixel/demo/piece.jsonasset311 bytesstyles/pixel/demo/src/bridges.jsruns930 bytesstyles/pixel/demo/src/head.htmlasset2,502 bytesstyles/pixel/demo/src/scenes.jsruns10,124 bytesstyles/pixel/demo/src/score.jsruns2,533 bytesstyles/pixel/kit.jsruns34,502 bytesstyles/pixel/sample.pngasset79,439 bytesstyles/riso/STYLE.mddoc9,233 bytesstyles/riso/demo/piece.jsonasset308 bytesstyles/riso/demo/src/bridges.jsruns961 bytesstyles/riso/demo/src/head.htmlasset2,600 bytesstyles/riso/demo/src/scenes.jsruns13,012 bytesstyles/riso/demo/src/score.jsruns1,232 bytesstyles/riso/kit.jsruns29,326 bytesstyles/riso/sample.pngasset1,321,993 bytesstyles/sketchbook/STYLE.mddoc8,740 bytesstyles/sketchbook/demo/piece.jsonasset326 bytesstyles/sketchbook/demo/src/bridges.jsruns760 bytesstyles/sketchbook/demo/src/head.htmlasset2,529 bytesstyles/sketchbook/demo/src/scenes.jsruns10,190 bytesstyles/sketchbook/demo/src/score.jsruns1,408 bytesstyles/sketchbook/kit.jsruns32,195 bytesstyles/sketchbook/sample.pngasset594,478 bytestemplates/beat-cut/piece.jsonasset347 bytestemplates/beat-cut/src/bridges.jsruns837 bytestemplates/beat-cut/src/head.htmlasset3,658 bytestemplates/beat-cut/src/scenes.jsruns3,474 bytestemplates/beat-cut/src/score.jsruns865 bytestemplates/piece/LOG.mddoc251 bytestemplates/piece/brief.mddoc648 bytestemplates/piece/piece.jsonasset294 bytestemplates/piece/src/bridges.jsruns1,021 bytestemplates/piece/src/head.htmlasset4,447 bytestemplates/piece/src/scenes.jsruns4,132 bytestemplates/piece/src/score.jsruns1,328 bytestemplates/style/kit.jsruns3,930 bytestools/beats.mjsruns9,220 bytestools/build.mjsruns7,751 bytestools/capture.mjsruns2,770 bytestools/compare.mjsruns6,037 bytestools/export.mjsruns15,576 bytestools/framehash.mjsruns2,226 bytestools/gallery.mjsruns4,375 bytestools/gpu.mjsruns1,531 bytestools/measure/refs.mjsruns7,267 bytestools/measure/shotlog.pyruns4,845 bytestools/review.mjsruns31,352 bytestools/still.mjsruns2,592 bytestools/storyboard.mjsruns2,191 bytestools/textcheck.mjsruns8,698 bytestools/tile.mjsruns3,503 bytestools/voice.mjsruns7,907 bytestools/voice_words.pyruns1,006 bytes
Read SKILL.md
# Animate
You make short animated videos in code: one `<canvas>`, drawn and scored procedurally, deterministic frame by frame, rendered with a headless browser and ffmpeg. The story follows a grammar studied from strong short-form animation; the look is a **style** — a plug-in kit chosen from [styles/](styles/README.md) or made from the user's references with [new-style.md](new-style.md).
**Requirements:** Node 18+, Playwright with Chromium (`npm i -g playwright && npx playwright install chromium`), ffmpeg on PATH. Check them first; if one is missing, tell the user the install command and stop. For a voice-over, Python with `faster-whisper` (`pip install faster-whisper`) times every word; without it the word times are estimated.
All paths below are relative to this skill's base directory. Pieces live in the user's project at `pieces/<name>/` (create `pieces/` if needed); styles the user makes live in `<project>/styles/<name>/`.
## Non-negotiables
1. **No animating before the storyboard is approved.** The check-ins exist because a wrong story or look costs a full build.
2. **Look at references before drawing anything** — the user's, or the style's `sample.png` and demo. Then check every key frame against [grammar/FRAME.md](grammar/FRAME.md) and the style's own checklist in its `STYLE.md`.
3. **Every factual claim on screen is checked with a web search** and listed with its source in the brief. Never claim "first" without a source.
4. **Single file, all code:** one `index.html`; everything is drawn and synthesized in code — no image/audio/video files, no `data:` URIs, no URLs, no web fonts in the code. `tools/build.mjs` enforces it. Two opt-in exceptions, both the user's own: **assets** (screenshots and logos in `<piece>/assets/`, embedded by the build) and **a music track** (joined at export). See Assets and Music below.View the complete source on GitHubSkills included
- animate
Repository facts
- License
- MIT
- Created
- Oct 4, 2026
- Last pushed
- Oct 5, 2026
- Forks
- 203
- Open issues
- 3
- Project activity
- Active
Rank over the last 12 weeks
Now #619 · best #619 · up 370 in 30 days
- #700 on Nov 1
- #675 on Nov 2
- #657 on Nov 3
- #640 on Nov 4
- #631 on Nov 5
- #619 since Nov 6
25 earlier periods
- #909 on Sep 27
- #917 on Oct 6
- #952 on Oct 7
- #989 on Oct 8
- #952 on Oct 9
- #921 on Oct 10
- #924 on Oct 11
- #933 on Oct 12
- #916 on Oct 13
- #894 on Oct 14
- #857 on Oct 15
- #852 on Oct 16
- #810 on Oct 17
- #785 on Oct 18
- #814 on Oct 19
- #812 on Oct 20
- #814 on Oct 21
- #780 on Oct 22
- #771 on Oct 23
- #731 on Oct 24
- #875 on Oct 25
- #828 on Oct 28
- #813 on Oct 29
- #771 on Oct 30
- #732 on Oct 31
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 1 note
plugins/animate/skills/animate/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- No network access
- No hidden or obfuscated text
- No instruction overrides
- 61 executable scriptsin 61 files: animate/examples/history-of-ai/src/bridges.js:1 animate/examples/history-of-ai/src/scenes.js:1 animate/examples/history-of-ai/src/score.js:1 and 58 more
- No access to secrets
- No requests to vote in Hot
Show all 61 signals by file
plugins/animate/skills/animate/examples/history-of-ai/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/examples/history-of-ai/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/examples/history-of-ai/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/kit/board.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/kit/core.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/kit/morph.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/kit/score-head.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/kit/score-tail.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/crosshatch/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/crosshatch/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/crosshatch/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/crosshatch/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/cut-paper/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/cut-paper/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/cut-paper/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/cut-paper/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/isometric/demo-dark/dark.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/isometric/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/isometric/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/isometric/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/isometric/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/math/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/math/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/math/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/math/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/pixel/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/pixel/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/pixel/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/pixel/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/riso/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/riso/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/riso/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/riso/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/sketchbook/demo/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/sketchbook/demo/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/sketchbook/demo/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/styles/sketchbook/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/beat-cut/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/beat-cut/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/beat-cut/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/piece/src/bridges.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/piece/src/scenes.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/piece/src/score.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/templates/style/kit.js
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/tools/beats.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/build.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/capture.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/compare.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/export.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/framehash.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/gallery.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/gpu.mjs
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/tools/measure/refs.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/measure/shotlog.py
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/tools/review.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/still.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/storyboard.mjs
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/tools/textcheck.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/tile.mjs
- Executable scriptline 1
Executable file
plugins/animate/skills/animate/tools/voice.mjs
- Executable scriptline 1
#!/usr/bin/env node
plugins/animate/skills/animate/tools/voice_words.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md plugins/animate/skills/animate/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/animate/skills/animate/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/animate/skills/animate/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/animate/skills/animate/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/animate/skills/animate/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/cth9191-animate/)