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.
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>/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
30-day change not yet available: not enough history.
Individual skills in this repository
- manim-skill
skills/manim-skill
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 tokensAlways available to the agent
SKILL.md
1,887 tokensWhen the skill is activated
Reference documents
627 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contract
- Session Storage
- Workflow: Narration → TTS → Code → Render → Mux → View
Scripts executed separately
tools/lint-subtitles.pytools/tts-generate.pytools/video_viewer.py
Files
../../.claude-plugin/marketplace.jsonasset980 bytes../../.claude-plugin/plugin.jsonasset517 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytestools/README.mddoc2,438 bytestools/lint-subtitles.pyruns13,606 bytestools/tts-generate.pyruns8,606 bytestools/ui.htmlasset48,501 bytestools/video_viewer.pngasset655,876 bytestools/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 GitHubSkills 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 shellAutomated 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:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/manim-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/manim-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/manim-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/manim-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: manim-skill/tools/lint-subtitles.py:313
- 31 network referencesin 6 files: manim-skill/tools/ui.html:246 manim-skill/tools/video_viewer.py:103 .claude-plugin/marketplace.json:17 and 3 more
- No hidden or obfuscated text
- No instruction overrides
- 3 executable scriptsin 3 files: manim-skill/tools/lint-subtitles.py:1 manim-skill/tools/tts-generate.py:1 manim-skill/tools/video_viewer.py:1
- 2 references to secretsin 1 file: manim-skill/tools/tts-generate.py:39
- No requests to vote in Hot
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
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
skills/manim-skill/tools/lint-subtitles.py
skills/manim-skill/tools/tts-generate.py
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
- Network access in prose of the SKILL.mdmanim-skill/SKILL.md:134Low confidence
- Network access in prose of documentationmanim-skill/tools/README.md:20Low confidence
- Network access in prose of documentationmanim-skill/tools/README.md:21Low confidence
- Executable script in code of a file that runsmanim-skill/tools/lint-subtitles.py:1High confidence
- Dangerous shell operation in code of a file that runsmanim-skill/tools/lint-subtitles.py:313High confidence
- Executable script in code of a file that runsmanim-skill/tools/tts-generate.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuemanim-skill/tools/tts-generate.py:39Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuemanim-skill/tools/tts-generate.py:112Low confidence
- Executable script in code of a file that runsmanim-skill/tools/video_viewer.py:1High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:103High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:104High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:105High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:180High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:181High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:182High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:183High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:184High confidence
- Network access in code of a file that runsmanim-skill/tools/video_viewer.py:185High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/manim-skill/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/manim-skill/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/manim-skill/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/manim-skill/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard 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.