Agent skill

Meme Creator

by daymade in daymade/claude-code-skills

Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF.

MITAuto-check passedMedia & Creative

Install Meme Creator

skills CLI
$ npx skills add daymade/claude-code-skills --skill meme-creator -a claude-code

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

GitHub CLI
$ gh skill install daymade/claude-code-skills meme-creator --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/daymade/claude-code-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/meme-creator .claude/skills/meme-creator && 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
meme-creator
GitHub stars
1.4k
Token cost
~1.8k tokens
SKILL.md length
832 words
Files
7 (incl. scripts, references)
Skills in repo
103
Repo updated
First seen
Licence
MIT

At a glance

Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF.

  • Works in 8 steps: Bind identities before fetching assets → Acquire the source → Locate the segment → …
  • The user wants a meme
  • SKILL.md covers Requirements, Pipeline, Troubleshooting and References
  • Runs Python and Shell scripts from its folder; calls uv, ffmpeg and ffprobe

What it does

Meme Creator is an agent skill from daymade/claude-code-skills. Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF. Use whenever the user wants a meme, 梗图, 表情包, or reaction GIF from footage; to cover faces in a video; or asks to 把 logo/头像贴到视频里跟着动. Not for transcript-driven editing, programmatic scene generation, or subtitle work.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/asset-binding.md`, `references/tracking-playbook.md` and `scripts/encode_outputs.sh`).

It sits in Media & Creative, covering Social media graphics, Logo and visual identity and Transcription. The repository describes itself as: Professional Claude Code skills marketplace featuring production-ready skills for enhanced development workflows. The licence is MIT.

When your agent uses it

  • The user wants a meme
  • Reaction GIF from footage
  • Cover faces in a video
  • Asks to 把 logo/头像贴到视频里跟着动

Example prompts

  • “Use the meme-creator skill to create video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with…”
  • “/meme-creator”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Bind identities before fetching assets
  2. Acquire the source
  3. Locate the segment
  4. Prep overlay assets
  5. Track the targets
  6. Render
  7. Encode + size budget
  8. Verify the encoded deliverables, then deliver

What it can do on your machine

Read from SKILL.md and the folder at commit 91bed2b. 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 4 files in scripts/ (Python and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • uv
    • ffmpeg
    • ffprobe

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

  • Network

    No URLs in SKILL.md. Its commands use uv, 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

Meme Creator loads about 1.8k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 832 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.1k

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 daymade/claude-code-skills at commit 91bed2b, republished under its MIT licence (© daymade). 832 words, ~1,802 tokens.

Download SKILL.mdSave it as .claude/skills/meme-creator/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
meme-creator
description
Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF. Use whenever the user wants a meme, 梗图, 表情包, or reaction GIF from footage; to cover faces in a video; or asks to 把 logo/头像贴到视频里跟着动. Not for transcript-driven editing, programmatic scene generation, or subtitle work.

Meme Creator

Turn a video clip into a meme: images (logos, avatars, stickers) glued onto moving objects so they follow the motion frame by frame, delivered as MP4 + GIF.

The failure mode that ruins this is not tracking drift — it is gluing the wrong person's avatar on screen because a name was bound to the first plausible account found. So step 0 is identity, not tooling.

For a static image meme, skip tracking entirely: put one manual_keys entry per target ([[1, [x, y, w, h]]]) in the overlays config and render just that frame — --tracks is optional when every position comes from keys.

Requirements

  • ffmpeg on PATH
  • uv — all bundled Python scripts carry inline dependencies; run them with uv run <script> and deps resolve themselves
  • yt-dlp only when downloading (uv run --with yt-dlp yt-dlp ...)
  • Chrome/Chromium only when rasterizing an SVG logo (asset-binding.md)
  • Script paths below are written scripts/… relative to this skill's bundle directory. Resolve the bundle path once (SKILL_DIR=<path to this skill>) and run "$SKILL_DIR"/scripts/make_sheets.py … — your working directory is the scratch dir, not the bundle.

Pipeline

Work inside a scratch directory (/tmp/<meme-name>/ or similar), deliver only the final MP4 + GIF.

0. Bind identities before fetching assets

When the user names who/what goes on screen ("Codex, Claude, and Tibo's avatar"), every ambiguous name must survive the disambiguation gate in references/asset-binding.md — enumerate candidates with a handle-free search, discriminate from the request context (the peer entities listed alongside are the strongest signal), and ask the user when context cannot decide. That file also covers logo/avatar sourcing, SVG→PNG with real transparency via headless Chrome, and badge styling. Fetch and eyeball every image before compositing it.

1. Acquire the source

Local file: use it. URL: yt-dlp handles bilibili (incl. b23.tv short links), YouTube, and most sites:

bash
uv run --with yt-dlp yt-dlp -f "bv*+ba/b" --merge-output-format mp4 -o "source.%(ext)s" "<url>"

If a domestic-CN site fails with a proxy tunnel error, retry with --proxy "" (a local HTTP proxy breaks some domestic CDNs); if an international site times out, retry with the local proxy.

Check duration: ffprobe -v error -show_entries format=duration -of csv=p=0 source.mp4

2. Locate the segment

Never track "the whole video." Find the exact scene with a 1–2 fps contact sheet, then expand around it:

bash
ffmpeg -v error -ss <start_s> -t 40 -i source.mp4 -vf "fps=1,scale=240:-1,tile=5x8" -frames:v 1 contact.png

Read the sheet, pick the beat boundaries (entrance → action → exit), and cut the final segment ±1 s of padding. Extract the frame sequence at native fps:

bash
mkdir -p seq && ffmpeg -v error -ss <seg_start> -i source.mp4 -t <seg_dur> seq/f_%04d.png
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 source.mp4
3. Prep overlay assets

One image per target, PNG with alpha. Unify mixed assets (app icon + logo mark

  • photo avatar) as circle-white badges — see asset-binding.md for why and for the avatar circular-mask handling.
4. Track the targets

Full procedure and failure taxonomy: references/tracking-playbook.md. Short form:

  1. Grid one frame where all targets are fully visible: uv run scripts/make_sheets.py grid --frames 'seq/f_%04d.png' --index 30 --out grid.png and read each target's [x, y, w, h] box off the grid.
  2. Write the tracking config (targets + init frame), run: uv run scripts/track_boxes.py --frames 'seq/f_%04d.png' --config track.json --out tracks.json --last <N>
  3. Verify: uv run scripts/make_sheets.py tile --frames 'seq/f_%04d.png' --tracks tracks.json --start 1 --end <N> --step-frames 15 --out verify.png and look at every tile.
  4. Fix what the tiles show: re-anchor later segments (shot changes, scale blowups, drift), or take over a smooth long shot with manual_keys. Expect 2–3 rounds. Then mark visible/fade_in/fade_out for every exit, entrance, and empty-stretch — a logo parked on an empty frame is the most visible possible bug.
Show full SKILL.md (281 more words)Show less
5. Render
bash
uv run scripts/render_overlay.py --frames 'seq/f_%04d.png' --tracks tracks.json \
  --overlays overlays.json --out 'out/o_%04d.png' --last <N>

Spot-check a rendered contact sheet (make_sheets.py tile over out/) before encoding — much cheaper than re-encoding.

6. Encode + size budget
bash
scripts/encode_outputs.sh --frames 'out/o_%04d.png' --fps <native_fps> \
  --source source.mp4 --ss <seg_start> --t <seg_dur> --mp4 meme.mp4 \
  --gif meme.gif --gif-width 400 --gif-fps 10 --gif-colors 96

GIF size is driven by frame count × dither noise, not palette size. To fit a ~10 MB chat-app budget, lower knobs in this order: --gif-fps (15→12→10), then --gif-width (480→400), then --gif-colors (128→96).

7. Verify the encoded deliverables, then deliver

Extract frames from the final MP4 and the final GIF (ffmpeg -ss <t> -frames:v 1) and look at them — the earlier checks verified intermediates; this one verifies what the recipient will actually see. Deliver both files by their exact paths.

Troubleshooting

SymptomCauseFix
yt-dlp: Tunnel connection failed 503 on a domestic sitelocal HTTP proxy interceptingadd --proxy ""
cairosvg/svglib crash: no library called cairomissing system cairorasterize SVG via headless Chrome (asset-binding.md)
Tracker dies exactly at a shot changeCSRT cannot cross cutsnew segments entry at the new shot's first frame
Box drifts slowly off the target over ~1 mintemplate pollutionre-anchor with the tracker's own last-good box, or manual_keys
Logo parked mid-frame after subject exitsmissing visibility windowfade_out before the exit, no visible range after
GIF massively over budgetdither noise × frameslower --gif-fps first, then width, then colors
Logo looks fine in PNGs but wrong in the GIFchecked intermediates onlyalways verify frames from the encoded file (step 7)
Encode fails: Failed to set value '1:a' for option 'map'source clip has no audio streamthe bundled script maps 1:a? (optional); if running ffmpeg by hand, do the same or drop --source

References

© daymade, 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 6 other files (scripts, references) in meme-creator of daymade/claude-code-skills.

  • SKILL.md
  • references/asset-binding.md
  • references/tracking-playbook.md
  • scripts/encode_outputs.sh
  • scripts/make_sheets.py
  • scripts/render_overlay.py
  • scripts/track_boxes.py

Open the folder on GitHubat commit 91bed2b

Compare with similar skills

Meme Creator 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.

Meme Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meme Creator this skilldaymade/claude-code-skills1.4k—~1.8kAutomated safety check: PassMIT
Brand and Design Toolkitnextlevelbuilder/ui-ux-pro-max-skill134k1 repos~3.5kAutomated safety check: PassMIT
Web Asset Generatoralonw0/web-asset-generator5121 repos~6.6kAutomated safety check: PassMIT
Opentraces MarketingJayFarei/opentraces100—~2.3kAutomated safety check: PassCustom licence
Design Masterminhnv0807/ai-business-skills608—~4.6kAutomated safety check: PassMIT
Baoyu Youtube TranscriptJimLiu/baoyu-skills26k1 repos~2.4kAutomated safety check: PassMIT

Similar skills

  • Brand and Design Toolkit

    nextlevelbuilder/ui-ux-pro-max-skill

    Bundles design tasks behind one skill: brand identity, tokens, UI styling, logos, corporate identity mockups, slides, banners, icons and social images.

    134k GitHub starsUsed in 1 repo~3.5k tokens
    Media & CreativeAuto-check passed
  • Web Asset Generator

    alonw0/web-asset-generator

    Generate web assets including favicons, app icons (PWA), and social media meta images (Open Graph) for Facebook, Twitter, WhatsApp, and LinkedIn.

    512 GitHub starsUsed in 1 repo~6.6k tokens
    Media & CreativeAuto-check passed
  • Opentraces Marketing

    JayFarei/opentraces

    Generate branded marketing screenshots of opentraces CLI commands — wordmark + CLI card + caption + wallpaper, filename-stamped and auto-copied to the clipboard.

    100 GitHub stars~2.3k tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • Design Master

    minhnv0807/ai-business-skills

    Handles eight kinds of marketing visual requests, from logos and campaign key visuals to infographics and quote graphics, by generating images or writing paste-ready prompts.

    608 GitHub stars~4.6k tokensUpdated 26 days ago
    Media & CreativeAuto-check passed
  • Baoyu Youtube Transcript

    JimLiu/baoyu-skills

    Downloads YouTube video transcripts/subtitles and cover images by URL or video ID.

    26k GitHub starsUsed in 1 repo~2.4k tokens
    Media & CreativeAuto-check passed
  • Web Visuals

    glifxyz/glif-mcp-server

    Make images, textures, illustrations and background video for a website or app you are building, with Glif, and wire them into the code.

    212 GitHub stars~1.4k tokensUpdated today
    Media & CreativeAuto-check passed

More from daymade/claude-code-skills

All 103 skills in this repo
  • Video Comparer

    daymade/claude-code-skills

    This skill should be used when comparing two videos to analyze compression results or quality differences.

    1.4k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check: notes
  • CLI Demo Generator

    daymade/claude-code-skills

    Generates professional animated CLI demos as GIFs using VHS terminal recordings.

    1.4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Doc To Markdown

    daymade/claude-code-skills

    Converts DOCX/PDF/PPTX and saved HTML/HTM to high-quality Markdown with automatic post-processing.

    1.4k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Interaction Design Board

    daymade/claude-code-skills

    Generates several distinct, clickable HTML interaction prototypes for one product surface into a Design Board and collects selection/remix feedback before implementation.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Auto Repo Setup

    daymade/claude-code-skills

    Diagnoses and repairs repository setup and guarded Git workflows for Claude Code or Codex — environment repair, startup sync, hook auditing, collaborator handoff.

    1.4k GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Bigdata Skill

    daymade/claude-code-skills

    Pulls Bigdata.com (RavenPack) financial and news data via the official bigdata-client SDK and /v1/ REST endpoints — structured financials, prices, analyst estimates, entity-sentiment series…

    1.4k GitHub stars~3.7k tokensUpdated today
    Auto-check passed

Questions about Meme Creator

What does Meme Creator do?

Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF. Meme Creator is an agent skill from daymade/claude-code-skills. Creates video/GIF memes by overlaying images (logos, avatars, stickers) onto moving objects in a clip with frame-accurate tracking, then exports MP4 + GIF.

When should I use Meme Creator?

Meme Creator fits situations like: the user wants a meme; reaction GIF from footage; cover faces in a video; asks to 把 logo/头像贴到视频里跟着动.

How do I install Meme Creator in Claude Code?

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

How do I install Meme Creator in Codex?

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

Can I use Meme Creator 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 daymade/claude-code-skills --skill meme-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meme-creator, .gemini/skills/meme-creator, .github/skills/meme-creator and .opencode/skills/meme-creator in your project.

What does Meme Creator need to run?

Going by SKILL.md and its folder, Meme Creator needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (uv, ffmpeg and ffprobe). Our summary lists: Python 3; A Bash shell.

Does Meme Creator access the network?

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

Is Meme Creator 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 Meme Creator use?

Meme Creator 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 Meme Creator use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.

What are the alternatives to Meme Creator?

Skills that share tags, products or a category with Meme Creator: Brand and Design Toolkit (nextlevelbuilder/ui-ux-pro-max-skill, 134k stars), Web Asset Generator (alonw0/web-asset-generator, 512 stars), Opentraces Marketing (JayFarei/opentraces, 100 stars) and Design Master (minhnv0807/ai-business-skills, 608 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meme Creator?

daymade (a GitHub user) maintains it in daymade/claude-code-skills, which has 1,444 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 8, 2026.

Source: daymade/claude-code-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.