softaworks

meme-factory

330
14
# Install this skill:
npx skills add softaworks/agent-toolkit --skill "meme-factory"

Install specific skill from multi-skill repository

# Description

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+ popular templates with custom text and styling.

# SKILL.md


name: meme-factory
description: 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+ popular templates with custom text and styling.


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 ""

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:

  1. URL is valid - Returns HTTP 200
  2. Image renders - Displays correctly in markdown
  3. Text is visible - Properly formatted on image
  4. Context matches - Template fits the message

Test command:

curl -I "https://api.memegen.link/images/buzz/test/test.png"
# Should return: HTTP/2 200

Deep Dive: Advanced Features ### 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
Deep Dive: Contextual Memes ### 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
Deep Dive: Workflow Integration ### Generating Memes in Response
Here's a relevant meme:

![Meme](https://api.memegen.link/images/buzz/bugs/bugs_everywhere.png)
### 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)
Deep Dive: API Reference ### 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 1. Check template at https://api.memegen.link/templates/ 2. Verify text formatting (underscores for spaces) 3. Check special character encoding 4. Ensure valid extension 5. 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.

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.