Skip to content

DirectorySkills

Run 1Records, then a donut“In talk.mp4, when I say 600 hours a year, list hours by team in a table (Design 150, Engineering 300, Sales 150), then show the split as a donut. These are my own numbers and words, put them on screen as they are.”
Runs in
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • GitHub Copilot
  • OpenCode
Generates with
Your agent's model
Tested with
Claude Code 2.1.322Claude Sonnet 5.51 real run, 10 Nov
Needs
Node 22+Chromeffmpeg
Licence
Recaply licence

Records, Then a Donut

A table of records fills row by row, then hands over to a donut of the shares.

$9.99once, yours to keep

Adds a table of records to a talking-head video that fills row by row, then hands over to a donut chart of the shares: the detail, then the picture. Timed to the words they say, on their own footage, with their sound kept; 16:9, 9:16, 1:1 or 4:5. Renders locally with Chrome and ffmpeg: no video model, no key and no cost. Use when someone goes through records (spending, time, sales) and then shows the split.

By RecaplyUpdated 11 Nov

Install Records, Then a Donut

After the download, ask your agent to add it, or run the line yourself.

Read https://recaply.co/skills/records-to-donut-overlay/install.md and follow it to install the records-to-donut-overlay skill from records-to-donut-overlay.zip.

Paste it into your agent. It reads our install steps, finds the ZIP you downloaded and adds the skill for you.

New to skills? How to install a skill

Similar skills

All 735 skills

Who Records, Then a Donut is for

What you get

  • Your video with the overlay timed to the words, sound kept
  • Rows fill in as they read them; then the panel turns into a ring that draws its parts in turn, with a legend
  • 16:9, 9:16, 1:1 or 4:5

Good fit

  • When someone goes through records (spending, time, sales) and then shows the split

Not for

  • Footage with nobody speaking
  • Cutting or re-editing the video itself

About this skill

You say

In talk.mp4, when I say 600 hours a year, list hours by team in a table (Design 150, Engineering 300, Sales 150), then show the split as a donut. These are my own numbers and words, put them on screen as they are.

It said back

I've rendered the video: talk-graphics.mp4 in the work folder. It is 1920x1080, 24.3 s, at 30 fps, and your original sound is unchanged. The check showed no layout warnings or notes.

  • Table (4.9–9.8 s): It comes in on "12 people" and stays until "600 hours a year". It covers the frame with the title "600 hours a year" and the rows Design 150, Engineering 300 and Sales 150, in your numbers and words. It runs through the whole "12 people, 1 hour, every Monday, that's 600 hours a year" line, so it is on screen while you say 600.
  • Donut (9.5–14.5 s): It comes in on "So we tried three things" and lasts 5 s. Your face is on the right half and the ring is on the left, with 600 hours a year in the centre. The three parts are Design 150, Engineering 300 and Sales 150, with a legend.
  • Look: I used paper (warm off-white panels, black type, tomato accent). I set face to [49, 30] so graphics stay off your face.
Show more

What it did in run 1

  1. records-to-donut-overlay
  2. ls && S=.claude/skills/records-to-donut-overlay/scripts && node $S/check.mjs
  3. ls -a && node .claude/skills/records-to-donut-overlay/scripts/check.mjs
  4. echo '{"video":"talk.mp4","transcript":"talk.json"}' > overlay.json && node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --words
  5. cat > overlay.json <<'E' {"video":"talk.mp4","transcript":"talk.json","look":"paper", "beats":[ {"beat":"table","cue":"12 people","title":"600 hours a year","columns":["Team","Hours"],"rows":[["Design","150"],["Engineering","300"],["Sales","150"]],"until":"600 hours a year"}, {"beat":"donut","cue":"So we tried three things","title":"600 hours a year","parts":[{"label":"Design","value":150},{"label":"Engineering","value":300},{"label":"Sales","value":150}],"center":"600","centerLabel":"hours a year","for":5} ]} E node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --face >/dev/null; node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --check
  6. ./face-check.png
  7. ./overlay.json
  8. node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --face
  9. ./face-check.png
  10. sed -i '' 's/"look": "paper",/"look": "paper", "face": [49, 30],/' overlay.json && node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --check
  11. ./overlay.json
  12. node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json --check
  13. ./overlay-check.png
  14. node .claude/skills/records-to-donut-overlay/scripts/overlay.mjs overlay.json 2>&1 | tail -5; ls -la *.mp4
  15. Done

10 Nov 2026 · Claude Code 2.1.322 with Claude Sonnet 5.5 · 1 min 43 s · $0.13 of API use

Questions

Is Records, Then a Donut free?

No. Records, Then a Donut costs $9.99 once and stays in your Recaply account, or it comes with the Recaply plan ($19.99 a month), which opens every premium skill and prompt.

Which agents can use Records, Then a Donut?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

What do I get when I buy Records, Then a Donut?

A ZIP of the whole skill folder (106 KB): the SKILL.md your agent follows and its 12 other files, the references, templates and scripts it uses. You download it from this page whenever you need it, and install it in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. The Recaply plan opens it too, with every other premium skill and prompt.

How do I install Records, Then a Donut?

Buy it, then download the ZIP from this page. For Claude Code, unzip it into .claude/skills/ in your project. For Codex, Cursor and Gemini CLI, unzip it and run npx skills add ./records-to-donut-overlay with your agent's flag.

What do I get from Records, Then a Donut?

Your video with the overlay timed to the words, sound kept. Rows fill in as they read them; then the panel turns into a ring that draws its parts in turn, with a legend. 16:9, 9:16, 1:1 or 4:5.

What does Records, Then a Donut need?

Node 22+, Chrome and ffmpeg, and no API key. Each use costs nothing beyond your agent.

How big is Records, Then a Donut?

13 files, about 80,111 tokens in all. The SKILL.md is about 2,449 tokens, and your agent reads it only when the job fits.

What does a run cost?

Our 1 runs took 1 min 43 s to 1 min 43 s and $0.13 to $0.13 of API use each, in Claude Code with claude-sonnet-5-5. On a Claude plan, a run counts toward your usage instead.

Do I have to name Records, Then a Donut to use it?

Type /records-to-donut-overlay first to make sure it loads. Without it, Claude Code may judge a small job simple enough to do without the skill.