Agent skill

Whiteboard

by edenfunf in edenfunf/reelmimic

Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip…

MITAuto-check passedMedia & Creative

Install Whiteboard

skills CLI
$ npx skills add edenfunf/reelmimic --skill whiteboard -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install edenfunf/reelmimic whiteboard --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/edenfunf/reelmimic.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/whiteboard .claude/skills/whiteboard && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
whiteboard
GitHub stars
1.7k
Token cost
~1.9k tokens
SKILL.md length
726 words
Files
19 (incl. scripts)
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip…

  • Works in 5 steps: Scaffold: bash… → Plan the board. Whiteboard films are… → Build one IIFE file per shot/chapter in… → …
  • A reference video
  • SKILL.md covers Workflow, API in one screen, Rules that matter most and Engine gotchas
  • Runs JavaScript and Shell scripts from its folder; calls node, bash and npm

What it does

Whiteboard is an agent skill from edenfunf/reelmimic. Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip, handwritten text (Latin + CJK) written left to right, hatching and highlighter fills, arrows/circles/callouts/icons, two doodle characters (Bo the kid, Mochi the cat), camera pans across a big board, eraser wipes and page flips. Canvas 2D rendered frame by frame in headless Chrome, encoded with ffmpeg. Use when a reference…

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 23 other files, including scripts (for example `GUIDE.md`, `scripts/new_project.sh` and `template/package-lock.json`).

It sits in Media & Creative, covering Video production and Motion graphics. It works with FFmpeg. The repository describes itself as: Show it a video you love. Get a new video in the same style. An AI crew (Claude Code or Codex) plans, builds and reviews it with you. The licence is MIT.

When your agent uses it

  • A reference video
  • Brief calls for a whiteboard animation
  • VideoScribe-style explainer
  • Doodle / sketch-note / marker-drawing / notebook-doodle look

