#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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
1.6kGitHub stars
361stars in 7 days
1skill in this repository
0commits in 30 days

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

Sep 27, 2026Nov 6, 20261,610

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 tokens

Always available to the agent

SKILL.md

4,868 tokens

When the skill is activated

Reference documents

31,303 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Non-negotiables
  2. The flow
  3. Voice-over (optional)
  4. Music: the user's own track (optional)
  5. Assets: real screenshots and logos (optional)
  6. Formats: one piece, several shapes (optional)
  7. Motion: springs and blur
  8. Parallel agents (long pieces)
  9. Files
  10. Honesty about what's proven

Scripts executed separately

  • examples/history-of-ai/src/bridges.js
  • examples/history-of-ai/src/scenes.js
  • examples/history-of-ai/src/score.js
  • kit/board.js
  • kit/core.js
  • kit/morph.js
  • kit/score-head.js
  • kit/score-tail.js
  • styles/crosshatch/demo/src/bridges.js
  • styles/crosshatch/demo/src/scenes.js
  • styles/crosshatch/demo/src/score.js
  • styles/crosshatch/kit.js
  • styles/cut-paper/demo/src/bridges.js
  • styles/cut-paper/demo/src/scenes.js
  • styles/cut-paper/demo/src/score.js
  • styles/cut-paper/kit.js
  • styles/isometric/demo-dark/dark.js
  • styles/isometric/demo/src/bridges.js
  • styles/isometric/demo/src/scenes.js
  • styles/isometric/demo/src/score.js
  • styles/isometric/kit.js
  • styles/math/demo/src/bridges.js
  • styles/math/demo/src/scenes.js
  • styles/math/demo/src/score.js
  • styles/math/kit.js
  • styles/pixel/demo/src/bridges.js
  • styles/pixel/demo/src/scenes.js
  • styles/pixel/demo/src/score.js
  • styles/pixel/kit.js
  • styles/riso/demo/src/bridges.js
  • styles/riso/demo/src/scenes.js
  • styles/riso/demo/src/score.js
  • styles/riso/kit.js
  • styles/sketchbook/demo/src/bridges.js
  • styles/sketchbook/demo/src/scenes.js
  • styles/sketchbook/demo/src/score.js
  • styles/sketchbook/kit.js
  • templates/beat-cut/src/bridges.js
  • templates/beat-cut/src/scenes.js
  • templates/beat-cut/src/score.js
  • templates/piece/src/bridges.js
  • templates/piece/src/scenes.js
  • templates/piece/src/score.js
  • templates/style/kit.js
  • tools/beats.mjs
  • tools/build.mjs
  • tools/capture.mjs
  • tools/compare.mjs
  • tools/export.mjs
  • tools/framehash.mjs
  • tools/gallery.mjs
  • tools/gpu.mjs
  • tools/measure/refs.mjs
  • tools/measure/shotlog.py
  • tools/review.mjs
  • tools/still.mjs
  • tools/storyboard.mjs
  • tools/textcheck.mjs
  • tools/tile.mjs
  • tools/voice.mjs
  • tools/voice_words.py

