Not in the top 1,000 by GitHub stars

Yusuke710/manim-skill

SKILL.md for creating animations with Manim.

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

skills/manim-skill/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a0048d9e2654

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit a0048d9e265499038f34a9aa58ff16d306b5034c

git clone --filter=blob:none --no-checkout https://github.com/Yusuke710/manim-skill.git .hotskills/yusuke710-manim-skill && git -C .hotskills/yusuke710-manim-skill checkout --detach a0048d9e265499038f34a9aa58ff16d306b5034c # Copy each selected skill directory from .hotskills/yusuke710-manim-skill into .claude/skills/<skill-name>/
196GitHub stars
14stars in 7 days
1skill in this repository
1commit in 30 days

Heat

7.0
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 2026196

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

manim-skill

When your agent uses it

Create mathematical animations with Manim Community Edition(manimce), with optional TTS voiceover and synced subtitles. Generates distinctive, production-grade animations that avoid generic "AI slop" aesthetics. Use when user wants to animate concepts, equations, illustrate proofs, visualize algorithms, create math explainers, or produce 3Blue1Brown-style videos.

What it loads into context

Frontmatter

78 tokens

Always available to the agent

SKILL.md

1,887 tokens

When the skill is activated

Reference documents

627 tokens

Loaded on request

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

The playbook

  1. Contract
  2. Session Storage
  3. Workflow: Narration → TTS → Code → Render → Mux → View

Scripts executed separately

  • tools/lint-subtitles.py
  • tools/tts-generate.py
  • tools/video_viewer.py

Files

  • ../../.claude-plugin/marketplace.jsonasset980 bytes
  • ../../.claude-plugin/plugin.jsonasset517 bytes
  • SKILL.mdcore7,394 bytes
  • SKILL.mdcore7,394 bytes
  • SKILL.mdcore7,394 bytes
  • SKILL.mdcore7,394 bytes
  • SKILL.mdcore7,394 bytes
  • SKILL.mdcore7,394 bytes
  • tools/README.mddoc2,438 bytes
  • tools/lint-subtitles.pyruns13,606 bytes
  • tools/tts-generate.pyruns8,606 bytes
  • tools/ui.htmlasset48,501 bytes
  • tools/video_viewer.pngasset655,876 bytes
  • tools/video_viewer.pyruns7,434 bytes
Read SKILL.md

You are a Manim animation expert. Create production-grade animations with Manim Community Edition (manimce).

## Contract

- For animation requests, continue until `video.mp4` exists; if blocked, return the exact blocker plainly.
- Deliver `script.py` and `video.mp4`. Do not create `plan.md` or a separate written scene plan unless the user explicitly requests one. Choose the visual design and scene structure directly in the animation code.

## Session Storage

**NEVER write artifacts into the user's working directory.** Every video is a flat session folder:

```
SESSION_DIR = ${MANIM_SKILL_HOME:-~/.manim-skill}/<project-slug>/
├── narration.txt    # spoken lines only (when narrated)
View the complete source on GitHub

Skills included

  • manim-skill

Repository facts

License
MIT
Created
Jan 14, 2026
Last pushed
Oct 7, 2026
Forks
17
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 5 notes
  • skills/manim-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/manim-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/manim-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/manim-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/manim-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 37 signals by file

.claude-plugin/marketplace.json

  • Network accessline 17
    "name": "Yusuke Miyashita"       },       "homepage": "https://github.com/ymiy/manim-skill",
  • Network accessline 18
    },       "homepage": "https://github.com/ymiy/manim-skill",       "repository": "https://github.com/ymiy/manim-skill",
  • Network accessline 19
    "homepage": "https://github.com/ymiy/manim-skill",
  • Network accessline 20
    "repository": "https://github.com/ymiy/manim-skill",

.claude-plugin/plugin.json

  • Network accessline 7
    },   "license": "MIT",   "repository": "https://github.com/ymiy/manim-skill",
  • Network accessline 8
    "license": "MIT",   "repository": "https://github.com/ymiy/manim-skill",   "keywords": [
  • Network accessline 9
    "repository": "https://github.com/ymiy/manim-skill",

skills/manim-skill/SKILL.md

  • Network accessline 134
    It prints `VIDEO_READY http://localhost:<port>` and opens the browser. Tell the user the URL and the `SESSION_DIR` path.

skills/manim-skill/tools/README.md

  • Network accessline 20
    Renders `ui.html` (which lives next to this script). Prints `VIDEO_READY http://localhost:<port>` when ready and opens the browser.
  • Network accessline 21
    `VIDEO_READY http://localhost:<port>` when ready and opens the browser.

skills/manim-skill/tools/lint-subtitles.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 313
    exec(code, module_globals)

skills/manim-skill/tools/tts-generate.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 112
    [Credential-related source omitted]

skills/manim-skill/tools/ui.html

  • Network accessline 246
    <div class="app">         <div class="feedback-panel">             <a class="brand-link" href="https://manimate.ai" target="_blank" rel="noopener noreferrer">manimate.ai</a>
  • Network accessline 247
    <div class="feedback-panel">             <a class="brand-link" href="https://manimate.ai" target="_blank" rel="noopener noreferrer">manimate.ai</a>             <div class="feedback-head">
  • Network accessline 248
    <a class="brand-link" href="https://manimate.ai" target="_blank" rel="noopener noreferrer">manimate.ai</a>
  • Network accessline 425
    const loadText = async (url, onOk) => {     try {         const res = await fetch(url);
  • Network accessline 426
    try {         const res = await fetch(url);         if (res.ok) onOk(await res.text());
  • Network accessline 427
    const res = await fetch(url);
  • Network accessline 569
    $('downloadConfirm').disabled = true;     try {         const res = await fetch('/download');
  • Network accessline 570
    try {         const res = await fetch('/download');         if (!res.ok) throw new Error('Download failed');
  • Network accessline 571
    const res = await fetch('/download');
  • Network accessline 586
    async function init() {     chapters = await (await fetch('/chapters.json')).json();
  • Network accessline 587
    chapters = await (await fetch('/chapters.json')).json();
  • Network accessline 588
    try { const res = await fetch('/subtitles.srt'); if (res.ok) { subtitles = parseSRT(await res.text()); } } catch {}

skills/manim-skill/tools/video_viewer.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 103
    for p in range(start, end):         try:             with socket.socket() as s:
  • Network accessline 104
    try:             with socket.socket() as s:                 s.bind(("127.0.0.1", p))
  • Network accessline 105
    with socket.socket() as s:
  • Network accessline 180
    try:         with socketserver.TCPServer((args.host, port), handler) as srv:             url = f"http://localhost:{port}"
  • Network accessline 181
    with socketserver.TCPServer((args.host, port), handler) as srv:             url = f"http://localhost:{port}"             print(f"Viewer: {url}")
  • Network accessline 182
    url = f"http://localhost:{port}"
  • Network accessline 183
    print(f"Viewer: {url}")             threading.Timer(0.5, lambda: webbrowser.open(url)).start()             print(f"VIDEO_READY http://localhost:{port}", flush=True)
  • Network accessline 184
    threading.Timer(0.5, lambda: webbrowser.open(url)).start()             print(f"VIDEO_READY http://localhost:{port}", flush=True)             srv.serve_forever()
  • Network accessline 185
    print(f"VIDEO_READY http://localhost:{port}", flush=True)

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.

Signal confidence: 18 facts

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 skills/manim-skill/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/manim-skill/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/manim-skill/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/manim-skill/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/manim-skill/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.