Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计提醒

memegenmemegen 图像

Agent Skill

memegen 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,916

周安装

124

GitHub Stars

公开资料未说明

下载量

1,022
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:memegen(memegen 图像)
来源仓库:https://github.com/artemiopadilla/memegen
安装命令:
openclaw skills install memegen
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install memegen

简介

memegen 利用 memegen.link API 生成表情包与反应图像。

  • 适用于快速创建趣味图片、网络梗图或社交聊天素材。
  • 支持自定义文字与模板组合,操作简单灵活。
  • 部分模板可能涉及版权争议,请合理使用。memegen 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 建议预览生成效果后再决定是否分享或商用。

SKILL.md

name
memegen
description
>

Memegen Skill

Generate memes via the memegen.link public API + Imgflip trending templates. No API key required.

Architecture

┌─────────────────┐     ┌──────────────────┐     ┌─────────────┐
│  Template Source │────▶│  Caption Engine   │────▶│  Renderer   │
│                  │     │                  │     │             │
│ • Built-in IDs   │     │ • Manual text    │     │ • memegen   │
│ • Imgflip API    │     │ • Agent-picked   │     │   .link     │
│ • Custom URL     │     │                  │     │ • Pillow    │
│ • Top 30 fallback│     │                  │     │   (local)   │
└─────────────────┘     └──────────────────┘     └─────────────┘

How It Works

Memes are generated entirely via URL — no POST requests needed. Build the URL and download the image.

URL Format

https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.png

Downloading Memes

memegen.link returns HTTP 404 status but valid image body — many HTTP clients reject 404 URLs.

Always download first, then verify:

curl -s -o /tmp/meme.png "https://api.memegen.link/images/drake/top/bottom.png"
file /tmp/meme.png       # Should say "PNG image data"
ls -la /tmp/meme.png     # Should be >10KB for a real meme

If the file is empty or <1KB, the template ID is probably wrong.

URL Encoding Rules

CharacterEncodingExample
Space_hello_world
?~qwhy~q
/~syes~sno
#~htag~h1
%~p100~p
"''he_said_''hi''
_ (literal)__double__underscore
Newline~nline1~nline2
Blank line_Top only: /top_text/_

Query Parameters

ParamTypeDescription
backgroundURLCustom background image URL
widthintScale to width (px), use 800 for larger
heightintScale to height (px)
fontstringFont name (see /api/fonts)
layoutstringdefault or top (text positioning)
colorstringText color: HTML name or hex (FF80ED)

🎯 VARIETY RULE — Keep It Fresh

Prefer variety over repetition. Before picking a template:

  1. Check what templates you've used recently (keep a history if possible)
  2. Try to pick a different template from the last 5 memes
  3. BUT — if a specific template is clearly the best fit for the joke, use it even if recent
  4. After generating, log the template used for future reference

Humor Configuration

This skill includes a humor profile system — an equalizer for meme tone, darkness, and cultural targeting. See humor-profiles.md for the full reference.

Default Profile

SliderDefaultRange
DarknessLevel 2 (Light)1: Clean → 5: Nuclear ☢️
Dank MeterNormie-DankNormie → Dank → Deep Fried → Surreal → Shitpost
StyleContextual (auto-detect)Sarcasm · Absurdist · Self-deprecating · Deadpan · Wholesome · Roast · Meta · Shitpost
GeoNeutral🇲🇽 MX · 🇦🇷 AR · 🇪🇸 ES · 🇺🇸 US · 🇧🇷 BR · 🇨🇴 CO · 🌎 LATAM

How the Same Topic Hits Different

Topic: "My code has bugs"

Level 1 + Wholesome + Normie:

Template: success | "Found a bug / Fixed it on first try"

Level 2 + Sarcasm + Dank:

Template: fry | "Not sure if my code works / Or the tests are just broken too"

Level 3 + Sarcasm + Dank:

Template: fine | "Production is on fire / This is fine, it's a feature"

Level 4 + Deadpan + Dank (🇲🇽):

Template: harold | "Cuando dices 'ya casi queda' y llevas 3 horas / Pero sonríes porque el deploy es mañana"

Level 5 + Shitpost + Deep Fried:

Template: custom deep-fried | "BRUH THE CODE 💀💀💀 / IT COMPILES THO 😤🔥💯"

Usage in Prompts

Generate a meme about [topic].
Humor profile: Level 3, Dank, Sarcasm, 🇲🇽

Or let the agent auto-detect from context (language used, group chat culture, conversation tone).

Deep Fry Post-Processing

For Level 5 / Deep Fried memes, use the included script:

python3 scripts/deep-fry.py meme.png fried.png --level 4 --emojis --flare

Requires: pip install pillow


Template Selection Guide

For ALL 207 templates with rhetorical patterns and examples, see references/templates-complete.md For a quick-reference index, see references/template-index.md

Pick templates by rhetorical pattern first, then tone. Each entry includes:

  • Formula: the semantic structure of the joke
  • Tone: sarcastic, wholesome, self-deprecating, absurd, smug, panicked, etc.
  • Structure: what goes in each panel/line
  • Best for: situations where this template shines
  • Text length: short (1-5 words), medium (5-15), long (15-30) per panel

Binary Comparison (reject X / prefer Y)

drake — Drakeposting

  • Formula: rejection of X / preference for Y
  • Tone: casual, lighthearted, smug
  • Structure: top=bad option (rejected), bottom=good option (approved)
  • Best for: lazy shortcuts over proper solutions, guilty pleasures, obvious better choices
  • Text length: medium / medium

pooh — Tuxedo Winnie the Pooh

  • Formula: basic version of X / refined version of X
  • Tone: smug, pretentious, self-aware
  • Structure: top=normal/basic way, bottom=fancy/elevated way
  • Best for: classy upgrades, pretending to be sophisticated, "we say it differently here"
  • Text length: medium / medium

db — Distracted Boyfriend

  • Formula: attracted to Z / neglecting Y / Z is the shiny new thing
  • Tone: sarcastic, self-deprecating, relatable
  • Structure: 3 lines — boyfriend=who's distracted, girlfriend=what's neglected, other=the temptation
  • Best for: abandoning responsibilities for fun, shiny object syndrome, love triangles
  • Text length: short / short / short

glasses — Peter Parker's Glasses

  • Formula: blurry perception of X / clear perception of X
  • Tone: revelatory, deadpan
  • Structure: top=what it looks like at first, bottom=what it actually is
  • Best for: seeing through BS, clarity moments, "oh that's what it really is"
  • Text length: medium / medium

astronaut — Always Has Been

  • Formula: discovery of X / it was always X
  • Tone: ominous, deadpan, absurd
  • Structure: 4 lines — astronaut1 sees something, asks question, astronaut2 reveals truth, "always has been"
  • Best for: revelations that something was always true, conspiracies, hidden truths
  • Text length: short / medium / short / short
  • ⚠️ Built-in may be broken — use Imgflip URL with custom template as fallback

Skepticism / Confusion

fry — Futurama Fry (Squinting)

  • Formula: not sure if X or Y
  • Tone: suspicious, paranoid, relatable
  • Structure: top=not sure if X, bottom=or just Y
  • Best for: ambiguous situations, "is this a compliment or insult", reading between the lines
  • Text length: medium / medium

morpheus — Matrix Morpheus

  • Formula: what if I told you X
  • Tone: wise, smug, enlightening
  • Structure: top=what if I told you, bottom=the revelation
  • Best for: mind-blowing facts, uncomfortable truths, paradigm shifts
  • Text length: short / long

philosoraptor — Philosoraptor

  • Formula: if X then wouldn't Y
  • Tone: absurd, pseudo-intellectual, shower-thought
  • Structure: top=philosophical setup, bottom=absurd conclusion
  • Best for: shower thoughts, wordplay, "technically correct" logic, paradoxes
  • Text length: medium / medium

keanu — Conspiracy Keanu

  • Formula: what if X is actually Y
  • Tone: paranoid, conspiratorial, wide-eyed
  • Structure: top=what if, bottom=wild conspiracy theory
  • Best for: absurd theories, connecting unrelated dots, "everything is connected"
  • Text length: short / long

Clever Realization / Big Brain

rollsafe — Roll Safe (Thinking)

  • Formula: can't have problem X if you do Y (terrible logic)
  • Tone: smug, self-satisfied, terrible-advice
  • Structure: top=can't X, bottom=if you Y (the "clever" workaround)
  • Best for: life hacks that are actually terrible, loophole logic, galaxy-brain shortcuts
  • Text length: medium / medium

gb — Galaxy Brain (Expanding Brain)

  • Formula: level 1 normal → level 4 absurd/genius
  • Tone: absurd, escalating, ironic
  • Structure: 4 panels — each progressively more extreme/ridiculous take on same topic
  • Best for: escalating absurdity, "big brain" solutions, tier lists of approaches
  • Text length: medium / medium / medium / medium

scc — Sudden Clarity Clarence

  • Formula: sudden realization that X
  • Tone: shocked, enlightened, mind-blown
  • Structure: top=setup, bottom=the realization
  • Best for: epiphanies, "wait a minute" moments, obvious things nobody noticed
  • Text length: medium / medium

Sarcasm / Mockery

spongebob — Mocking SpongeBob

  • Formula: mocking repetition of X
  • Tone: sarcastic, mocking, petty
  • Structure: top=the original statement, bottom=tHe MoCkInG vErSiOn
  • Best for: mocking dumb takes, repeating someone's words back at them, "sure buddy"
  • Text length: medium / medium (use alternating caps in bottom)

wonka — Condescending Wonka

  • Formula: oh you X? you must be Y
  • Tone: condescending, sarcastic, smug
  • Structure: top=oh you [claim], bottom=you must [sarcastic conclusion]
  • Best for: calling out fakes, "oh you're an expert now?", gatekeeping humor
  • Text length: medium / medium

kermit — But That's None of My Business

  • Formula: [controversial observation] but that's none of my business
  • Tone: passive-aggressive, smug, "just saying"
  • Structure: top=shady observation, bottom=but that's none of my business
  • Best for: throwing shade, gossip, pointed observations you "didn't mean to make"
  • Text length: long / short

khaby-lame — Khaby Lame Shrug

  • Formula: the obvious solution was right there
  • Tone: deadpan, "are you serious", exasperated
  • Structure: top=the overcomplicated thing someone did, bottom=the obvious solution
  • Best for: overengineering, when the answer was obvious, "just do X"
  • Text length: medium / short

Panic / Disaster / Pain

fine — This is Fine (Dog in Fire)

  • Formula: everything is on fire / pretending it's okay
  • Tone: denial, panicked-calm, self-deprecating
  • Structure: top=the disaster happening, bottom=this is fine (or calm response)
  • Best for: ignoring problems, deadlines, production outages, Monday mornings
  • Text length: medium / short

harold — Hide the Pain Harold

  • Formula: pain hidden behind a smile
  • Tone: self-deprecating, pained, relatable
  • Structure: top=the painful situation, bottom=the forced smile response
  • Best for: putting on a brave face, "I'm fine" moments, internal screaming
  • Text length: medium / medium

slap — Will Smith Slapping Chris Rock

  • Formula: X attacks Y for Z
  • Tone: aggressive, dramatic, sudden
  • Structure: top=the trigger/joke, bottom=the violent response
  • Best for: overreactions, defending something aggressively, sudden consequences
  • Text length: medium / medium

gru — Gru's Plan

  • Formula: plan → plan → consequence → wait what
  • Tone: dramatic irony, panicked, backfire
  • Structure: 4 panels — step 1, step 2, unexpected consequence, horrified reaction to step 3
  • Best for: plans that backfire, unintended consequences, "I didn't think this through"
  • Text length: medium / medium / medium / medium (panel 4 repeats panel 3)

chair — American Chopper Argument

  • Formula: escalating argument between two people
  • Tone: heated, dramatic, aggressive
  • Structure: up to 6 panels — alternating arguments, escalating intensity
  • Best for: heated debates, internal conflicts, "the duality of man", pros vs cons arguments
  • Text length: medium per panel (up to 6 panels!)

Wholesome / Positive

success — Success Kid

  • Formula: attempted X / nailed it
  • Tone: triumphant, wholesome, fist-pump
  • Structure: top=the challenge or attempt, bottom=the win
  • Best for: small victories, passing tests, things going right for once
  • Text length: medium / short

stonks — Stonks (Meme Man)

  • Formula: did X / stonks (profit/success)
  • Tone: absurd, ironic-positive, surreal
  • Structure: top=the questionable action, bottom=stonks (or "not stonks" for failures)
  • Best for: questionable financial decisions, "business" moves, ironic success
  • Text length: medium / short

handshake — Epic Handshake

  • Formula: X and Y agree on Z
  • Tone: wholesome, unifying, respectful
  • Structure: 3 lines — left arm label, right arm label, handshake label (the shared thing)
  • Best for: unlikely agreements, common ground between enemies, "we're not so different"
  • Text length: short / short / medium

Comparison / Identity

same — They're The Same Picture (Corporate)

  • Formula: X and Y are identical / I see no difference
  • Tone: deadpan, sarcastic, pointed
  • Structure: top=thing 1, bottom=thing 2 (implying they're the same)
  • Best for: calling out copycats, "these are literally the same thing", false distinctions
  • Text length: short / short

pigeon — Is This a Pigeon?

  • Formula: person misidentifies X as Y
  • Tone: confused, absurd, oblivious
  • Structure: 3 lines — the person (who), the butterfly (what it actually is), "is this a [wrong label]?"
  • Best for: misidentifying things, clueless takes, "boomers calling everything WiFi"
  • Text length: short / short / short

spiderman — Spider-Man Pointing

  • Formula: X and Y are the same thing pointing at each other
  • Tone: absurd, meta, accusatory
  • Structure: top=first thing, bottom=second thing (both identical)
  • Best for: two things that are secretly the same, hypocrisy, "you're one to talk"
  • Text length: short / short

woman-cat — Woman Yelling at Cat

  • Formula: angry accusation vs calm unbothered response
  • Tone: chaotic, confrontational, deadpan
  • Structure: top=the angry accusation (woman), bottom=the calm response (cat)
  • Best for: arguments where one side is dramatic and the other is chill, overreaction vs facts
  • Text length: long / short

Reaction / Mood

kombucha — Kombucha Girl

  • Formula: tries X / actually it's not bad
  • Tone: surprised, conflicted, "huh okay"
  • Structure: top=the thing you reluctantly tried, bottom=the unexpected reaction
  • Best for: guilty pleasures, changing your mind, "okay this actually slaps"
  • Text length: medium / short

right — Anakin Padmé ("Right?")

  • Formula: states plan / partner assumes good intent / "right?" / silence
  • Tone: dramatic irony, ominous, escalating dread
  • Structure: 5 lines — Anakin states X, Padmé assumes benign reason, "right?", Anakin silent stare, "RIGHT?"
  • Best for: someone revealing bad intentions, "wait you're joking right?", red flags
  • Text length: medium / short / short / (blank) / short

cmm — Change My Mind

  • Formula: hot take stated as fact, daring anyone to argue
  • Tone: provocative, confident, debate-me
  • Structure: 1 line only — the controversial opinion on the sign
  • Best for: hot takes, unpopular opinions, starting arguments, confident declarations
  • Text length: medium (single line, keep it punchy)

reveal — Scooby Doo Reveal (Unmasking)

  • Formula: X was actually Y all along
  • Tone: revelatory, dramatic, "I knew it"
  • Structure: 4 lines — the villain, the mask being pulled, the reveal, reaction
  • Best for: exposing the truth, "it was X all along", corporate rebranding, hidden motives
  • Text length: short / short / short / short

Rhetorical Pattern Quick Reference

Use this to identify the right template category before browsing individual templates:

PatternTemplatesWhen to Use
Binary comparison (A vs B)Drake, Pooh, Distracted BoyfriendRejecting one thing for another
Escalation (progressively more extreme)Galaxy Brain, Expanding BrainIdeas getting increasingly absurd
Dramatic irony (plan backfires)Gru's Plan, Anakin/Padme ("Right?")Confident plan with obvious flaw
Denial / copeThis Is Fine, HaroldPretending everything's okay
Obvious solution ignoredKhaby Lame, Roll SafeThe answer was simple all along
Mockery / sarcasmSpongebob, Wonka, KermitMaking fun of a take
Identity confusionSpider-Man Pointing, Same Picture, PigeonThings that are the same or misidentified
Revelation / unmaskingScooby Doo Reveal, Peter Parker GlassesDiscovering the truth behind something
Hot take / provocationChange My MindStating a controversial opinion
Shared agreementEpic HandshakeTwo sides finding common ground
Escalating argumentAmerican ChopperMulti-party conflict

Trending Templates via Imgflip

When you want the freshest templates (not just built-in IDs):

curl -s "https://api.imgflip.com/get_memes" | python3 -c "
import sys, json
memes = json.load(sys.stdin)['data']['memes'][:20]
for m in memes:
    print(f\"{m['name']}: {m['url']}\")
"

Use with custom background:

https://api.memegen.link/images/custom/{top}/{bottom}.png?background={imgflip_url}&width=800

Custom Background URL Encoding

from urllib.parse import quote
bg = quote("https://i.imgflip.com/30b1gx.jpg", safe=":/")
url = f"https://api.memegen.link/images/custom/top/bottom.png?background={bg}&width=800"

For hardcoded fallback templates (when Imgflip is unreachable), see references/templates-classic.md.

For trending template sources (Reddit, Imgflip scraping, Giphy), see references/templates-trending.md.

Local Render with Pillow (fallback, no network)

When memegen.link is down or you need full control:

from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
import textwrap, requests

def render_meme(image_url, top, bottom="", output="/tmp/meme.png"):
    img = Image.open(BytesIO(requests.get(image_url).content)).convert("RGB")
    draw = ImageDraw.Draw(img)
    w, h = img.size
    font_size = max(w // 12, 20)
    try:
        font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Impact.ttf", font_size)
    except OSError:
        font = ImageFont.load_default()

    def draw_block(text, anchor="top"):
        if not text: return
        text = text.upper()
        lines = textwrap.wrap(text, width=max(int((w * 0.9) / (font_size * 0.6)), 10))
        line_h = [draw.textbbox((0,0), l, font=font)[3] - draw.textbbox((0,0), l, font=font)[1] for l in lines]
        total = sum(line_h) + (len(lines)-1) * 4
        y = 10 if anchor == "top" else h - total - 20
        for i, line in enumerate(lines):
            lw = draw.textbbox((0,0), line, font=font)[2]
            draw.text(((w-lw)/2, y), line, font=font, fill="white",
                      stroke_width=3, stroke_fill="black")
            y += line_h[i] + 4

    draw_block(top, "top")
    draw_block(bottom, "bottom")
    img.save(output, quality=95)
    return output

Requires: pip install pillow requests and optionally sudo apt install ttf-mscorefonts-installer for Impact font.

⚠️ Known Issues & Lessons

Template names matter — use exact IDs

Common mistakes:

  • buzz-woody → does not exist, grey placeholder
  • buzz → "X, X Everywhere"
  • disaster-girl → wrong
  • ds → Disaster Girl
  • change-my-mind → wrong
  • cmm → Change My Mind

When unsure, fetch https://api.memegen.link/templates/{id} to verify.

Broken/unreliable built-in templates

These render text-only on grey striped background (no image):

  • simply — "One Does Not Simply" — background doesn't load
  • always — "Always Has Been" — background doesn't load
  • panik — "Panik Kalm Panik" — 3-panel doesn't render

Workaround: Use the Imgflip URL from the fallback list with custom template instead.

Don't use formatting tags in meme text

  • ~i~text~i~ — renders literally
  • ✅ Just use plain text — memes don't need italics
  • Only reliable special chars: ~n (newline), ~q (?), ~a (&), ~h (#), ~s (/)

Text encoding

  • Accented characters (é, ñ, ó) work fine in URLs
  • Keep text SHORT — max ~30 chars per line looks best
  • Emojis don't render in memegen.link

Tips

  • Keep text short — long text gets tiny
  • Use ?width=800 for larger images
  • For custom backgrounds: custom template + ?background=<url>
  • For broken built-in templates, use Imgflip URL + custom as workaround
  • time.sleep(0.5) between batch requests — be polite to memegen.link

For the full template list and special characters reference, see references/api.md.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

86.03%
按下载量换算879

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills