image

A skill for adding text to images in common meme formats, such as top-and-bottom captions, subtitles, white caption bars, and multi-label layouts.

In plain words
What is it for?
Creating captioned memes from an image, including classic Impact-style macros, TV-subtitle stills, and formats such as Drake or distracted boyfriend.
Why use it?
It provides a defined way to place meme text and check that the result is readable and visually suitable.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/bendrucker/claude/image
Any agent
npx skills add bendrucker/claude --skill image
Clone the repo
git clone --depth 1 https://github.com/bendrucker/claude

Made for: Claude Code, Codex.

Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,125 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00059 $0.01125
Opus 5 $0.00030 $0.00562
Sonnet 5 $0.00012 $0.00225
Haiku 4.5 $0.00006 $0.00112

Measured 2d ago against content hash bfcbd27d6189, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

image scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

The scan reads SKILL.md. This mod also ships 8 executable files (scripts/layout.test.ts, scripts/layout.ts, scripts/presets.ts, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

1. Resolve the image. Use the user's path directly. If they name a meme format instead of a path, check the template library first (below). Otherwise WebSearch for the image and download with `curl -L -o tmp/<name>.jpg <
plugins/meme/skills/image/SKILL.md · 68 lines

How it starts

The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Meme Image

Overlay meme text on an image with a deterministic renderer. You judge layout, placement, and legibility; the script guarantees the classic look (Impact stroke, subtitle yellow, caption bars).

Workflow

  1. Resolve the image. Use the user's path directly. If they name a meme format instead of a path, check the template library first (below). Otherwise WebSearch for the image and download with curl -L -o tmp/<name>.jpg <url>. Never pass a URL to the renderer.

  2. Read the image. Note the subjects, where faces and action are, contrast, and aspect ratio.

  3. Choose a mode:

    • Top/bottom macro text: --top / --bottom
    • TV-subtitle quote (yellow, bottom center): --subtitle
    • White bar above or below the image: --caption (optionally --caption-position top|bottom, default top)
    • Multi-label formats or custom placement: write a JSON spec file. Read references/spec.md first.
  4. Pick the output filename. It is part of the joke: witty and meme-relevant, kebab or snake case, .png. Never meme.png or another generic name. If the user supplies a filename, use theirs.

  5. Render, then Read the output PNG. Check legibility, that text does not cover key subjects, line-break placement, and any fit warnings on stderr. Adjust and re-render until it reads well.

  6. Deliver: copy the file reference to the clipboard so a paste keeps the filename:

    osascript -e 'set the clipboard to POSIX file "<absolute output path>"'
    

    Report the path. If the clipboard copy is declined or fails, reveal the file instead: open -R <path>.

Template Library

${CLAUDE_PLUGIN_DATA}/templates/ holds the user's meme templates, synced outside git. Never copy its images into the repo. Each image may have a sidecar spec of the same basename (drake.jpg + drake.json): a ready-made layout whose text values are <slot descriptions> and whose description says how the format works.

  • User names a format: ls the library and match by filename. With a sidecar, copy it to tmp/, replace each slot with the actual joke, and render with --spec. Panel counts matter: fill every slot the joke needs and drop boxes the format leaves empty.
  • No sidecar (new template): Read the image, trace regions, render, iterate. Once the layout looks right, save it back as a sidecar with <slot description> placeholders so the next use skips the tracing.

Read the full file on GitHub · 68 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 68 lines · 59 tokens per session scan A bfcbd27d6189

Subscribe to this mod's changes

image is a skill published in the GitHub repository bendrucker/claude (16 stars, last pushed 2d ago), licensed MIT. It adds 59 tokens to every session and 1,125 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

media-ingest

Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain. Multi-format handling with entity extraction and backlink propagation. Covers video-ingest, youtube-ingest, and book-ingest subtypes.

garrytan/gbrain · 52 tokens

diagnostic-stem-delivery

Audio production with diagnostic analysis, timecode parsing from documents, and verified export workflow.

HKUDS/OpenSpace · 23 tokens

vox-director

Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all automated. Use this whenever the user wants a "Vox style" video, a paper/torn-paper collage animation, a "motion collage"…

Alisa0808/vox-director · 236 tokens

seedance-vocab-ja

This skill should be used when the user asks for Japanese Seedance 2.0 prompt wording, Japanese cinematic vocabulary, or translation of camera, lighting, action, VFX, audio, and production terms into Japanese.

Emily2040/seedance-2.0 · 50 tokens

model-compatibility

Model family compatibility matrix covering loaders, resolutions, samplers, CFG, VAE, ControlNet, and LoRA compatibility for SD 1.5, SDXL, Flux, SD3, and video models.

artokun/comfyui-mcp · 47 tokens

comfyui-topology-viz

Turn a network topology into one stylized, AI-generated still image via a self-hosted ComfyUI instance — reuses the same topology model as threejs-network-viz (any of 8 topology-source integrations, or a freeform description). Use when the operator asks for a stylized, flashy, or AI-generated…

automateyournetwork/netclaw · 93 tokens