← Recherche

Khan Explainer
Creative and media 📌 Version épinglée : commit 326bf9b
🔎 Analyse du prompt d’installation · 2026-10-23 : exécute des commandes · fait des appels réseau · installe des paquets · écrit des fichiers · utilise des clés API ou des jetons
⚙ Prérequis: Avant de commencer…

Khan Explainer

Produire localement sur Mac des vidéos explicatives de style Khan Academy : un stylo dessine sur un tableau noir ou blanc pendant qu'une voix explique, avec des tutoriels dessinés par-dessus vos...

L’essentiel
Quoi
Produire localement sur Mac des vidéos explicatives de style Khan Academy : un stylo dessine sur un tableau noir ou blanc pendant qu'une voix explique, avec des tutoriels dessinés par-dessus vos...
Coût
Gratuit
Prérequis
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
Installation
Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.

Version :

⌁

Installation

Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit 326bf9b

Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : macOS seulement. La copie du skill elle-même n'exige aucun compte, aucune clé API et aucun service payant, et le skill est gratuit (MIT). L'utiliser ensuite demande macOS, Node 20 ou plus récent et ffmpeg (`brew install ffmpeg`) déjà sur la machine, plus une préparation d'environnement séparée au premier usage dans le dossier scripts/ installé (`npm install`, puis `npx playwright install chromium`, qui télécharge le paquet Playwright épinglé et un navigateur Chromium) — rien de tout cela n'est lancé pendant cette installation ; c'est ma décision, plus tard, avant le premier usage. La voix par défaut est gratuite et locale (`say` de macOS). DIVULGATION D'ÉTIQUETTE, ajoutée le 2026-10-23 — lis ceci avant de décider, car deux modes optionnels envoient ou lisent des données, et les deux sont divulgués au point 2 avant que l'un ou l'autre puisse arriver : (i) le mode optionnel « clips à audio réel », qui n'est jamais le mode par défaut, fait lire ma propre session du navigateur Chrome par yt-dlp (`--cookies-from-browser chrome`, SKILL.md, étape 1 de « Real-audio clips ») pour télécharger l'audio d'une vidéo YouTube ou d'un podcast que je nomme ; (ii) la voix ElevenLabs optionnelle, seulement si je l'active moi-même sur une scène, envoie le texte parlé de cette scène (le script entier, en une seule prise) avec ma propre clé ElevenLabs à api.elevenlabs.io. Aucun de ces modes ne roule pendant l'installation, aucun n'est activé par défaut, et aucun code du dépôt ne relie les cookies Chrome à ElevenLabs : ce sont deux flots optionnels séparés, dans deux fichiers séparés. Installe-moi « khan-explainer ». Il fabrique des vidéos explicatives façon Khan Academy, localement sur macOS : un stylo dessine sur un tableau noir ou blanc pendant qu'une voix explique, d'un seul fichier de scène à un seul MP4. Il a trois modes : une leçon au tableau (un diagramme dessiné trait par trait), un tutoriel dessiné par-dessus l'interface (flèches, cercles et légendes numérotées dessinés sur des captures de produit), et un clip à audio réel (de courts clips verticaux tirés d'une vidéo YouTube ou d'un podcast, la vraie voix de la personne sous un tableau dessiné sur ses mots, avec un détourage tête parlante optionnel via macOS Vision). La voix commande l'horloge : une scène est une liste de temps forts, chaque temps fort est une proposition parlée plus le dessin fait pendant qu'elle est dite, et le moteur de rendu dit d'abord chaque temps fort, le mesure, puis cale le dessin dessus. Il écrit dans de nombreuses écritures (arabe, ourdou et hébreu de droite à gauche ; écritures indiques, thaï, chinois, japonais, coréen, cyrillique, grec et plus), sur tableau noir ou blanc, en paysage ou en vertical. Cette fiche a été découverte via la copie skills/khan-explainer/SKILL.md dans le dépôt, mais ce dossier seul (un seul fichier) ne contient pas scripts/, le moteur de rendu, donc cette installation est tout le dépôt : n'installe jamais ce skill depuis le seul dossier skills/, sans son moteur. Dépôt : https://github.com/haiderfarooq3/khan-explainer (le skill est tout le dépôt au commit épinglé, SKILL.md à la racine et sa copie skills/khan-explainer/SKILL.md tous deux inclus, moins le seul dossier .git : 38 fichiers) Version épinglée : installe le code au commit 326bf9b5332bb30a09e9d11f0ba81e30e7a0e81f exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/haiderfarooq3/khan-explainer dans un dossier temporaire, place-toi au commit 326bf9b5332bb30a09e9d11f0ba81e30e7a0e81f, et copie tout le dossier du dépôt de ce checkout, sauf le seul dossier .git (garde le dossier skills/khan-explainer/ et tous les autres fichiers : la copie skills/ seule n'a pas de moteur, et le moteur dans scripts/ à la racine fait partie de cette installation). Compare ensuite chaque fichier copié aux empreintes enregistrées pour cette fiche le 2026-10-19 et revérifiées inchangées le 2026-10-23 : [FINGERPRINTS] - .github/workflows/render.yml: SHA-256 be0310b9a1759ef95d00bbbd3a7bd34f95779b817756f623d242fefbef9cdf47 - .gitignore: SHA-256 83891c353af34dbb6cab73c6eb6d8894d281b475a78108e9c36a4be56c589c36 - LICENSE: SHA-256 ff609398ef2adffc88c4856afef52e13a4ceae902d775a7e2b6f6e4db2af7a7f - README.md: SHA-256 788dcb6bcdb7c7b856f01d1f6064d271a77424a3a8465973873d2fa9ac96dce6 - SKILL.md: SHA-256 ce9398dd0f824d99e0c9948cb2c804922c23f467f3c11a1fed247d86be13f2b2 - docs/board.jpg: SHA-256 a9a1dfea2bba775fbed09868583196d808198e7eb478a09eab4e384696989cb1 - examples/ai-agents.js: SHA-256 aa177f29c1448e4a6e1e2632a0d74b85776a4e61ef668a63efd02a6cebae1b48 - examples/arabic.js: SHA-256 39b68b8317bea0ac70faa9b1e96c7d9272fbd36560d226037d509e571ac746df - examples/languages.js: SHA-256 af4cf27afc1d7986bc4992179fc18660c7d2546b791fedf6603f757579c6384d - examples/shots/clone.jpg: SHA-256 192f27dce0bab51abc30b520310de9c941ceb4441c96b3c8f1ab042b658f89e3 - examples/shots/repo.jpg: SHA-256 d4a0162498acb0e954b5ff99601cb7e9d82351eb5d3604c936542fa01627897d - examples/ui-tutorial.js: SHA-256 585a9d12a08d62903a5b68981eb5a171756ccc7e91ab1b5fbda39ad86b49f080 - scripts/board.html: SHA-256 813670e389255eebd0ef89bd425b1793d2364d08d5332fcd15c36aafc162fa96 - scripts/clip_audio.py: SHA-256 426cea3a38c8941c7cddb5604fc43ad018845294c7a2bdc8ec7fde9cbedf1ac7 - scripts/cutout.swift: SHA-256 ac7ef799acd49c14621baac7a46a39223cc8df4ebb9d4b1b731bf19461bfe83d - scripts/kokoro_tts.py: SHA-256 e39403fdc66535e005ddda2e21de178148f5ad42038d4893f7841610bba2e084 - scripts/package-lock.json: SHA-256 42336d6e6e91ada34f84daa7c22fd732b0716c302c983650bdc54b1d51c465ba - scripts/package.json: SHA-256 aac8ef608526bdd1ef67d562e96d8f861a383110330b1b72614c9d9737a08510 - scripts/render.js: SHA-256 79a30cd77042443c50d428a614d2cd8cc686ba73b1dc633351bfa26315ab8289 - scripts/talking_head_example.sh: SHA-256 223e98d22bd3e37855ae231cb7ec728f58f42470399c9ec0dac5b08e18f89401 - skills/khan-explainer/SKILL.md: SHA-256 5b58c9efc61af3c127b8e86b6fada19a1a90adf1ece7068a7868d06c42e6e282 - tests/fonts.js: SHA-256 ff07d1b943906a0e80e353d06ef75b917d6bf02322897cda28e14045fb06d71d - tests/languages/ar.js: SHA-256 32a7005b613e80ed7ef77fa2029a9f8079cd20f1d00687cd8116c37242765742 - tests/languages/bn.js: SHA-256 87bdac98edae56a49a934c4e8a42a963e94f0b1418e8f3ae474c1aea32417e4a - tests/languages/el.js: SHA-256 6840188a60884e8848650624ee4f1eab7f731e5387304314b8f288753556af46 - tests/languages/es.js: SHA-256 3b57bfe65e3654fddd3c78e92c2c29a5aa95d579a485f578ff28941a81a3b40d - tests/languages/fa.js: SHA-256 63f3b81420956752656d4bbf8aac9829ca5f67d7a9c53f7df4a232aed8cbebd5 - tests/languages/fr.js: SHA-256 488d2bce33eb809782c5176a0a8de9c95e086f145ff3dce9d1c2d29e29deba04 - tests/languages/he.js: SHA-256 5f1e3c5af4ee3b25c3fd571d85a4b98580572f34fabbe2e80eb98916e95f8eb2 - tests/languages/hi.js: SHA-256 284f0ba16a16bb5a102c148bfeedc01ab646ad7839eb5aa089470cfa0ad6d8fa - tests/languages/ja.js: SHA-256 53ca5ea8228d32418377b96da06e9264a97617d8b03ff05f3afa4fa99e3d2443 - tests/languages/ko.js: SHA-256 a7d06ce77fb4f34f3bf68ecd737a999b8cc7df06b043c406b6406c93dc9b9587 - tests/languages/ru.js: SHA-256 af5e2d8531c836b4c5c35f6fbbed0cd730a533815368f190b140bb3a9ebbe631 - tests/languages/ta.js: SHA-256 d2c0c4c075d9d1f9910f5316b5b5584c1ef167064d1e94a2a50448dbab7dc849 - tests/languages/th.js: SHA-256 a5e795236f51ec683bfa6d1a0651149783d2be5b537e97d66aeda216adedc26e - tests/languages/ur.js: SHA-256 489e50571a3f561e967ab66200e47832c93e9664b89a513173b742cb300d4a93 - tests/languages/zh.js: SHA-256 aa73519d2afa28324d2cf89a13b369c1fc0c91a1224f600fabec1da7f6b5a1af - tests/run.js: SHA-256 bf883fe8b9fcac6f156348cf6c523092a1bf01be27b226e5790c71a3c23fab14 Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md au complet (le fichier racine fait foi ; la copie skills/khan-explainer/SKILL.md est le même texte plus un bandeau de découverte de 92 octets) et lis les fichiers qu'il pilote (scripts/render.js, scripts/board.html, scripts/clip_audio.py, scripts/kokoro_tts.py, scripts/cutout.swift, scripts/talking_head_example.sh, scripts/package.json, les exemples et les tests), et dis-moi en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le périmètre contient 38 fichiers : SKILL.md à la racine (20 141 octets, name: khan-explainer, « macOS only ») et sa copie skills/khan-explainer/SKILL.md (20 233 octets), le moteur de rendu et ses auxiliaires dans scripts/ (render.js 13 366 octets, board.html, clip_audio.py, kokoro_tts.py, cutout.swift, talking_head_example.sh, package.json avec une seule dépendance épinglée, playwright 1.62.1, et son package-lock.json), les exemples, les tests, le README, la LICENSE (MIT) et trois images JPEG. C'est du vrai code exécutable (Node, Python, Swift, shell), pas un dossier de simples instructions : il roule localement à l'usage, quand je demande une vidéo. Le dossier skills/ seul ne fonctionnerait pas seul : il ne contient pas scripts/, c'est pourquoi cette installation est tout le dépôt. - Rien n'est envoyé nulle part pendant l'installation elle-même ; le seul téléchargement à l'installation est le dépôt depuis GitHub au commit épinglé. Aucun script n'est exécuté pendant cette installation-copie, aucune clé n'est demandée, et il n'y a aucune télémétrie dans le périmètre. - Lectures et envois ÉTIQUETÉS à l'usage, divulgués ici avant que l'un d'eux arrive — utiliser le skill est une étape séparée qui ne commence que quand je demande une vidéo : (i) CLIPS À AUDIO RÉEL (optionnel, jamais par défaut) : pour obtenir l'audio d'une vidéo YouTube ou d'un podcast que je nomme, SKILL.md documente de lancer le plus récent yt-dlp via uvx avec `--cookies-from-browser chrome` : yt-dlp lit ma session du navigateur Chrome (mes cookies Chrome) sur ma machine pour télécharger l'audio de cette vidéo. Dis-moi à voix haute, avant tout lancement à audio réel, que cette étape lira ma session Chrome, et ne la lance jamais pour une vidéo que je n'ai pas nommée. L'audio téléchargé est ensuite transcrit et découpé localement par scripts/clip_audio.py avec faster-whisper (uvx télécharge yt-dlp et faster-whisper, ainsi que le modèle Whisper, au premier usage ; la transcription elle-même est locale). (ii) VOIX ELEVENLABS (optionnelle, seulement si je l'active) : seulement quand une scène que j'approuve déclare `eleven: '<voice id>'` et que ELEVENLABS_API_KEY est dans l'environnement, scripts/render.js envoie quelque chose à ElevenLabs : un POST vers https://api.elevenlabs.io/v1/text-to-speech/<voice id>/with-timestamps portant ma clé dans l'en-tête `xi-api-key` et, dans le corps, le texte parlé de la scène (le script entier en une seule prise), l'id du modèle et les réglages de voix. C'est un service tiers payant. La clé est lue dans l'environnement seulement ; signale-moi tout autre usage d'elle. N'active jamais `eleven` sur une scène de toi-même. (iii) Autres téléchargements et récupérations divulgués à l'usage : la voix locale gratuite Kokoro, seulement si je la choisis, demande `pip install kokoro soundfile` et télécharge son modèle (environ 330 Mo) depuis Hugging Face (hexgrad/Kokoro-82M) au premier usage, puis roule hors ligne ; le mode dessiné par-dessus l'interface capture ou récupère les pages produit et les captures que je nomme, avec Playwright ou avec mon propre navigateur connecté quand une page l'exige (masquer d'abord les données privées dans la page, comme SKILL.md le prescrit) ; la préparation d'environnement du point 5 télécharge le paquet Playwright épinglé depuis le registre npm et un navigateur Chromium. - Les parties locales seulement à l'usage : le rendu par défaut (canvas HTML dans Playwright/Chromium, la voix `say` de macOS, ffmpeg), la voix Kokoro après son unique téléchargement de modèle, la transcription faster-whisper, les vérifications de mise en page du tableau (la planche-contact et les images par temps fort que le moteur imprime) et le détourage tête parlante (macOS Vision, scripts/cutout.swift bâti localement avec swiftc) roulent tous sur cette machine et n'envoient rien. Sous Linux, la voix gratuite retombe sur espeak-ng et sonne plus rugueuse, et SKILL.md demande les polices Noto pour les écritures écrites — le skill est bâti pour macOS. - Ne lance ni npm install, ni npx playwright install, ni brew install, ni pip install, ni uvx, ni yt-dlp, aucun rendu, aucun test, la construction du détourage, ni aucune étape à audio réel ou ElevenLabs pendant cette installation : préparer l'environnement, télécharger un modèle, lire ma session Chrome ou envoyer un script à ElevenLabs sont mes décisions, plus tard, quand je demande vraiment une vidéo, comme divulgué ci-dessus. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier du dépôt (tout sauf .git) dans le répertoire des skills de l'agent, dans un dossier nommé « khan-explainer », en gardant ses 38 fichiers avec SKILL.md à sa racine et skills/khan-explainer/SKILL.md en place. Un clone manuel dans ~/.claude/skills/khan-explainer suivi du seul retrait de .git est la route amont pour ce périmètre ; toute autre route ne convient que si chaque fichier installé correspond à son empreinte. 4. Vérifie sans appels réseau : frontmatter valide (name: khan-explainer, dans les deux copies de SKILL.md), les 38 fichiers en place avec des empreintes concordantes. Ne lance ni render.js, aucun test ni aucune commande de préparation pour vérifier. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : avoir macOS, Node 20 ou plus récent et ffmpeg sur la machine ; avant le premier usage, lancer la préparation séparée au premier usage dans le dossier scripts/ installé — `npm install` puis `npx playwright install chromium` — en sachant qu'elle télécharge le paquet Playwright épinglé et Chromium ; choisir moi-même la voix de chaque vidéo — la voix gratuite locale `say` par défaut, la voix locale gratuite Kokoro après son pip install et son unique téléchargement de modèle depuis Hugging Face, ou la voix payante ElevenLabs seulement si je règle ELEVENLABS_API_KEY et que je mets `eleven` sur la scène, en sachant qu'alors le texte parlé de ma scène et ma clé partent vers api.elevenlabs.io comme divulgué au point 2 ; et, seulement si je demande un clip à audio réel, accepter que yt-dlp lise ma session Chrome avec `--cookies-from-browser chrome` pour télécharger l'audio de la vidéo ou du podcast que je nomme, comme divulgué au point 2. Utiliser le skill est une étape séparée qui ne commence que quand je le demande, et les lectures, envois et téléchargements à l'usage divulgués ci-dessus arrivent seulement à ce moment-là). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.

