Generate memes using the memegen.link API. Use when users request memes, want to add humor to content, or need visual aids for social media. Supports 100+…
Meme Factory
Create memes using the free memegen.link API and textual meme formats.
Triggers
Trigger
Description
/meme-factory
Manual invocation
/meme-factory {template} {top} {bottom}
Direct meme generation
meme-factory: create a meme about X
Natural language request
Quick Reference
Action
Format
Basic meme
https://api.memegen.link/images/{template}/{top}/{bottom}.png
With sizing
?width=1200&height=630
Custom background
?style=https://example.com/image.jpg
All templates
https://api.memegen.link/templates/
Interactive docs
https://api.memegen.link/docs/
Additional Resources:
Markdown Memes Guide - 15+ textual meme formats
Examples - Practical usage examples
meme_generator.py - Python helper script
Quick Start
Basic Meme Structure
https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.{extension}
Example:
https://api.memegen.link/images/buzz/memes/memes_everywhere.png
Result: Buzz Lightyear meme with "memes" at top and "memes everywhere" at bottom.
Text Formatting
Character
Encoding
Space
_ or -
Newline
~n
Question mark
~q
Percent
~p
Slash
~s
Hash
~h
Single quote
''
Double quote
""
Popular Templates
Template
Use Case
Example
buzz
X, X everywhere
bugs/bugs_everywhere
drake
Comparisons
manual_testing/automated_testing
success
Victories
deployed/no_errors
fine
Things going wrong
server_on_fire/this_is_fine
fry
Uncertainty
not_sure_if_bug/or_feature
changemind
Hot takes
tabs_are_better_than_spaces
distracted
Priorities
my_code/new_framework/current_project
mordor
One does not simply
one_does_not_simply/deploy_on_friday
Template Selection Guide
Context
Template
Why
Comparing options
drake
Two-panel reject/approve format
Celebrating wins
success
Positive outcome emphasis
Problems ignored
fine
Ironic "everything is fine"
Uncertainty
fry
"Not sure if X or Y" format
Controversial opinion
changemind
Statement + challenge
Ubiquitous things
buzz
"X, X everywhere"
Bad ideas
mordor
"One does not simply..."
Validation
After generating a meme:
URL returns valid image (test in browser)
Text is readable (not too long)
Template matches the message context
Special characters properly encoded
Dimensions appropriate for platform
Platform Dimensions
Platform
Dimensions
Social media (Open Graph)
1200x630
Slack/Discord
800x600
GitHub
Default
Anti-Patterns
Avoid
Why
Instead
Spaces without encoding
URL breaks
Use _ or -
Too much text
Unreadable
2-6 words per line
Wrong template
Message mismatch
Match template to context
Missing extension
Invalid URL
Always include .png, .jpg, etc.
Unencoded special chars
URL breaks
Use ~q, ~s, ~p, etc.
Assuming template exists
404 error
Check templates list first
Verification
Meme generation is successful when:
URL is valid - Returns HTTP 200
Image renders - Displays correctly in markdown
Text is visible - Properly formatted on image
Context matches - Template fits the message
Test command:
curl -I "https://api.memegen.link/images/buzz/test/test.png"
# Should return: HTTP/2 200
Image Formats
Extension
Use Case
.png
Best quality, default
.jpg
Smaller file size
.webp
Modern, good compression
.gif
Animated templates
Dimensions
?width=800
?height=600
?width=800&height=600 (padded to exact)
Layout Options
?layout=top # Text at top only
?layout=bottom # Text at bottom only
?layout=default # Standard top/bottom
Custom Fonts
View available: https://api.memegen.link/fonts/
?font=impact (default)
Custom Images
Use any image as background:
https://api.memegen.link/images/custom/hello/world.png?style=https://example.com/image.jpg
Code Reviews
Template: fry
https://api.memegen.link/images/fry/not_sure_if_feature/or_bug.png
Deployments
Template: interesting
https://api.memegen.link/images/interesting/i_dont_always_test/but_when_i_do_i_do_it_in_production.png
Documentation
Template: yodawg
https://api.memegen.link/images/yodawg/yo_dawg_i_heard_you_like_docs/so_i_documented_the_documentation.png
Performance Issues
Template: fine
https://api.memegen.link/images/fine/memory_usage_at_99~/this_is_fine.png
Successful Deploy
Template: success
https://api.memegen.link/images/success/deployed_to_production/zero_downtime.png
Generating Memes in Response
Here's a relevant meme:

Dynamic Generation (Python)
def generate_status_meme(status: str, message: str):
template_map = {
"success": "success",
"failure": "fine",
"review": "fry",
"deploy": "interesting"
}
template = template_map.get(status, "buzz")
words = message.split()
top = "_".join(words[0:3])
bottom = "_".join(words[3:6])
return f"https://api.memegen.link/images/{template}/{top}/{bottom}.png"
Using the Helper Script
from meme_generator import MemeGenerator
meme = MemeGenerator()
url = meme.generate("buzz", "features", "features everywhere")
print(url)
Endpoints
Endpoint
Purpose
/templates/
List all templates
/templates/{id}
Template details
/fonts/
Available fonts
/images/{template}/{top}/{bottom}.{ext}
Generate meme
API Characteristics
Free and open-source
No API key required
No rate limiting (normal use)
Stateless (all info in URL)
Images generated on-demand
Error Handling
Check template at https://api.memegen.link/templates/
Verify text formatting (underscores for spaces)
Check special character encoding
Ensure valid extension
Test URL in browser
References
Document
Content
markdown-memes-guide.md
15+ textual meme formats (greentext, copypasta, ASCII, etc.)
examples.md
Practical usage examples
Scripts
Script
Purpose
meme_generator.py
Python helper for meme generation
Summary
Generate contextual memes to:
Add humor to conversations
Create social media visuals
Make code reviews engaging
Celebrate successes
Golden rule: Keep text concise, match template to context.don't have the plugin yet? install it then click "run inline in claude" again.