Example prompts

  • “/whiteboard”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Scaffold: bash .claude/skills/whiteboard/scripts/new_project.sh (--keep-demo keeps the demo
  2. Plan the board. Whiteboard films are planned as a BIG BOARD: decide where each idea is drawn in world
  3. Build one IIFE file per shot/chapter in src/scenes/, ending with shots([[t0, fn], ...]); add its
  4. Look (from the project dir), open every image with Read
  5. Render: node render.mjs --frames --workers=4 && node render.mjs --encode --out=out/video.mp4 [--audio=...]

What it can do on your machine

Read from SKILL.md and the folder at commit 73492b0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript and Shell, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • bash
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Whiteboard loads about 1.9k tokens when it runs. Until then it costs about 188 tokens; SKILL.md has 726 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~188
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from edenfunf/reelmimic at commit 73492b0, republished under its MIT licence (© edenfunf). 726 words, ~1,922 tokens.

Download SKILL.mdSave it as .claude/skills/whiteboard/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.
name
whiteboard
description
Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip, handwritten text (Latin + CJK) written left to right, hatching and highlighter fills, arrows/circles/callouts/icons, two doodle characters (Bo the kid, Mochi the cat), camera pans across a big board, eraser wipes and page flips. Canvas 2D rendered frame by frame in headless Chrome, encoded with ffmpeg. Use when a reference video or brief calls for a whiteboard animation, VideoScribe-style explainer, doodle / sketch-note / marker-drawing / notebook-doodle look, 白板動畫 / 手繪解說 / 塗鴉解說 / 手寫字, or when the video-clone router picks the whiteboard style.

Whiteboard engine

Every frame is a pure function of time t. studio.html loads src/kit.js (shared ReelMimic runtime: timeline, timing/motion helpers, camera, render hooks), src/whiteboard.js (the look: board, marker strokes, drawOn, handwriting, icons, hand, transitions, captions), src/cast.js (characters) and your scene files. render.mjs drives headless Chrome for contact sheets / crops / frames and ffmpeg encodes the MP4.

Read GUIDE.md in full before designing anything — it has the look rules, the complete API with examples, the character system and the review checklist. Look at the model sheets: docs/faces.jpg (16 expressions × 2 characters), docs/poses.jpg (views, walk, jump, props), docs/kit.jpg (icons, strokes, fills, text) and docs/demo-sheet.jpg (the demo).

Workflow

  1. Scaffold: bash .claude/skills/whiteboard/scripts/new_project.sh <project-dir> (--keep-demo keeps the demo hooked up). Copies the template, runs npm install, checks node / ffmpeg / Chrome.
  2. Plan the board. Whiteboard films are planned as a BIG BOARD: decide where each idea is drawn in world coordinates, and let the camera travel between areas (one shot) or clear the board (eraser wipe / page flip = new shot). Write the reads per shot (see GUIDE §Timing): each drawing is a read, and the hand must not cover a read.
  3. Build one IIFE file per shot/chapter in src/scenes/, ending with shots([[t0, fn], ...]); add its <script> to studio.html. Set duration in src/config.js.
  4. Look (from the project dir), open every image with Read:
    bash
    node render.mjs --sheet=0.5,1.5,2.5,3.5 --cols=4 --w=480 --out=out/check/a.jpg     # key frames
    node render.mjs --strip=3.6:4.4 --cols=6 --w=320 --out=out/check/jump.jpg          # every frame of a move
    node render.mjs --sheet=3.2 --crop-at=1340,640,560,560 --w=560 --out=out/check/face.jpg   # detail at a world point
    node render.mjs --loop=faces --sheet=0 --cols=1 --w=1920 --out=out/check/faces.jpg  # model sheets (poses, kit)
  5. Render: node render.mjs --frames --workers=4 && node render.mjs --encode --out=out/video.mp4 [--audio=...] (or --clip for short ones). ~20–60 ms/frame single-threaded at 1920×1080.

API in one screen

js
function shot(t, lt, dur) {                                   // lt = time in this shot
  wbBegin(lt, { cam: [[0, [900, 540, 1.1]], [2, [1400, 560, 1]]], bg: { kind: 'white' } });   // clock + camera + board
  const box = writeOn('Save time 省時間', 300, 300, .2, 1.2, { size: 110, col: INK.blue });    // handwriting
  drawOn(S.underline(box.x, box.y2 + 4, box.w, { col: INK.orange }), 1.25, 1.5);              // strokes, drawn on
  drawOn([...ICON.clock(600, 620, 220), ...S.arrow(760, 620, 1000, 600)], 1.6, 2.6);           // icons + arrow
  bo(1300, 940, 40, { face: 'happy', draw: [2.7, 3.8], hold: { R: 'coin' } });                // character, drawn on
  camEnd(); eraseWipe(seg(lt, dur - .8, dur));                                                // transition (screen space)
}
wbCaptions([[.3, 4, '每天*省下*一小時']]);                                                   // overlay captions
  • Strokes: S.line/path/circle/ring/arc/dot/rect/arrow/underline/wave/zigzag/spiral/bubble/box/cloud/heart/star/check/ cross/rays/sparkle/speed/fill, hatch(poly), scribble(poly) (highlighter), hilite(x,y,w,h), place(strokes, x, y, ang, scale), polyCircle, polyRect. drawOn(strokes, a, b, {hand, all, x, y, alpha}), ink(strokes).
  • Text: writeOn(text, x, y, a, b, {size, col, align, lh, weight}) → box; textBox() measures only.
  • Icons: ICON.bulb/clock/coin/money/heart/check/cross/checkbox/phone/house/star/chart/gear/mail/search/target/cloud/ trophy/person(cx, cy, size, {col, key, rays}).
  • Characters: bo(x, y, u, o), mochi(x, y, u, o) → {hand:{L,R}, head, top, strokes}; o = {face, look, view, flip, sq, dy, tilt, arm:[[ang,bend],[ang,bend]], leg, walk, hold:{L,R}, emote, draw:[a,b], hand, shirt, id, blink}. mood(lt, [[t,'face'],...]), stroll(lt, t0, t1, x0, x1, u), kit jump(), take(). EXPR_NAMES (16), PROPS.
  • Board & camera: wbBegin(lt, {cam, bg:{kind:'white'|'paper'|'grid', margin, frame:[x,y,w,h]}, drift}), board().
  • Transitions: eraseWipe(p) (screen, end of shot), pageFlip(p) (screen, start of next shot), eraseRect(x,y,w,h,a,b) (world, erase one area), camera pans across the board (one shot with camera keys).
  • Hand: automatic (follows every drawOn/writeOn; glides between close drawings, exits bottom-right on pauses). WB.hand = false hides it, {hand:false} per call, handAt(x, y, {tool}) forces it. WB.sleeve colour.
  • Colours: INK.black/blue/red/orange/green/purple/grey/yellow/pink/skin, highlighters HL.yellow/pink/green/blue/orange.
Show full SKILL.md (324 more words)Show less

Rules that matter most

  1. Everything is drawn ON. New things appear by drawOn / writeOn with the hand, never pop in. Only characters that were already drawn may move/animate; props arrive in hands or get drawn.
  2. One marker, one width. Line weight stays ~WB.w (9 px) everywhere; icons scale, lines don't. Black for outlines, 1–2 accent colours per board area, highlighter for emphasis.
  3. The hand must not hide a read. It covers the lower-right of whatever it draws. Draw first, then act (characters react after the hand has left), or place the drawing so the arm doesn't cross the action.
  4. Big and legible: characters u ≥ 30 in a medium shot (Bo ≈ 10.5u tall), text ≥ 90 px at zoom 1, captions via wbCaptions (64 px card).
  5. Pure function of t: no Math.random, no state across frames; always call every drawOn of the shot every frame (it draws nothing before a) so the hand knows what comes next. Give moving strokes a fixed key.
  6. Transitions at every seam: eraser wipe, camera pan to the next area, page flip, or a hand-drawn frame.

Engine gotchas

  • drawOn reveals in array order but paints in z order; fills (S.fill) default to z −1 (under lines), mode:'ink' multiplies (lines show through), mode:'cover' hides what's under.
  • Builders seed their wobble from their coordinates: a stroke that MOVES must get {key:'name'} or it will shimmer. Characters and PROPS already do this.
  • eraseWipe / pageFlip are SCREEN-space: call camEnd() first. pageFlip re-renders the previous shot's last frame (costs one extra shot render per frame for ~0.9 s).
  • Fonts: Kalam (Latin) + LXGW WenKai TC (CJK) from Google Fonts. ENGINE.setup scans every loaded script for the characters it needs; text built at runtime from other sources → add it to window.WB_TEXT before boot.
  • Don't name globals S, INK, HL, WB, PEN, ICON, PROPS, EXPR, board, ink, bo, mochi, hatch, mood, stroll in scenes (they're the library's). Keep helpers inside the scene IIFE.

© edenfunf, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 18 other files (scripts) in .claude/skills/whiteboard of edenfunf/reelmimic.

  • SKILL.md
  • GUIDE.md
  • docs/demo-sheet.jpg
  • docs/faces.jpg
  • docs/kit.jpg
  • docs/poses.jpg
  • scripts/new_project.sh
  • template/.gitignore
  • template/LICENSE-render.mjs.txt
  • template/package-lock.json
  • template/package.json
  • template/render.mjs
  • template/src/cast.js
  • template/src/config.js
  • template/src/kit.js
  • template/src/scenes/demo.js
  • … and 3 more

Open the folder on GitHubat commit 73492b0

Compare with similar skills

Whiteboard next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Whiteboard compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Whiteboard this skilledenfunf/reelmimic1.7k—~1.9kAutomated safety check: PassMIT
HyperFrames Video Entry Pointheygen-com/hyperframes59k3 repos~5.2kAutomated safety check: PassApache-2.0
Cut Silencesnateherkai/hyperframes-student-kit1.2k—~1.2kAutomated safety check: PassCustom licence
p5 Paint Animationheygen-com/hyperframes-community-skills178—~1.8kAutomated safety check: PassApache-2.0
DoctorKumarSashank/motiscope122—~736Automated safety check: NotesMIT
Cut Mistakesnateherkai/hyperframes-student-kit1.2k—~1.1kAutomated safety check: PassCustom licence

Similar skills

  • HyperFrames Video Entry Point

    heygen-com/hyperframes

    Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.

    59k GitHub starsUsed in 3 repos~5.2k tokens
    Media & CreativeAuto-check passed
  • Cut Silences

    nateherkai/hyperframes-student-kit

    Agent 1 of the video editing pipeline. An agent skill from nateherkai/hyperframes-student-kit.

    1.2k GitHub stars~1.2k tokensUpdated 10 days ago
    Media & CreativeAuto-check passed
  • p5 Paint Animation

    heygen-com/hyperframes-community-skills

    Turns a text prompt, photo or short video into hand-made looking p5.js animation: self-writing handwriting, brushstroke repaints and living paintings rendered offline.

    178 GitHub stars~1.8k tokensUpdated 9 days ago
    Media & CreativeAuto-check passed
  • Doctor

    KumarSashank/motiscope

    Check and configure motiscope — verify ffmpeg/ffprobe are installed and scaffold the API-key config used for optional (stubbed) asset generation.

    122 GitHub stars~736 tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Cut Mistakes

    nateherkai/hyperframes-student-kit

    Agent 2 of the video editing pipeline. An agent skill from nateherkai/hyperframes-student-kit.

    1.2k GitHub stars~1.1k tokensUpdated 10 days ago
    Media & CreativeAuto-check passed
  • Color Grading

    notivn/AIEV

    Color grading video in the AI Edit Video system - delog/tonemap HDR-HLG-log footage, apply the color preset the user approved in the UI, and the visual verification workflow.

    126 GitHub stars~932 tokensUpdated today
    Media & CreativeAuto-check passed

More from edenfunf/reelmimic

All 9 skills in this repo
  • Media Use

    edenfunf/reelmimic

    Agent Media OS, the single skill for every media need in a HyperFrames project.

    1.7k GitHub starsUsed in 2 repos~2k tokens
    Auto-check passed
  • Takes a reference video and a short brief, analyzes its cutting and visual style, then plans and builds a new MP4 in a matching style.

    1.7k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Anime Cel Video Maker

    edenfunf/reelmimic

    Builds Japanese TV-anime style MP4 videos in code, with cel-shaded characters, painted backgrounds and staging effects, rendered in headless Chrome and encoded with ffmpeg.

    1.7k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Blender Product Film

    edenfunf/reelmimic

    Renders premium 3D product films in headless Blender from JSON shot specs, building the product from a photo or procedurally, then finishing titles, music and cuts.

    1.7k GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Crayon Storybook Animation

    edenfunf/reelmimic

    Builds children's picture-book MP4 animations drawn in crayon, colored pencil and pastel, rendered frame by frame with p5.js and encoded with ffmpeg.

    1.7k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Paper Cut-out Animation

    edenfunf/reelmimic

    Builds paper cut-out, stop-motion style MP4 videos in code, with jointed paper puppets, torn or scissor-cut edges and soft shadows, rendered frame by frame in headless Chrome.

    1.7k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Whiteboard

What does Whiteboard do?

Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip…. Whiteboard is an agent skill from edenfunf/reelmimic. Make hand-drawn whiteboard / doodle-explainer / sketch-note animation videos (MP4) with code — marker lines that draw themselves on, a cartoon hand holding a marker that follows the pen tip, handwritten text (Latin + CJK) written left to right, hatching and highlighter fills, arrows/circles/callouts/icons, two doodle characters (Bo the kid, Mochi the cat), camera pans across a big board, eraser wipes and page flips.

When should I use Whiteboard?

Whiteboard fits situations like: A reference video; brief calls for a whiteboard animation; videoScribe-style explainer; doodle / sketch-note / marker-drawing / notebook-doodle look.

How do I install Whiteboard in Claude Code?

Run `npx skills add edenfunf/reelmimic --skill whiteboard -a claude-code`. Or copy the skill folder (.claude/skills/whiteboard in edenfunf/reelmimic) into .claude/skills/whiteboard in your project. Claude Code loads it when a task matches its description.

How do I install Whiteboard in Codex?

Run `npx skills add edenfunf/reelmimic --skill whiteboard -a codex`. Or copy the skill folder (.claude/skills/whiteboard in edenfunf/reelmimic) into .agents/skills/whiteboard in your project. Codex loads it when a task matches its description.

Can I use Whiteboard in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add edenfunf/reelmimic --skill whiteboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/whiteboard, .gemini/skills/whiteboard, .github/skills/whiteboard and .opencode/skills/whiteboard in your project.

What does Whiteboard need to run?

Going by SKILL.md and its folder, Whiteboard needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (node, bash and npm). Our summary lists: Node.js; A Bash shell.

Does Whiteboard access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Whiteboard safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Whiteboard use?

Whiteboard is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Whiteboard use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Whiteboard?

Skills that share tags, products or a category with Whiteboard: HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars), Cut Silences (nateherkai/hyperframes-student-kit, 1.2k stars), p5 Paint Animation (heygen-com/hyperframes-community-skills, 178 stars) and Doctor (KumarSashank/motiscope, 122 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Whiteboard?

edenfunf (a GitHub user) maintains it in edenfunf/reelmimic, which has 1,701 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.

Source: edenfunf/reelmimic on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.