quote-meme
Turn a Claude quote into a quote-card meme image (PNG). Use when the user says "/quote-meme", "meme that", "turn that into a quote image", "clip that quote", or asks to highlight something Claude just said. Renders locally with Python + PIL — no API, no GPU, no network.
quote-meme
Renders a quote-card style PNG: coloured gradient background, big serif text, decorative smart quotes, italic attribution line. Pure Pillow. Fast, deterministic, offline.
When to use
- User says
/quote-meme "..."→ use the argument as the quote. - User says
/quote-memewith no argument → use the most recent assistant message (i.e. the thing Claude just said that the user wants to clip). - User says things like "meme that", "turn that into a quote", "clip that last bit" → same as above.
- If the user edits/trims the quote in their message ("cut the last sentence"), use their trimmed version verbatim.
Ask the user for background color FIRST
Before rendering, ALWAYS ask the user what background color they want — unless:
- They already stated a color in their request ("make it burgundy", "do it in forest green"), OR
- They explicitly say "just pick one" / "default" / "surprise me" (then use
indigo).
Offer the named palette as quick options, plus "or any hex like #1a2b3c":
Background color? Named options:
indigo(default),midnight,forest,burgundy,slate,ocean,plum,charcoal,rust,olive. Or give me a hex code.
The script auto-derives a darker gradient bottom from whatever top color you pass, so any color Just Works.
How to run
The skill ships with render.py. Invoke it with the Bash tool. ${CLAUDE_PLUGIN_ROOT} resolves to the plugin install directory:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/quote-meme/render.py" \
--quote "THE QUOTE TEXT" \
--attribution "— Claude Opus 4.6" \
--bg burgundy \
--out ~/Pictures/quote-memes/quote-$(date +%Y%m%d-%H%M%S).png
If ${CLAUDE_PLUGIN_ROOT} isn't set (e.g. skill installed manually), fall back to the literal path where the plugin lives.
Flags:
--quote(required): the quote text. Pass via CLI arg; the script handles wrapping.--attribution(default— Claude Opus 4.6): byline under the quote.--bg(defaultindigo): background color. Named (see list above) or#rrggbbhex.--out(required): output PNG path. The script creates parent dirs as needed.--width/--height(default 1600×900): canvas size. 16:9 is good for social sharing.--style(defaultclassic): reserved for future styles; onlyclassicis implemented.
Requirements
- Python 3.8+
- Pillow (
pip install Pillow) - A serif font installed. The script tries DejaVu Serif, Liberation Serif, Noto Serif, Times New Roman, and macOS system fonts in order, and falls back to PIL's default if none found.
After rendering
- Print the absolute path of the PNG so the user can click it.
- Don't try to open an image viewer automatically — user may be on SSH or a headless box.
- If the user wants to re-render with tweaks (different color, trim the quote, bigger canvas), just re-run with adjusted flags.
Output convention
Default output dir: ~/Pictures/quote-memes/. The script will create it if missing. Users can override by passing --out to wherever they want.