memegen
Generate meme images using the memegen.link API. Use when the user asks to create, make, send, or generate a meme, funny image, reaction image, or similar request. Produces meme images via URL — no local image generation needed. Supports 100+ classic meme templates (Drake, Doge, Disaster Girl, Expanding Brain, etc.) and custom backgrounds.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/artemiopadilla/memegenMemegen Skill
Generate memes via the memegen.link public API + Imgflip trending templates. No API key required.
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Template Source │────▶│ Caption Engine │────▶│ Renderer │
│ │ │ │ │ │
│ • Built-in IDs │ │ • Manual text │ │ • memegen │
│ • Imgflip API │ │ • Agent-picked │ │ .link │
│ • Custom URL │ │ │ │ • Pillow │
│ • Top 30 fallback│ │ │ │ (local) │
└─────────────────┘ └──────────────────┘ └─────────────┘
How It Works
Memes are generated entirely via URL — no POST requests needed. Build the URL and download the image.
URL Format
https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.png
Downloading Memes
memegen.link returns HTTP 404 status but valid image body — many HTTP clients reject 404 URLs.
Always download first, then verify:
curl -s -o /tmp/meme.png "https://api.memegen.link/images/drake/top/bottom.png"
file /tmp/meme.png # Should say "PNG image data"
ls -la /tmp/meme.png # Should be >10KB for a real meme
If the file is empty or <1KB, the template ID is probably wrong.
URL Encoding Rules
| Character | Encoding | Example |
|---|---|---|
| Space | _ | hello_world |
? | ~q | why~q |
/ | ~s | yes~sno |
# | ~h | tag~h1 |
% | ~p | 100~p |
" | '' | he_said_''hi'' |
_ (literal) | __ | double__underscore |
| Newline | ~n | line1~nline2 |
| Blank line | _ | Top only: /top_text/_ |
Query Parameters
| Param | Type | Description |
|---|---|---|
background | URL | Custom background image URL |
width | int | Scale to width (px), use 800 for larger |
height | int | Scale to height (px) |
font | string | Font name (see /api/fonts) |
layout | string | default or top (text positioning) |
color | string | Text color: HTML name or hex (FF80ED) |
🎯 VARIETY RULE — Keep It Fresh
Prefer variety over repetition. Before picking a template:
- Check what templates you've used recently (keep a history if possible)
- Try to pick a different template from the last 5 memes
- BUT — if a specific template is clearly the best fit for the joke, use it even if recent
- After generating, log the template used for future reference
Humor Configuration
This skill includes a humor profile system — an equalizer for meme tone, darkness, and cultural targeting. See humor-profiles.md for the full reference.
Default Profile
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-artemiopadilla-memegen": {
"enabled": true,
"auto_update": true
}
}
}