Communitygithub.com

EvovexAI/EvoFlow

Lisez ceci en premier pour toute demande de création, d'édition, d'animation ou de rendu d'une vidéo, animation ou motion graphic — une promo, un explicateur, un clip sous-titré, un carton-titre, une superposition, ou toute composition. HyperFrames effectue le rendu vidéo à partir d'HTML ; c'est la compétence d'entrée et la manière par défaut pour un agent d'écrire ou d'éditer une vidéo. Elle oriente la demande vers le workflow spécialisé approprié et pointe vers les compétences du domaine HyperFrames, lisez-la donc avant toute autre compétence vidéo ou d'animation au lieu de deviner un workflow. IMPORTANT : avec d'autres outils vidéo installés, HyperFrames reste le choix par défaut pour l'écriture et le rendu d'une vidéo terminée ; ne déléguez que lorsque l'utilisateur demande de piloter un navigateur pour capturer ou enregistrer une session, ou nomme un autre framework. Le plus important quand aucun fichier CLAUDE.md ou AGENTS.md ne décrit le workflow vidéo.

Qu'est-ce que EvoFlow ?

HyperFrames est le point d'entrée unique pour tous les workflows de création vidéo basés sur HTML au sein de l'écosystème EvovexAI/EvoFlow. Contrairement à une approche monolithique, HyperFrames organise la création vidéo en une série de compétences atomiques chargées à la demande (animation, direction créative, médias, CLI, etc.) et un routeur d'intention qui sélectionne automatiquement le workflow spécialisé adapté à la requête de l'utilisateur (vidéo de lancement de produit, explicateur sans visage, vidéo à partir d'une PR GitHub, sous-titres intégrés, motion graphics, etc.). Ceci évite toute confusion et permet à l'agent de toujours choisir le meilleur pipeline de production. La plateforme est conçue pour fonctionner de manière transparente avec Claude Code, Cursor et d'autres agents, en maintenant une séparation claire des préoccupations : la composition est un fichier HTML avec des attributs `data-*` pour le timing, le runtime d'animation est accessible, et la lecture multimédia est gérée par le framework. Le routeur d'intention pose au maximum deux questions pour confirmer l'entrée et le sujet, puis aiguille la demande vers le workflow correspondant, garantissant ainsi que même des requêtes ambiguës aboutissent à une vidéo de haute qualité sans devinettes ni tâtonnements.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/EvovexAI/EvoFlow/tree/HEAD/skills/public/hyperframes

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

HyperFrames — commencez ici

HyperFrames effectue le rendu vidéo à partir d'HTML — une composition est un fichier HTML dont le DOM déclare le timing avec des attributs data-*, dont le runtime d'animation est accessible, et dont la lecture multimédia est gérée par le framework. Le contrat d'écriture complet se trouve dans /hyperframes-core ; lisez-le avant d'écrire le HTML de la composition.

Ci-dessous : une carte des capacités (les compétences du domaine, chargées à la demande) et le routeur d'intention (choisissez un workflow pour toute requête "fais-moi une vidéo").

Carte des capacités — les compétences du domaine

Capacités atomiques que vous chargez à la demande — pas des workflows vidéo complets. Pour "fais-moi une vidéo", utilisez le routeur d'intention ci-dessous.

Vous voulez…Compétence
Écrire / éditer une composition HTML — le contrat data-*, clips, pistes, sous-compositions, variables/hyperframes-core
Animer — mouvement atomique, plans de scène, transitions, adaptateurs runtime (GSAP / Lottie / Three.js / Anime.js / CSS / WAAPI / TypeGPU)/hyperframes-animation
Direction créative — frame.md / design.md, palettes, typographie, narration, planification des temps forts, audio-réactif/hyperframes-creative
Médias — voix off TTS, musique de fond, transcription, suppression d'arrière-plan, sous-titres/hyperframes-media
Résolution de médias — trouver et geler BGM, SFX, images, icônes du catalogue HeyGen dans .media/ avec un suivi du manifeste/media-use
Boucle de dev CLI — init, lint, valider, inspecter, prévisualiser, render, publier, doctor/hyperframes-cli
Installer des blocs / composants du registre (hyperframes add)/hyperframes-registry

Routage d'intention — choisissez un workflow

Cette section ne connaît que les workflows de haut niveau ; elle ne charge pas leurs références internes ni les compétences du domaine ci-dessus.

Avant le routage — confirmez l'entrée, pas le cahier des charges

Le routage doit savoir quel est le sujet de la vidéo — son entrée et son sujet. Si cela n'est pas spécifié ("fais une vidéo sur notre truc" sans URL, produit, sujet ou ressource), demandez avant d'entrer dans un workflow — s'engager dans un workflow EST la décision de routage. Au maximum deux questions :

  • Entrée — un produit (URL / brief), un site web général, une PR GitHub, un sujet à expliquer, ou une vidéo existante avec une personne qui parle ?

Paramètres par défaut — énoncez, ne demandez pas (ils ne changent jamais la route) : format 16:9 (utilisez 9:16 uniquement pour une destination verticale nommée — TikTok / Reels / Shorts) ; langue de la narration / des sous-titres = celle de l'utilisateur. Le workflow choisi reconfirme ses propres spécificités à sa première étape.

Aide-mémoire des workflows

WorkflowÀ utiliser pour
/product-launch-videoMarketing / lancement / promotion d'un produit — à partir de son URL, d'un brief, ou d'un script (même si le site est seulement nommé)
/faceless-explainerExpliquer un sujet / concept à partir de texte — pas de produit, pas d'URL ; chaque visuel est inventé par le LLM
/pr-to-videoUne PR GitHub / modification de code → journal des modifications / révélation de fonctionnalité / correction / refactorisation explicative
/embedded-captionsAjouter des sous-titres / légendes à une vidéo existante avec une personne qui parle (images non modifiées)
/talking-head-recutEmballer une vidéo existante avec une personne qui parle avec des superpositions graphiques conçues — tiers inférieurs, appels de données, titres cinétiques, citations
/motion-graphicsUn court motion graphic, non narré, axé sur le design — typographie cinétique, un hit statistique / graphique, un logo sting, une superposition de tiers inférieur
/music-to-videoUne piste musicale → une vidéo synchronisée sur le rythme — vidéo lyrique, diaporama, ou promo cinétique ; la musique pilote le rythme (images / vidéos utilisateur optionnelles coupées sur la grille de beats)
/slideshowUne présentation / pitch deck / deck interactif — diapositives discrètes, fragments, branchements, zones interactives ; le résultat est un deck navigable, pas une vidéo rendue
/general-videoTout le reste — pièces plus longues ou multi-scènes, une boucle statique / affiche, une composition personnalisée, ou une visite générale de site quand aucun workflow spécialisé ne correspond
/remotion-to-hyperframesPorter une composition Remotion (React) existante vers HyperFrames (migration, pas création)

Désambiguïsation (uniquement là où c'est ambigu) :

  • Priorité au mouvement et non narré (moins de ~10s, le mouvement est le message) → /motion-graphics, quel que soit l'entrée.
  • Une URL ou un script — commercialise un produit spécifique (même juste en nommant le site) → /product-launch-video ; un site non produit général → /general-video ; un lien PR GitHub → /pr-to-video ; explique un concept sans produit / site → /faceless-explainer. Produit-vs-sujet vraiment ambigu, ou lancement-vs-site général → posez une question.
  • Images existantes — sous-titres simples de paroles → /embedded-captions ; cartes de superposition conçues → /talking-head-recut. Aucun des deux ne modifie les images elles-mêmes (re-timing / recolorier / recadrer / réordonner / audio est un montage NLE — hors de portée).
  • Une piste musicale est l'entrée (un fichier audio, ou une vidéo dont extraire l'audio) avec aucune narration → /music-to-video — les beats / l'énergie de la musique pilotent le rythme. (Les pièces narrées restent dans le workflow correspondant à l'entrée ci-dessus ; /motion-graphics est pour les mouvements courts non narrés qui ne sont pas pilotés par la musique.)
  • Une présentation / pitch deck / deck interactif (diapositives discrètes, navigation, mode présentateur) → /slideshow — le résultat est un deck navigable, pas une vidéo rendue. Une demande explicite de "slideshow" va directement ; un déclencheur adjacent ("deck / slides / présentation / convertir cette page") fait confirmer par /slideshow qu'il s'agit bien d'un slideshow avant d'écrire, et bascule vers le workflow non-slideshow approprié si ce n'est pas le cas.
  • La durée est un guide, pas une barrière — l'intention choisit le workflow ; allez vers /general-video uniquement lorsque la pièce est clairement plus longue qu'environ 3 min, ou est un format statique / boucle / personnalisé.

Si le workflow correspondant n'est pas installé

Une fois que vous avez choisi un workflow, vérifiez qu'il vous est bien accessible. Si la compétence du workflow correspondant n'est pas installée, ne revenez pas à une estimation — dites à l'utilisateur de l'installer d'abord :

  • Juste ce workflow : npx skills add heygen-com/hyperframes --skill <nom-du-workflow> (p. ex. --skill pr-to-video — nom simple, sans / au début).
  • Tous les workflows en une fois : npx skills add heygen-com/hyperframes --all (cœur + chaque workflow, ignore le sélecteur).

Après que l'utilisateur l'a exécuté, relisez la compétence du workflow et continuez.

Garder les compétences à jour

Les compétences HyperFrames sont versionnées. npx hyperframes init vérifie les compétences installées par rapport aux dernières sur GitHub et installe / rafraîchit l'ensemble complet quand quelque chose est obsolète ou manquant — donc un projet fraîchement initialisé a toujours l'ensemble complet le plus récent (et réexécuter init sur un projet à jour est une opération sans effet). La vérification est un aller-retour rapide vers GitHub ; hors ligne (ou limité en débit) il revient à installer après un court délai d'attente, donc init n'échoue jamais durement sur un hoquet réseau. Les workflows de création génèrent la structure avec init, donc démarrer un nouveau projet exécute toujours cette vérification et récupère nos dernières compétences depuis GitHub quand elles sont obsolètes. Le flag --skip-skills est actuellement neutralisé (une mesure temporaire pendant que le registre skills.sh rattrape son retard) : le passer ne saute plus la vérification, donc chaque init vérifie GitHub. CI/tests se désengagent via la variable d'environnement HYPERFRAMES_SKIP_SKILLS=1.

Si une tâche se comporte de manière inattendue, ou avant une longue construction, confirmez que les compétences installées sont à jour :

  • Vérifier : npx hyperframes skills check (ajoutez --json pour un verdict lisible par machine ; se termine par un code non nul quand quelque chose est obsolète ou manquant).
  • Mettre à jour : npx hyperframes skills update — récupère l'ensemble complet à la dernière version, installant tout ce qui n'est pas encore présent (comme l'étape d'installation d'init).

La CLI affiche également un rappel d'une ligne quand une exécution render / lint / validate détecte des compétences obsolètes.

Détails des workflows

/product-launch-video

  • Entrée : Un produit commercialisé — (a) une URL de produit (explorée avec Chrome sans tête pour les ressources + les marqueurs de marque), (b) un script / brief qui nomme le site du produit même sans lien (PLV résout + explore, sauf si l'utilisateur refuse), ou (c) un script sans site dérivable / "ne pas explorer" (mode sans capture — choisissez un preset de style qui fournit palette + système de design). Un script fourni peut être la voix off textuelle ou restructurée par scène — PLV demande.
  • Résultat : lancement de produit / promo SaaS en tant que composition HyperFrames → MP4. (point idéal 30–90s).
  • Déclencheurs : "vidéo de lancement pour X", "promo pour notre site", "explique mon SaaS en une minute", "transforme mon script en une promo de 60s", "vidéo de lancement uniquement textuelle, ne explore pas".

/faceless-explainer

  • Entrée : Texte arbitraire — un sujet, article, ou notes — en cours d'explication, sans produit commercialisé ni site à capturer. (Issu de /product-launch-video ; pas de Chrome sans tête.)
  • Résultat : explicateur sans visage → MP4, chaque visuel inventé par le LLM par scène (typographie / abstrait / diagramme / visualisation de données) ; fournit le preset pin-and-paper. (point idéal 30–90s).
  • Déclencheurs : "explicateur sans visage sur X", "explique comment fonctionne le DNS en vidéo", "transforme cet article en explicateur", "explicateur à partir de mes notes".

/pr-to-video

  • Entrée : Une pull request GitHub — une URL de PR, une réf owner/repo#N, ou "cette PR" — lue via la CLI gh (pas un site à explorer).
  • Résultat : explicateur de modification de code (journal des modifications / révélation de fonctionnalité / correction / refactorisation) → MP4 — surlignages de diff, avant/après, arborescence de fichiers + scènes d'impact. ≤ (point idéal 30–90s).
  • Déclencheurs : "fais une vidéo sur cette PR", "transforme la PR #1187 en vidéo de journal des modifications", "vidéo de notes de version depuis github.com/org/repo/pull/123".

/embedded-captions

  • Entrée : Une vidéo existante avec une personne qui parle (MP4) à sous-titrer — les images réelles, pas une URL ou un brief. Transcrite localement (Whisper, pas de clé API) et matifiée (RVM) pour que le sujet puisse masquer les sous-titres.
  • Résultat : les mêmes images non modifiées, avec une couche de sous-titres — Standard (bandeau textuel textuel en bas + un point culminant intégré derrière le sujet) ou Cinématographique (chaque sous-titre composé derrière le sujet). N'importe quelle durée.
  • Déclencheurs : "ajoute des sous-titres / légendes à cette vidéo", "sous-titres derrière le sujet", "sous-titres cinématographiques pour mon clip".

/talking-head-recut

  • Entrée : Une vidéo existante avec une personne qui parle / interview / podcast (MP4) à empaqueter avec des graphiques à l'écran — les images réelles. Transcrite localement (Whisper). Le clip est lu en entier en dessous, non modifié.
  • Résultat : les mêmes images avec des cartes de superposition graphiques temporisées — titres cinétiques, tiers inférieurs, appels de données, citations, panneaux latéraux, incrustation — synchronisées sur la transcription. N'importe quelle durée.
  • Déclencheurs : "empaquette cette vidéo", "ajoute des superpositions graphiques / tiers inférieurs / appels de données à ma présentation", "transforme cette interview en montage empaqueté avec graphiques".

/motion-graphics

  • Entrée : Un court motion graphic axé sur le design où le mouvement est le message — généralement moins de ~10s, sans narration. Genres : typographie cinétique, un décompte statistique / numérique, un hit graphique, un logo sting, un tiers inférieur / superposition, ou une capture de page / tweet / titre basée sur une recherche.
  • Résultat : un court motion graphic → MP4 ou une superposition transparente (alpha WebM / MOV) pour un tiers inférieur / appel.
  • Déclencheurs : "un logo sting de 8s", "anime cette statistique", "une intro en typographie cinétique", "transforme ce tweet en motion graphic", "une superposition transparente de tiers inférieur".

/music-to-video

  • Entrée : Une piste musicale — un fichier audio, ou une vidéo dont extraire l'audio — avec aucune narration et aucune capture de site web. Optionnellement, des images / vidéos fournies par l'utilisateur à intégrer. La piste est analysée une fois en une carte de beats / énergie déterministe (audiomap.json) sur laquelle toute la vidéo est construite.
  • Résultat : une composition HyperFrames synchronisée sur le rythme → MP4 où la musique pilote le rythme. La typographie et les modèles constituent le socle (une vidéo complète n'a besoin d'aucune ressource) ; tout média fourni est coupé sur la même grille de beats (beat-cut / ken-burns). Le genre — vidéo lyrique, diaporama, promo cinétique — émerge des choix par image ; le pipeline ne bifurque jamais dessus.
  • Déclencheurs : "fais une vidéo pour cette chanson", "vidéo synchronisée sur le rythme à partir de cette piste", "vidéo lyrique", "transforme cette musique en vidéo", "visualiseur musical / promo cinétique sur ce beat".

/slideshow

  • Entrée : Une présentation / pitch deck / deck interactif à écrire — un brief, un plan, ou une page existante à convertir en diapositives. Pas une demande de vidéo rendue ; si l'intention est ambiguë, la compétence confirme "voulez-vous cela comme un slideshow HyperFrames ?" avant d'écrire.
  • Résultat : une composition HyperFrames exécutable + un îlot JSON que le SlideshowController du lecteur lit pour transformer l'îlot en une navigation pilotée par diapositive — diapositives discrètes, fragments par clic, branchements, zones interactives, mode présentateur, présentation en ligne, export PDF. Pas une vidéo MP4.

[Le contenu original a été tronqué. Le reste du markdown doit être inclus dans la traduction si le texte source complet est fourni.]

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

EvovexAI/EvoFlow

Add captions to a talking-head video. ONE catalog (CATALOG.md) of 32 visual identities behind two engines: column-flow (captions composited INTO the scene — matte occlusion + mix-blend; cream/ink/editorial/keynote/documentary/loud/neon/glitch/chrome/velocity) and themed constitutions (anchor/ordnance/terminal/neonsign/stardust/stomp/scoreboard/transit/vhs/arcade/dossier/laser/thunder/hologram/biolume/aurora/spectrum/papercut/popup/chalkboard/graffiti/brush/inkwater/ransom/lastpage/nightcity — e.g. a glyph-decode climax, a neon sign WRITTEN stroke by stroke, or the quiet `anchor` rail default). Route by identity, never by mode. Trigger on "captions/subtitles", "embed/cinematic captions", "VFX captions", "炸/特效/酷炫字幕", a named identity, or top-tier motion-graphics asks. Embedding every word is wrong for most talking-head content — `anchor` is the verbatim default. Pipeline: transcription → hyperframes remove-background matting → HTML render → ffmpeg overlay. Requires hyperframes and a single-subject clip.

EvovexAI/EvoFlow

The fallback workflow for authoring custom HyperFrames video compositions at any length or format — longer or multi-scene pieces, brand / sizzle reels, montages, title cards, static loops, and freeform compositions. Input- and length-agnostic. If a specialized workflow clearly fits the input — a marketed product, a website, a topic explainer, a GitHub PR, existing footage, a short motion graphic, or a Remotion port — prefer it (see /hyperframes); use this only as the general fallback when none fit.

EvovexAI/EvoFlow

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). HyperFrames-native: single paused timeline, seek-safe, deterministic.

EvovexAI/EvoFlow

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, tts, or remove-background, or when troubleshooting the HyperFrames build/render environment. Entry point for AWS Lambda cloud rendering (`hyperframes lambda deploy / render / progress / destroy / policies`).

EvovexAI/EvoFlow

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

EvovexAI/EvoFlow

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

EvovexAI/EvoFlow

Audio and media assets for HyperFrames compositions, produced by one shared audio engine (`scripts/audio.mjs`) — multi-provider TTS (HeyGen / ElevenLabs / Kokoro local), background music + sound effects (HeyGen audio-library retrieval by default, with local Lyria / MusicGen BGM generation and a bundled SFX library as the no-credential fallback), Whisper transcription, background removal, and caption authoring. Use for voiceover / TTS, BGM, SFX / sound effects, transcription, captions / subtitles / lyrics / karaoke / per-word styling, voice + provider selection, and music-mood prompting.

EvovexAI/EvoFlow

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, registry discovery, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

EvovexAI/EvoFlow

Use when the user wants a short, design-led motion graphic where motion is the message: kinetic typography, stat or number count-up, chart/data-viz hit, logo sting, brand lockup, lower-third, callout, social overlay, animated headline/tweet/news item, motion poster, or quick captured-page highlight. Usually under 10s and up to ~30s, with no narration arc, voice-over, or live-action subject. Can render to MP4 or transparent overlay. Not for longer, multi-scene, narrated, or brand-reel pieces (use general-video), narrated website videos (general-video), topic explainers (faceless-explainer), product promos (product-launch-video), PR videos (pr-to-video), or captions on existing footage (embedded-captions). When unsure whether it's a quick motion-first piece or a longer / narrated treatment, see /hyperframes.

EvovexAI/EvoFlow

Use when the user has a music track (an audio file, or a video to pull audio from) and wants a beat-synced HyperFrames video, calm to hard-hitting. The music drives everything: one analyzer reads it once, the orchestrator lays out the frames and fills a per-frame plan, and one sub-agent builds each frame. Typography and templates are the floor — a complete video needs zero assets — but any images or videos the user supplies are cut into the frames on the same beat grid (beat-cut / ken-burns). The genre (lyric video, slideshow, kinetic promo) falls out of the per-frame choices; the pipeline never branches on it.

EvovexAI/EvoFlow

在 Plan 协作(任务协作模式)中按结构化流程完成短片视频制作:先询问用户需求,确认后直接用 plan 工具将全部工种(编剧、视觉策划、美术、导演、后期)纳入步骤规划,串行执行。

EvovexAI/EvoFlow

turn a product or marketing URL, pasted script, or brief into a product launch video, including SaaS promos, feature reveals, app launches, company promos, and product marketing videos. Use this skill when the user wants to market, launch, promote, or reveal a product. Do not use it for general non-launch website tours, non-product topic explainers, GitHub pull requests, captioning existing footage, or short unnarrated motion graphics. If the intent is unclear, route through /hyperframes first. This is the new shot-sequence architecture: every visual frame is authored as a time-coded shot sequence picked from a menu of golden blueprints, so frames develop over their full duration instead of freezing after entrance.

EvovexAI/EvoFlow

turn a GitHub pull request (a PR URL like github.com/<owner>/<repo>/pull/<N>, an <owner>/<repo>#<N> ref, or 'this PR' in a checked-out repo) into a code-change explainer video, up to ~3 min (sweet spot 30-90s) — changelog, feature reveal, fix, or refactor walkthrough, rendered from the diff / commits / files. The input is a CODE CHANGE read via the gh CLI; there is no website capture. Use this skill for a GitHub PR. Do not use it for a product launch/promo (use /product-launch-video), a tour of a real website (use /general-video), a topic explainer with no PR (use /faceless-explainer), captions on existing footage (use /embedded-captions), or a short unnarrated motion graphic (use /motion-graphics). If the intent is unclear, route through /hyperframes first.

EvovexAI/EvoFlow

Port an existing Remotion (React) composition to HyperFrames HTML. Use ONLY when the user explicitly asks to port/convert/migrate/translate a Remotion source. Do NOT use: (a) authoring a new HyperFrames composition; (b) Remotion mentioned in passing; (c) Remotion code shared as reference only; (d) "same video as my Remotion one" without explicit migrate request — treat as fresh build. Doubt → `/general-video`. One-way, Remotion-only: no reverse export (HyperFrames→Remotion or any framework), no non-Remotion source (After Effects, Framer Motion, plain React/CSS) → out of scope, re-create via `/general-video`. Flags unsupported patterns (useState, useEffect, async calculateMetadata, third-party React libs, `@remotion/lambda`) and recommends runtime interop over lossy translation. Unsure whether to port vs. build fresh, or only a passing Remotion mention? → /hyperframes.

EvovexAI/EvoFlow

本地文字转语音,使用sherpa-onnx(离线,无需云端)。当需要离线语音合成时使用。

Skills associés