🔒 Sécurité, provenance et ce que ça touche
🧭 Ce que ça touche
  • Peut lancer des commandes sur l’ordinateur de ton Muse.
  • Peut contacter des services externes par le réseau.
  • Peut télécharger et installer des paquets logiciels.
  • Peut créer ou modifier des fichiers.
  • Fonctionne avec une clé API ou un jeton que tu fournis.
Analyse du prompt d’installation · 2026-10-23
🔒 Sécurité et provenance
📌 Version épinglée : commit 326bf9b · 2026-10-23
🔎 Analyse du prompt d’installation · 2026-10-23 : exécute des commandes · fait des appels réseau · installe des paquets · écrit des fichiers · utilise des clés API ou des jetons
Ce que le scan a trouvé — extraits du prompt d’installation
  • exécute des commandes — Prerequisites: macOS only. The skill copy itself needs no account, no API key and no paid service, and the ski · - LABELLED sends and reads at use time, disclosed here before any of them happens — using the skill is a separ · - Do not run npm install, npx playwright install, brew install, pip install, uvx, yt-dlp, any render, any test
  • fait des appels réseau — - LABELLED sends and reads at use time, disclosed here before any of them happens — using the skill is a separ · - Lectures et envois ÉTIQUETÉS à l'usage, divulgués ici avant que l'un d'eux arrive — utiliser le skill est un
  • installe des paquets — Prerequisites: macOS only. The skill copy itself needs no account, no API key and no paid service, and the ski · - LABELLED sends and reads at use time, disclosed here before any of them happens — using the skill is a separ · - Do not run npm install, npx playwright install, brew install, pip install, uvx, yt-dlp, any render, any test
  • écrit des fichiers — - LABELLED sends and reads at use time, disclosed here before any of them happens — using the skill is a separ · - Lectures et envois ÉTIQUETÉS à l'usage, divulgués ici avant que l'un d'eux arrive — utiliser le skill est un
  • utilise des clés API ou des jetons — Prerequisites: macOS only. The skill copy itself needs no account, no API key and no paid service, and the ski · - LABELLED sends and reads at use time, disclosed here before any of them happens — using the skill is a separ · - Lectures et envois ÉTIQUETÉS à l'usage, divulgués ici avant que l'un d'eux arrive — utiliser le skill est un
Skill Harbor ne révise jamais le code des skills listés. Ce sont des faits datés sur le prompt d’installation et notre test d’installation, pas une certification de sécurité. Révisez un skill vous-même avant de l’installer. Comment nous vérifions
Envie d'être encore plus prudent ?

Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?

Comment vérifier une création avant de l’installer →

?

Questions

Comment installer une création ?

Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.

Où va mon argent ?

Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.

Que signifie le ✓ à côté du nom d’un créateur ?

Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.