Not in the top 1,000 by GitHub stars

Matteoikarieth96/whiteboard-video-skill

Claude Code skill: turn any topic into a hand-drawn whiteboard explainer video with voice-over and captions

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

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

75c7825e3cca → 75c7825e3cca

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 75c7825e3cca

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 75c7825e3ccaf33be933a143c561acab1deb74a6

20GitHub stars
1star in 7 days
1skill in this repository
2commits in 30 days

Heat

4.3
  • 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, 202620

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

Individual skills in this repository

How it works

whiteboard-video

When your agent uses it

Make hand-drawn whiteboard explainer videos (animated marker drawings, voice-over, burned-in captions, MP4) on any topic. Use this whenever the user wants an explainer video, a whiteboard or "drawn" animation, an animated explainer for a talk, a short video for X/LinkedIn/YouTube that explains a concept, or asks to turn a script, article, slide deck or topic into a narrated video, even if they don't say "whiteboard". It interviews the user for context, writes and fact-checks a scene-by-scene script for approval, offers voice-over options with audio samples (free macOS voices, ElevenLabs, OpenAI, or the user's own recordings), then draws, voices and renders the video locally with headless Chrome and ffmpeg.

What it loads into context

Frontmatter

171 tokens

Always available to the agent

SKILL.md

1,787 tokens

When the skill is activated

Reference documents

5,965 tokens

Loaded on request

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

The playbook

  1. Why the workflow looks like this
  2. Step 0: one-time setup check
  3. Step 1: gather context
  4. Step 2: write the script and get it approved
  5. Step 3: offer voice-over options before building
  6. Step 4: build the project
  7. Step 5: preview, fix, render
  8. Step 6: deliver
  9. Examples

Scripts executed separately

  • assets/template/scenes.js
  • examples/how-it-works/scenes.js
  • examples/rwa-on-ethereum/scenes.js
  • examples/sec-innovation-exemption/scenes.js
  • scripts/make_audio.py
  • scripts/new_project.sh
  • scripts/package.json
  • scripts/render.js

Files

  • .gitignoreasset115 bytes
  • LICENSEasset1,073 bytes
  • README.mddoc4,155 bytes
  • SKILL.mdcore7,615 bytes
  • SKILL.mdcore7,615 bytes
  • SKILL.mdcore7,615 bytes
  • SKILL.mdcore7,615 bytes
  • assets/fonts/Caveat.ttfasset403,648 bytes
  • assets/fonts/OFL.txtdoc4,385 bytes
  • assets/template/brief.mddoc384 bytes
  • assets/template/config.jsonasset398 bytes
  • assets/template/gitignore.txtdoc66 bytes
  • assets/template/scenes.jsruns1,609 bytes
  • assets/template/script.jsonasset403 bytes
  • assets/template/voice.jsonasset52 bytes
  • docs/demo.gifasset2,088,950 bytes
  • docs/demo.mp4asset2,286,411 bytes
  • examples/how-it-works/brief.mddoc701 bytes
  • examples/how-it-works/config.jsonasset103 bytes
  • examples/how-it-works/scenes.jsruns2,759 bytes
  • examples/how-it-works/script.jsonasset725 bytes
  • examples/how-it-works/voice.jsonasset61 bytes
  • examples/rwa-on-ethereum/config.jsonasset90 bytes
  • examples/rwa-on-ethereum/scenes.jsruns10,423 bytes
  • examples/rwa-on-ethereum/script.jsonasset3,294 bytes
  • examples/rwa-on-ethereum/voice.jsonasset61 bytes
  • examples/sec-innovation-exemption/README.mddoc3,897 bytes
  • examples/sec-innovation-exemption/config.jsonasset169 bytes
  • examples/sec-innovation-exemption/scenes.jsruns7,791 bytes
  • examples/sec-innovation-exemption/script.jsonasset3,205 bytes
  • examples/sec-innovation-exemption/voice.jsonasset61 bytes
  • references/drawing-api.mddoc4,756 bytes
  • references/interview.mddoc1,555 bytes
  • references/script-writing.mddoc2,425 bytes
  • references/voice-options.mddoc5,008 bytes
  • scripts/engine.htmlasset13,572 bytes
  • scripts/make_audio.pyruns11,776 bytes
  • scripts/new_project.shruns955 bytes
  • scripts/package-lock.jsonasset11,580 bytes
  • scripts/package.jsonruns186 bytes
  • scripts/render.jsruns6,077 bytes
Read SKILL.md

# Whiteboard video

Turn a topic into a narrated whiteboard video: a marker draws each scene in sync with the voice, the board slides to the next scene, captions run at the bottom, and the result is an MP4.

Paths below are relative to this skill's folder. The engine lives in `scripts/`, a starter project in `assets/template/`, two complete examples in `examples/`.

## Why the workflow looks like this

A whiteboard video is cheap to re-render and expensive to re-think. Most wasted effort comes from drawing scenes for a script the user did not want, or from a voice they dislike. So the order is: context, then script approval, then voice choice, then drawing. Each gate is short, and each one saves a render.

## Step 0: one-time setup check

Run these once per machine and fix what is missing before promising a video:
View the complete source on GitHub

Skills included

  • whiteboard-video

Repository facts

License
MIT
Created
Sep 26, 2026
Last pushed
Oct 26, 2026
Forks
4
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 7, 2026

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

Show 3 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 149 signals by file

.gitignore

  • Access to secretsline 3
    [Credential-related source omitted]

README.md

  • Network accessline 20
    Requirements: [Claude Code](https://claude.com/claude-code), Node 18+, Python 3.9+, ffmpeg, and Google Chrome (or Chromium/Edge).
  • Network accessline 23
    git clone https://github.com/Matteoikarieth96/whiteboard-video-skill ~/.claude/skills/whiteboard-video
  • Access to secretsline 48
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]

assets/fonts/OFL.txt

  • Network accessline 1
    Copyright 2014 The Caveat Project Authors (https://github.com/googlefonts/caveat)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

assets/template/gitignore.txt

  • Access to secretsline 1
    [Credential-related source omitted]

assets/template/scenes.js

  • Executable scriptline 1
    Executable file

examples/how-it-works/scenes.js

  • Executable scriptline 1
    Executable file

examples/rwa-on-ethereum/scenes.js

  • Executable scriptline 1
    Executable file

examples/sec-innovation-exemption/scenes.js

  • Executable scriptline 1
    Executable file

references/voice-options.md

  • Access to secretsline 31
    [Credential-related source omitted]

scripts/engine.html

  • Network accessline 18
    </style></head> <body> <svg id="board" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 19
    <body> <svg id="board" xmlns="http://www.w3.org/2000/svg">   <defs id="defs">
  • Network accessline 20
    <svg id="board" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 43
    <script> // ---------- globals (palette can be overridden by config.palette) ---------- const NS = 'http://www.w3.org/2000/svg';
  • Network accessline 44
    // ---------- globals (palette can be overridden by config.palette) ---------- const NS = 'http://www.w3.org/2000/svg'; var W = 1920, H = 1080, PAN = 0.45;
  • Network accessline 45
    const NS = 'http://www.w3.org/2000/svg';

scripts/make_audio.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 37
    def http_post(url, headers, body, ctx=None):     req = urllib.request.Request(url, data=json.dumps(body).encode(), headers=headers, method="POST")
  • Network accessline 38
    req = urllib.request.Request(url, data=json.dumps(body).encode(), headers=headers, method="POST")
  • Network accessline 39
    try:         with urllib.request.urlopen(req, timeout=120, context=ctx) as r:             return r.read()
  • Network accessline 40
    with urllib.request.urlopen(req, timeout=120, context=ctx) as r:
  • Access to secretsline 61
    [Credential-related source omitted]
  • Network accessline 64
    if "voice_settings" in spec:             body["voice_settings"] = spec["voice_settings"]         data = http_post(f"https://api.elevenlabs.io/v1/text-to-speech/{vid}?output_format=mp3_44100_128",
  • Network accessline 65
    [Credential-related source omitted]
  • Network accessline 66
    data = http_post(f"https://api.elevenlabs.io/v1/text-to-speech/{vid}?output_format=mp3_44100_128",
  • Access to secretsline 72
    [Credential-related source omitted]
  • Network accessline 75
    if spec.get("instructions"):             body["instructions"] = spec["instructions"]         data = http_post("https://api.openai.com/v1/audio/speech",
  • Network accessline 76
    [Credential-related source omitted]
  • Network accessline 77
    data = http_post("https://api.openai.com/v1/audio/speech",
  • Network accessline 200
    [Credential-related source omitted]
  • Network accessline 201
    [Credential-related source omitted]
  • Access to secretsline 201
    [Credential-related source omitted]
  • Network accessline 202
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Network accessline 203
    try:             data = json.load(urllib.request.urlopen(req, timeout=60))             print("ElevenLabs voices:")
  • Network accessline 204
    data = json.load(urllib.request.urlopen(req, timeout=60))

scripts/new_project.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/package-lock.json

  • Network accessline 12
    "node_modules/@puppeteer/browsers": {       "version": "3.2.3",       "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.3.tgz",
  • Network accessline 13
    "version": "3.2.3",       "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.3.tgz",       "integrity": "sha512-2Bt3m6dDAJqmZehn0wiXSYyQmuhyiHHZ7FjvrVaS1W2RoFGV6eCK71UvKYkNJjkwC1Q9nobjhvTMhLQztFVINA==",
  • Network accessline 14
    "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.3.tgz",
  • Network accessline 40
    "node_modules/ansi-regex": {       "version": "6.3.0",       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
  • Network accessline 41
    "version": "6.3.0",       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",       "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==",
  • Network accessline 42
    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
  • Network accessline 47
    },       "funding": {         "url": "https://github.com/chalk/ansi-regex?sponsor=1"
  • Network accessline 48
    "funding": {         "url": "https://github.com/chalk/ansi-regex?sponsor=1"       }
  • Network accessline 49
    "url": "https://github.com/chalk/ansi-regex?sponsor=1"
  • Network accessline 52
    "node_modules/ansi-styles": {       "version": "6.2.3",       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
  • Network accessline 53
    "version": "6.2.3",       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",       "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
  • Network accessline 54
    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
  • Network accessline 59
    },       "funding": {         "url": "https://github.com/chalk/ansi-styles?sponsor=1"
  • Network accessline 60
    "funding": {         "url": "https://github.com/chalk/ansi-styles?sponsor=1"       }
  • Network accessline 61
    "url": "https://github.com/chalk/ansi-styles?sponsor=1"
  • Network accessline 64
    "node_modules/chromium-bidi": {       "version": "17.0.2",       "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-17.0.2.tgz",
  • Network accessline 65
    "version": "17.0.2",       "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-17.0.2.tgz",       "integrity": "sha512-5v9GQFhTktFvotn/OFNJBmKLKRAb6n9r0bVCwf7sHgWc3/JryK0bj1nn93L3pHFrfgcsu6Be6EWsDi+1XHTGDg==",
  • Network accessline 66
    "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-17.0.2.tgz",
  • Network accessline 80
    "node_modules/cliui": {       "version": "9.0.1",       "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
  • Network accessline 81
    "version": "9.0.1",       "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",       "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
  • Network accessline 82
    "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
  • Network accessline 94
    "node_modules/cliui/node_modules/string-width": {       "version": "7.2.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
  • Network accessline 95
    "version": "7.2.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",       "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
  • Network accessline 96
    "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
  • Network accessline 106
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 107
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 108
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 111
    "node_modules/devtools-protocol": {       "version": "0.0.1687809",       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1687809.tgz",
  • Network accessline 112
    "version": "0.0.1687809",       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1687809.tgz",       "integrity": "sha512-t7kSb+UKYdyxcmqy98U2P86ne6rCve3DIJ4+lp54i/hhClgFuG35JrLj23rO14Jw3sWDsp7i+22QhNU0+/qk8
  • Network accessline 113
    "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1687809.tgz",
  • Network accessline 118
    "node_modules/emoji-regex": {       "version": "10.6.0",       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
  • Network accessline 119
    "version": "10.6.0",       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",       "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
  • Network accessline 120
    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
  • Network accessline 124
    "node_modules/escalade": {       "version": "3.2.0",       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 125
    "version": "3.2.0",       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",       "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
  • Network accessline 126
    "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 133
    "node_modules/get-caller-file": {       "version": "2.0.5",       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
  • Network accessline 134
    "version": "2.0.5",       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
  • Network accessline 135
    "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
  • Network accessline 142
    "node_modules/get-east-asian-width": {       "version": "1.7.0",       "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",
  • Network accessline 143
    "version": "1.7.0",       "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",       "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==",
  • Network accessline 144
    "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",
  • Network accessline 149
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 150
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 151
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 154
    "node_modules/mitt": {       "version": "3.0.1",       "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
  • Network accessline 155
    "version": "3.0.1",       "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",       "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
  • Network accessline 156
    "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
  • Network accessline 160
    "node_modules/modern-tar": {       "version": "0.8.5",       "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.5.tgz",
  • Network accessline 161
    "version": "0.8.5",       "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.5.tgz",       "integrity": "sha512-snEhs+6G5Tjd4I7tLCDOaoln2RgE0bD19RzEKgvgK2hZ5VKy3MpLhLTZ2fWpXSTg4K2cyPwp+VHATFJhxfnOeA==",
  • Network accessline 162
    "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.5.tgz",
  • Network accessline 169
    "node_modules/puppeteer-core": {       "version": "25.12.0",       "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.12.0.tgz",
  • Network accessline 170
    "version": "25.12.0",       "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.12.0.tgz",       "integrity": "sha512-z6LQUt5SH7jwGtGA+nMtJuEjZIsqPiwQ+EFHCYuVDQrJpvifNmmGuyDvTzAKPyFzihxgHc5f3aMzu2kn8Ps37A==",
  • Network accessline 171
    "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.12.0.tgz",
  • Network accessline 186
    "node_modules/string-width": {       "version": "8.3.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",
  • Network accessline 187
    "version": "8.3.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",       "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==",
  • Network accessline 188
    "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",
  • Network accessline 197
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 198
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 199
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 202
    "node_modules/strip-ansi": {       "version": "7.2.0",       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
  • Network accessline 203
    "version": "7.2.0",       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",       "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
  • Network accessline 204
    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
  • Network accessline 212
    },       "funding": {         "url": "https://github.com/chalk/strip-ansi?sponsor=1"
  • Network accessline 213
    "funding": {         "url": "https://github.com/chalk/strip-ansi?sponsor=1"       }
  • Network accessline 214
    "url": "https://github.com/chalk/strip-ansi?sponsor=1"
  • Network accessline 217
    "node_modules/typed-query-selector": {       "version": "2.12.2",       "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",
  • Network accessline 218
    "version": "2.12.2",       "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",       "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ=="
  • Network accessline 219
    "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",
  • Network accessline 223
    "node_modules/webdriver-bidi-protocol": {       "version": "0.4.3",       "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.3.tgz",
  • Network accessline 224
    "version": "0.4.3",       "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.3.tgz",       "integrity": "sha512-uuN0goWfxP22B7J/uAgBpOYNPttC+XVseYE+rSY5+rQ+YBeVz/VORw8WbmLVcqW78zNg5A4qnjNXYUWR3il2i
  • Network accessline 225
    "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.3.tgz",
  • Network accessline 229
    "node_modules/wrap-ansi": {       "version": "9.0.2",       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
  • Network accessline 230
    "version": "9.0.2",       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",       "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
  • Network accessline 231
    "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
  • Network accessline 241
    },       "funding": {         "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
  • Network accessline 242
    "funding": {         "url": "https://github.com/chalk/wrap-ansi?sponsor=1"       }
  • Network accessline 243
    "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
  • Network accessline 246
    "node_modules/wrap-ansi/node_modules/string-width": {       "version": "7.2.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
  • Network accessline 247
    "version": "7.2.0",       "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",       "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
  • Network accessline 248
    "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
  • Network accessline 258
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 259
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 260
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 263
    "node_modules/ws": {       "version": "8.21.3",       "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
  • Network accessline 264
    "version": "8.21.3",       "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",       "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
  • Network accessline 265
    "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
  • Network accessline 284
    "node_modules/y18n": {       "version": "5.0.8",       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
  • Network accessline 285
    "version": "5.0.8",       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",       "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
  • Network accessline 286
    "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
  • Network accessline 293
    "node_modules/yargs": {       "version": "18.2.0",       "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz",
  • Network accessline 294
    "version": "18.2.0",       "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz",       "integrity": "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==",
  • Network accessline 295
    "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz",
  • Network accessline 310
    "node_modules/yargs-parser": {       "version": "22.0.0",       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
  • Network accessline 311
    "version": "22.0.0",       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",       "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
  • Network accessline 312
    "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
  • Network accessline 319
    "node_modules/zod": {       "version": "3.25.76",       "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
  • Network accessline 320
    "version": "3.25.76",       "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",       "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
  • Network accessline 321
    "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
  • Network accessline 323
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/colinhacks"
  • Network accessline 324
    "funding": {         "url": "https://github.com/sponsors/colinhacks"       }
  • Network accessline 325
    "url": "https://github.com/sponsors/colinhacks"

scripts/package.json

  • Executable scriptline 1
    Executable file

scripts/render.js

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

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.

Declared and executed: 2 facts
  • Contacts api.elevenlabs.io, which SKILL.md, the README and the plugin manifest do not mentionscripts/make_audio.py:66High confidence
  • Contacts api.openai.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/make_audio.py:77High confidence
Signal confidence: 40 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md 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.