Files

  • ../../../../.claude-plugin/marketplace.jsonasset431 bytes
  • ../../.claude-plugin/plugin.jsonasset699 bytes
  • SKILL.mdcore18,231 bytes
  • SKILL.mdcore18,231 bytes
  • craft.mddoc10,160 bytes
  • examples/history-of-ai/brief.mddoc4,829 bytes
  • examples/history-of-ai/piece.jsonasset580 bytes
  • examples/history-of-ai/src/bridges.jsruns3,475 bytes
  • examples/history-of-ai/src/head.htmlasset6,774 bytes
  • examples/history-of-ai/src/scenes.jsruns47,827 bytes
  • examples/history-of-ai/src/score.jsruns9,211 bytes
  • grammar/FORMATS.mddoc10,912 bytes
  • grammar/FRAME.mddoc3,006 bytes
  • grammar/STORY.mddoc6,084 bytes
  • intake.mddoc4,898 bytes
  • kit/board.jsruns2,583 bytes
  • kit/core.jsruns28,964 bytes
  • kit/morph.jsruns9,520 bytes
  • kit/score-head.jsruns11,474 bytes
  • kit/score-tail.jsruns2,366 bytes
  • new-style.mddoc7,464 bytes
  • styles/README.mddoc7,171 bytes
  • styles/crosshatch/STYLE.mddoc3,238 bytes
  • styles/crosshatch/demo/piece.jsonasset326 bytes
  • styles/crosshatch/demo/src/bridges.jsruns590 bytes
  • styles/crosshatch/demo/src/head.htmlasset2,385 bytes
  • styles/crosshatch/demo/src/scenes.jsruns3,049 bytes
  • styles/crosshatch/demo/src/score.jsruns721 bytes
  • styles/crosshatch/kit.jsruns10,924 bytes
  • styles/crosshatch/sample.pngasset525,760 bytes
  • styles/cut-paper/STYLE.mddoc3,203 bytes
  • styles/cut-paper/demo/piece.jsonasset302 bytes
  • styles/cut-paper/demo/src/bridges.jsruns919 bytes
  • styles/cut-paper/demo/src/head.htmlasset2,999 bytes
  • styles/cut-paper/demo/src/scenes.jsruns3,189 bytes
  • styles/cut-paper/demo/src/score.jsruns1,328 bytes
  • styles/cut-paper/kit.jsruns17,537 bytes
  • styles/cut-paper/sample.pngasset468,306 bytes
  • styles/isometric/STYLE.mddoc9,612 bytes
  • styles/isometric/demo-dark/dark.jsruns75 bytes
  • styles/isometric/demo-dark/piece.jsonasset564 bytes
  • styles/isometric/demo/piece.jsonasset323 bytes
  • styles/isometric/demo/src/bridges.jsruns760 bytes
  • styles/isometric/demo/src/head.htmlasset2,367 bytes
  • styles/isometric/demo/src/scenes.jsruns7,086 bytes
  • styles/isometric/demo/src/score.jsruns1,106 bytes
  • styles/isometric/kit.jsruns21,868 bytes
  • styles/isometric/sample.pngasset84,284 bytes
  • styles/math/STYLE.mddoc10,411 bytes
  • styles/math/demo/piece.jsonasset308 bytes
  • styles/math/demo/src/bridges.jsruns472 bytes
  • styles/math/demo/src/head.htmlasset2,843 bytes
  • styles/math/demo/src/scenes.jsruns7,282 bytes
  • styles/math/demo/src/score.jsruns1,146 bytes
  • styles/math/kit.jsruns27,911 bytes
  • styles/math/sample.pngasset73,966 bytes
  • styles/pixel/STYLE.mddoc10,496 bytes
  • styles/pixel/demo/piece.jsonasset311 bytes
  • styles/pixel/demo/src/bridges.jsruns930 bytes
  • styles/pixel/demo/src/head.htmlasset2,502 bytes
  • styles/pixel/demo/src/scenes.jsruns10,124 bytes
  • styles/pixel/demo/src/score.jsruns2,533 bytes
  • styles/pixel/kit.jsruns34,502 bytes
  • styles/pixel/sample.pngasset79,439 bytes
  • styles/riso/STYLE.mddoc9,233 bytes
  • styles/riso/demo/piece.jsonasset308 bytes
  • styles/riso/demo/src/bridges.jsruns961 bytes
  • styles/riso/demo/src/head.htmlasset2,600 bytes
  • styles/riso/demo/src/scenes.jsruns13,012 bytes
  • styles/riso/demo/src/score.jsruns1,232 bytes
  • styles/riso/kit.jsruns29,326 bytes
  • styles/riso/sample.pngasset1,321,993 bytes
  • styles/sketchbook/STYLE.mddoc8,740 bytes
  • styles/sketchbook/demo/piece.jsonasset326 bytes
  • styles/sketchbook/demo/src/bridges.jsruns760 bytes
  • styles/sketchbook/demo/src/head.htmlasset2,529 bytes
  • styles/sketchbook/demo/src/scenes.jsruns10,190 bytes
  • styles/sketchbook/demo/src/score.jsruns1,408 bytes
  • styles/sketchbook/kit.jsruns32,195 bytes
  • styles/sketchbook/sample.pngasset594,478 bytes
  • templates/beat-cut/piece.jsonasset347 bytes
  • templates/beat-cut/src/bridges.jsruns837 bytes
  • templates/beat-cut/src/head.htmlasset3,658 bytes
  • templates/beat-cut/src/scenes.jsruns3,474 bytes
  • templates/beat-cut/src/score.jsruns865 bytes
  • templates/piece/LOG.mddoc251 bytes
  • templates/piece/brief.mddoc648 bytes
  • templates/piece/piece.jsonasset294 bytes
  • templates/piece/src/bridges.jsruns1,021 bytes
  • templates/piece/src/head.htmlasset4,447 bytes
  • templates/piece/src/scenes.jsruns4,132 bytes
  • templates/piece/src/score.jsruns1,328 bytes
  • templates/style/kit.jsruns3,930 bytes
  • tools/beats.mjsruns9,220 bytes
  • tools/build.mjsruns7,751 bytes
  • tools/capture.mjsruns2,770 bytes
  • tools/compare.mjsruns6,037 bytes
  • tools/export.mjsruns15,576 bytes
  • tools/framehash.mjsruns2,226 bytes
  • tools/gallery.mjsruns4,375 bytes
  • tools/gpu.mjsruns1,531 bytes
  • tools/measure/refs.mjsruns7,267 bytes
  • tools/measure/shotlog.pyruns4,845 bytes
  • tools/review.mjsruns31,352 bytes
  • tools/still.mjsruns2,592 bytes
  • tools/storyboard.mjsruns2,191 bytes
  • tools/textcheck.mjsruns8,698 bytes
  • tools/tile.mjsruns3,503 bytes
  • tools/voice.mjsruns7,907 bytes
  • tools/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 GitHub

Skills 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

  1. #700 on Nov 1
  2. #675 on Nov 2
  3. #657 on Nov 3
  4. #640 on Nov 4
  5. #631 on Nov 5
  6. #619 since Nov 6
25 earlier periods
  1. #909 on Sep 27
  2. #917 on Oct 6
  3. #952 on Oct 7
  4. #989 on Oct 8
  5. #952 on Oct 9
  6. #921 on Oct 10
  7. #924 on Oct 11
  8. #933 on Oct 12
  9. #916 on Oct 13
  10. #894 on Oct 14
  11. #857 on Oct 15
  12. #852 on Oct 16
  13. #810 on Oct 17
  14. #785 on Oct 18
  15. #814 on Oct 19
  16. #812 on Oct 20
  17. #814 on Oct 21
  18. #780 on Oct 22
  19. #771 on Oct 23
  20. #731 on Oct 24
  21. #875 on Oct 25
  22. #828 on Oct 28
  23. #813 on Oct 29
  24. #771 on Oct 30
  25. #732 on Oct 31

Before you install

Local scripts

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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 compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md plugins/animate/skills/animate/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/animate/skills/animate/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/animate/skills/animate/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/animate/skills/animate/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

cth9191/animate: #619 on hotskills, 1.6k stars

[![cth9191/animate on hotskills](https://hotskills.dev/badge/cth9191-animate.svg)](https://hotskills.dev/skill/cth9191-animate/)