mcpField
M
meme-factory

meme-factory

github.com/softaworksCreative & media2.6k4.0k installsUpdated 34w ago
Repository

About meme-factory

meme-factory is a skill for creating contextual image memes through the memegen.link API and textual meme formats. It guides template selection, text encoding, and image options for conversational, social, and code-related use.

Key features

  1. 01Generate memes from templates and text
  2. 02Choose templates by message context
  3. 03Encode special characters for URLs
  4. 04Set image size, format, and layout
  5. 05Use custom backgrounds and fonts

Use cases

  1. 01Add humor to conversations
  2. 02Create social media images
  3. 03Make code reviews more engaging
  4. 04Celebrate successful deployments

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/softaworks/agent-toolkit --skill meme-factory

After installing, type/meme-factoryin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
references/
examples.md
markdown-memes-guide.md
scripts/
meme_generator.py

Details

From the project README

Meme Factory

Create memes using the free memegen.link API and textual meme formats.


Triggers

TriggerDescription
/meme-factoryManual invocation
/meme-factory {template} {top} {bottom}Direct meme generation
meme-factory: create a meme about XNatural language request

Quick Reference

ActionFormat
Basic memehttps://api.memegen.link/images/{template}/{top}/{bottom}.png
With sizing?width=1200&height=630
Custom background?style=https://example.com/image.jpg
All templateshttps://api.memegen.link/templates/
Interactive docshttps://api.memegen.link/docs/

Additional Resources:


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
CharacterEncoding
Space_ or -
Newline~n
Question mark~q
Percent~p
Slash~s
Hash~h
Single quote''
Double quote""

Popular Templates

TemplateUse CaseExample
buzzX, X everywherebugs/bugs_everywhere
drakeComparisonsmanual_testing/automated_testing
successVictoriesdeployed/no_errors
fineThings going wrongserver_on_fire/this_is_fine
fryUncertaintynot_sure_if_bug/or_feature
changemindHot takestabs_are_better_than_spaces
distractedPrioritiesmy_code/new_framework/current_project
mordorOne does not simplyone_does_not_simply/deploy_on_friday

Template Selection Guide

ContextTemplateWhy
Comparing optionsdrakeTwo-panel reject/approve format
Celebrating winssuccessPositive outcome emphasis
Problems ignoredfineIronic "everything is fine"
Uncertaintyfry"Not sure if X or Y" format
Controversial opinionchangemindStatement + challenge
Ubiquitous thingsbuzz"X, X everywhere"
Bad ideasmordor"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
PlatformDimensions
Social media (Open Graph)1200x630
Slack/Discord800x600
GitHubDefault

Anti-Patterns

AvoidWhyInstead
Spaces without encodingURL breaksUse _ or -
Too much textUnreadable2-6 words per line
Wrong templateMessage mismatchMatch template to context
Missing extensionInvalid URLAlways include .png, .jpg, etc.
Unencoded special charsURL breaksUse ~q, ~s, ~p, etc.
Assuming template exists404 errorCheck 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
ExtensionUse Case
.pngBest quality, default
.jpgSmaller file size
.webpModern, good compression
.gifAnimated 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
EndpointPurpose
/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

DocumentContent
markdown-memes-guide.md15+ textual meme formats (greentext, copypasta, ASCII, etc.)
examples.mdPractical usage examples
Scripts
ScriptPurpose
meme_generator.pyPython 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.

Comments

Markdown supported