Hypernatural

WorkflowBy HypernaturalVersion 1, Oct 30, 2026

workflow-github-readme-to-video

Turn a GitHub repo into a 30–60 s branded explainer: a stylized metaphor world that acts out what the project does, a narrator, and titles, chips, captions and an end card in the project's own brand that name the real things it ships (commands, modules, features), ending on its install command. Covers reading the repo itself rather than only the README and checking every claim against it, capturing the brand from the project's site, a script and shot list gate, three looks, a character turnaround, voice with word times from the TTS alignment, stills, H3 Max animation, the rough cut, and the compositor layout shown live before the render. For gift videos to open-source maintainers, repo launch videos and "what this project does" explainers; for a product's own app screens, use workflow-product-explainer-video.

SKILL.md

GitHub repo to explainer video

The person gives you a GitHub repo (a link, or its README). You deliver a 30–60 s video that explains what the repo gives its users, in the project's own brand: a generated, stylized world that acts out what it does, a narrator, titles and chips that name the real things it ships, captions, and an end card with how to get it.

The backbone is workflow-script-to-video with voiceover only (nobody speaks on screen), plus the compositor for every word on screen. Rounds and deliverables follow the core skill.

Steps

  1. Read the repo, not just the README. Fetch the README and what it links that carries the product: the docs or module index, the main entry file, the latest release notes, the commit log of the area the pitch is about. Write down the facts that go on screen: the project's exact name and casing, the install or run command verbatim, counts (modules, stars) with the date you read them, the licence, and the 5 to 8 named parts a viewer should remember. Check every claim in the brief against the repo. Save the README and the files you used in source/.
  2. Capture the brand (guide-capture-a-brand): route A from the project's homepage link, route C (the repo's language colours, a mono plus a sans) when there is no site. Note the site's signature element (a terminal window, a code card, a chip style).
  3. Script and shot list. About 2.7 words a second: 110 to 120 words for 45 s. One idea per line, each naming a real part of the repo. A metaphor world carries the pictures (a town where each shop is a module, a workshop, a kitchen): each part gets a place or an object in it, and one small recurring character plays the user or the user's agent. Shots of 2 to 6 s, one per line or half-line; three quick 2 s shots make an "it does all of this" montage. The facts go on screen, not in the pictures. Gate: the script and shot list.
  4. Look (nano-banana-prompt-format): three style frames of the opening shot in three stylized looks, identical scene text. Gate: a pick. Then a 2x2 turnaround of the character from the picked frame, with anything unwanted (a mouth, a logo) stated as the clean state, cut into single views (python-split-character-sheet).
  5. Voice (guide-cast-a-voice): three auditions on the first two lines. Gate: a pick. Then the whole script in one take on the with-timestamps TTS (elevenlabs-tts-v4), so the alignment gives the word times. Respell what the voice would misread (README as "read-me", CLI names, version numbers), and check the take with a whisper-cli transcript: every word, no tag read aloud.
  6. Stills: one per shot, the style frame and the character views as references, the camera, positions and the way the character faces written out. Gate: one approval page, each shot's line beside its still; flag what you'd change rather than silently re-rolling.
  7. Animate every shot at once (h3-max-image-to-video, prompts per h3-prompt-format), a little longer than its window. Give the character a motion that fits its material (a wind-up toddle for a tin toy). Check each clip's first, middle and last frames on one sheet.
  8. Rough cut (ffmpeg, in a script so a re-rendered shot drops in by re-running it): each shot starts at its phrase (alignment time minus about 0.1 s), a short clip holds on its last frame, the voice over the clips' own sound at about a fifth, loudness to −16 LUFS (ffmpeg-normalize-loudness), and a 2 s hold at the end for the card.
  9. Titles, chips and captions (hn4a-compositor-motion-graphics, captions per hn4a-compositor-in-scene-titles): one spec over the rough cut, written by a script that cues every layer from the word times.
    • Open on who and what: the maintainer's name, the project's name in its headline font, one line of what it gives the user with the number in the accent, and the install command in the brand's signature element.
    • Name each part as it is said: a chip with the part's real identifier (lint-fix, src/router, --watch) pops on just before the word. This is what makes clear what the project actually provides.
    • Lists build on the words, one item a beat.
    • Captions from the same word times in the brand's mono or sans, in the lower third, clear of the chips. Leave them off only if the person says so.
    • End card: a short headline, the install command again, the repo URL and a credit line.
    • Everything over the footage sits on the brand's card or chip background. Stills at every title, fix, then Gate: the spec live on a review page before rendering.
  10. Render and deliver (guide-prepare-renders-for-delivery): the 16:9 master, a small copy for chat, and a 9:16 cut if the person posts vertically. Draft the note that goes with it in the person's voice, leading with the video, with no claim the repo contradicts.

Choices this workflow makes

  • The repo's own words and identifiers on screen, the metaphor in the pictures. Stills and clips carry no text; every word is composited.
  • The brand from the project's site, not a guess.
  • Word times from the TTS alignment, not a paid transcript; whisper only checks the words.
  • Stylized, never photoreal, with one recurring character as the user.

Dead ends

  • Pitching a feature the repo "doesn't have yet" from an old plan: the repo had shipped it months earlier. Read the repo before writing a line about it.
  • Arrow lists drawn straight over a busy toy scene: unreadable. On chips they read.
  • A chip cued exactly on its word in a 2 s shot was on screen under a second. Cue quick-montage chips from the shot's start.
  • Turnarounds sometimes come back as a 4x2 grid instead of 2x2: cut the views by the grid you got.
  • Waiting on tasks while renders ran from several sessions timed out for half an hour on a call that had already failed and been refunded. Read history for its status and re-run with a new seed.

Worked example

Acme Co.'s open-source CLI toolkit, from its repo and project site. 16:9 1920×1080, 45 s. Brand from the site: a dark background, one green accent, a mono for identifiers and a sans for headlines, a terminal window as the signature element.

PartPictureOn screen
OpeningA tin-toy character arrives in a toy townmaintainer, project name, one line with its module count, the install command in a terminal card
Each moduleThe character visits the module's shopa chip with the module's identifier on its word
MontageThree 2 s shots of the town at workchips cued from each shot's start
End cardThe town at dusk, held 2 sheadline, install command, repo URL, credit

Notes on the way: the brief pitched a module the repo had already shipped, so that line was rewritten from the repo; montage chips cued on their words flashed by and were moved to each shot's start. Cost at list prices for a job of this size (3 style frames, a turnaround, about 14 stills on nano banana 2.1 at 2K, voice, about 50 s of H3 Max at 768P): about $6, the titles and renders free.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy