Get the FREE Ultimate OpenClaw Setup Guide →

meme-factory

npx machina-cli add skill softaworks/agent-toolkit/meme-factory --openclaw
Files (1)
SKILL.md
7.6 KB

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

<details> <summary><strong>Deep Dive: Advanced Features</strong></summary>

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
</details> <details> <summary><strong>Deep Dive: Contextual Memes</strong></summary>

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
</details> <details> <summary><strong>Deep Dive: Workflow Integration</strong></summary>

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)
</details> <details> <summary><strong>Deep Dive: API Reference</strong></summary>

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
</details>

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.

Source

git clone https://github.com/softaworks/agent-toolkit/blob/main/skills/meme-factory/SKILL.mdView on GitHub

Overview

Meme Factory generates memes using the free memegen.link API and supports 100+ templates with custom text and styling. It helps add humor to content and provides visual aids for social media, tutorials, and campaigns.

How This Skill Works

Memes are created by constructing URLs in memegen.link's format, e.g. /images/{template}/{top}/{bottom}.{extension}, with optional width/height or background style. Text encoding follows memegen.link rules (spaces as _ or -, newline as ~n, etc.), and you can choose from 100+ templates to fit the message.

When to Use It

  • Direct meme generation via /meme-factory {template} {top} {bottom} or manual invocation
  • Requests for memes to add humor to content or social media posts
  • Creating visual aids for tutorials, announcements, or campaigns using familiar templates (buzz, drake, success, fine, fry, changemind, mordor)
  • Experimenting with different templates to match the message tone
  • Natural language requests like 'meme-factory: create a meme about X' to generate contextual memes

Quick Start

  1. Step 1: Choose a template and provide top_text and bottom_text (e.g., buzz / memes / memes_everywhere).
  2. Step 2: Build the meme URL: https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.png
  3. Step 3: (Optional) Add width/height or style parameters and test the URL to ensure a readable image.

Best Practices

  • Choose a template that matches the message context (use the template guide).
  • Encode text correctly using underscores/dashes and special tokens (~n, ~q, ~p, etc.).
  • Always include the file extension (.png, .jpg) in the URL.
  • Test the generated URL to ensure the image renders and the text is readable.
  • Keep the message concise to maintain legibility (2–6 words per line)

Example Use Cases

  • Buzz Lightyear meme: https://api.memegen.link/images/buzz/memes/memes_everywhere.png
  • Drake format: https://api.memegen.link/images/drake/manual_testing/automated_testing.png
  • Success template: https://api.memegen.link/images/success/deployed/no_errors.png
  • Fry template: https://api.memegen.link/images/fry/not_sure_if_bug/or_feature.png
  • Mordor template: https://api.memegen.link/images/mordor/one_does_not_simply/deploy_on_friday.png

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers