with one click
meme-generation
// Generate real meme images by picking a template and overlaying text with Pillow. Produces actual .png meme files.
// Generate real meme images by picking a template and overlaying text with Pillow. Produces actual .png meme files.
Use JSON validation and JSON Pointer lookup tools for exact payload inspection.
Use calculator tools for exact arithmetic and unit conversion.
Built-in MCP (Model Context Protocol) client that connects to external MCP servers, discovers their tools, and registers them as native EdgeCrab tools. Supports stdio and HTTP transports with automatic reconnection, security filtering, and zero-config tool injection.
Delegate coding tasks to Blackbox AI CLI agent. Multi-model agent with built-in judge that runs tasks through multiple LLMs and picks the best result. Requires the blackbox CLI and a Blackbox AI API key.
Query Base (Ethereum L2) blockchain data with USD pricing — wallet balances, token info, transaction details, gas analysis, contract inspection, whale detection, and live network stats. Uses Base RPC + CoinGecko. No API key required.
Query Solana blockchain data with USD pricing — wallet balances, token portfolios with values, transaction details, NFTs, whale detection, and live network stats. Uses Solana RPC + CoinGecko. No API key required.
| name | meme-generation |
| description | Generate real meme images by picking a template and overlaying text with Pillow. Produces actual .png meme files. |
| version | 2.0.0 |
| author | adanaleycio |
| license | MIT |
| metadata | {"hermes":{"tags":["creative","memes","humor","images"],"related_skills":["ascii-art","generative-widgets"],"category":"creative"}} |
Generate actual meme images from a topic. Picks a template, writes captions, and renders a real .png file with text overlay.
The script supports any of the ~100 popular imgflip templates by name or ID, plus 10 curated templates with hand-tuned text positioning.
| ID | Name | Fields | Best for |
|---|---|---|---|
this-is-fine | This is Fine | top, bottom | chaos, denial |
drake | Drake Hotline Bling | reject, approve | rejecting/preferring |
distracted-boyfriend | Distracted Boyfriend | distraction, current, person | temptation, shifting priorities |
two-buttons | Two Buttons | left, right, person | impossible choice |
expanding-brain | Expanding Brain | 4 levels | escalating irony |
change-my-mind | Change My Mind | statement | hot takes |
woman-yelling-at-cat | Woman Yelling at Cat | woman, cat | arguments |
one-does-not-simply | One Does Not Simply | top, bottom | deceptively hard things |
grus-plan | Gru's Plan | step1-3, realization | plans that backfire |
batman-slapping-robin | Batman Slapping Robin | robin, batman | shutting down bad ideas |
Any template not in the curated list can be used by name or imgflip ID. These get smart default text positioning (top/bottom for 2-field, evenly spaced for 3+). Search with:
python "$SKILL_DIR/scripts/generate_meme.py" --search "disaster"
--search.SKILL_DIR=$(dirname "$(find ~/.edgecrab/skills -path '*/meme-generation/SKILL.md' 2>/dev/null | head -1)")
python "$SKILL_DIR/scripts/generate_meme.py" <template_id> /tmp/meme.png "caption 1" "caption 2" ...
MEDIA:/tmp/meme.pngUse this when no classic template fits, or when the user wants something original.
image_generate to create a scene that matches the meme concept. Do NOT include any text in the image prompt — text will be added by the script. Describe only the visual scene.--image to overlay text, choosing a mode:
python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png /tmp/meme.png "top text" "bottom text"
python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png --bars /tmp/meme.png "top text" "bottom text"
--bars when the image is busy/detailed and text would be hard to read on top of it.vision_analyze is available): Check the result looks good:
vision_analyze(image_url="/tmp/meme.png", question="Is the text legible and well-positioned? Does the meme work visually?")
If the vision model flags issues (text hard to read, bad placement, etc.), try the other mode (switch between overlay and bars) or regenerate the scene.MEDIA:/tmp/meme.png"debugging production at 2 AM":
python generate_meme.py this-is-fine /tmp/meme.png "SERVERS ARE ON FIRE" "This is fine"
"choosing between sleep and one more episode":
python generate_meme.py drake /tmp/meme.png "Getting 8 hours of sleep" "One more episode at 3 AM"
"the stages of a Monday morning":
python generate_meme.py expanding-brain /tmp/meme.png "Setting an alarm" "Setting 5 alarms" "Sleeping through all alarms" "Working from bed"
To see all available templates:
python generate_meme.py --list
scripts/.cache/ after first download.The output is correct if: