From meme-factory
Generates memes via memegen.link API with 100+ templates, custom text, and styling. Use for humor in responses, docs, or social media via /meme-factory.
npx claudepluginhub softaworks/agent-toolkit --plugin meme-factoryThis skill uses the workspace's default tool permissions.
Create memes using the free memegen.link API and textual meme formats.
Generates memes using memegen.link API for developer contexts like PR descriptions, changelogs, and team comms. Builds URLs with templates, text lines, encoding, and query params.
Generates memes using each::sense AI: classic templates, custom images, brand memes, reactions, comparisons, trending formats for social media, marketing, entertainment.
Engineers viral memes via format analysis, virality mechanics, platform dynamics, cultural timing, and remix optimization. Activates on mentions of meme, viral content, shareable ideas.
Share bugs, ideas, or general feedback.
Create memes using the free memegen.link API and textual meme formats.
| Trigger | Description |
|---|---|
/meme-factory | Manual invocation |
/meme-factory {template} {top} {bottom} | Direct meme generation |
meme-factory: create a meme about X | Natural language request |
| 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:
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.
| Character | Encoding |
|---|---|
| Space | _ or - |
| Newline | ~n |
| Question mark | ~q |
| Percent | ~p |
| Slash | ~s |
| Hash | ~h |
| Single quote | '' |
| Double quote | "" |
| 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 |
| 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..." |
After generating a meme:
| Platform | Dimensions |
|---|---|
| Social media (Open Graph) | 1200x630 |
| Slack/Discord | 800x600 |
| GitHub | Default |
| 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 |
Meme generation is successful when:
Test command:
curl -I "https://api.memegen.link/images/buzz/test/test.png"
# Should return: HTTP/2 200
| Extension | Use Case |
|---|---|
.png | Best quality, default |
.jpg | Smaller file size |
.webp | Modern, good compression |
.gif | Animated templates |
?width=800
?height=600
?width=800&height=600 (padded to exact)
?layout=top # Text at top only
?layout=bottom # Text at bottom only
?layout=default # Standard top/bottom
View available: https://api.memegen.link/fonts/
?font=impact (default)
Use any image as background:
https://api.memegen.link/images/custom/hello/world.png?style=https://example.com/image.jpg
Template: fry
https://api.memegen.link/images/fry/not_sure_if_feature/or_bug.png
Template: interesting
https://api.memegen.link/images/interesting/i_dont_always_test/but_when_i_do_i_do_it_in_production.png
Template: yodawg
https://api.memegen.link/images/yodawg/yo_dawg_i_heard_you_like_docs/so_i_documented_the_documentation.png
Template: fine
https://api.memegen.link/images/fine/memory_usage_at_99~/this_is_fine.png
Template: success
https://api.memegen.link/images/success/deployed_to_production/zero_downtime.png
Here's a relevant meme:

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"
from meme_generator import MemeGenerator
meme = MemeGenerator()
url = meme.generate("buzz", "features", "features everywhere")
print(url)
| Endpoint | Purpose |
|---|---|
/templates/ | List all templates |
/templates/{id} | Template details |
/fonts/ | Available fonts |
/images/{template}/{top}/{bottom}.{ext} | Generate meme |
| Document | Content |
|---|---|
| markdown-memes-guide.md | 15+ textual meme formats (greentext, copypasta, ASCII, etc.) |
| examples.md | Practical usage examples |
| Script | Purpose |
|---|---|
| meme_generator.py | Python helper for meme generation |
Generate contextual memes to:
Golden rule: Keep text concise, match template to context.