From atv-starter-kit
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.
npx claudepluginhub all-the-vibes/atv-starterkit --plugin atv-starter-kitThis skill uses the workspace's default tool permissions.
> **memeIQ** is your AI-powered meme generation toolkit. It wraps the free memegen.link API so you can create developer memes in seconds — no API key, no auth, no config required.
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.
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.
memeIQ is your AI-powered meme generation toolkit. It wraps the free memegen.link API so you can create developer memes in seconds — no API key, no auth, no config required.
| Setting | Value |
|---|---|
| Base URL | https://api.memegen.link/images |
| Formats | .png, .jpg, .gif (animated), .webp (animated) |
| Max text | ~200 chars per line (HTTP 414 if exceeded) |
| Templates | 200+ available; 16 curated below |
| Auth | None required |
The URL pattern uses variable-length path segments — one segment per text line:
https://api.memegen.link/images/{template_id}/{line1}/{line2}/.../{lineN}.{format}
2-line template (drake — Drakeposting):
https://api.memegen.link/images/drake/Writing_tests/Writing_memes.png
1-line template (cmm — Change My Mind):
https://api.memegen.link/images/cmm/Tabs_are_better_than_spaces.png
3-line template (db — Distracted Boyfriend):
https://api.memegen.link/images/db/New_framework/My_current_project/Proven_technology.png
4-line template (gru — Gru's Plan):
https://api.memegen.link/images/gru/Write_a_migration/Deploy_to_prod/Drop_the_table/Drop_the_table.png
Blank line — use a single underscore _ for an empty text segment:
https://api.memegen.link/images/fry/_/Not_sure_if_bug_or_feature.png
Markdown embed for PRs and docs:

| Param | Effect | Example |
|---|---|---|
width | Image width in px | ?width=400 |
height | Image height in px | ?height=300 |
font | Font name | ?font=impact |
layout | default or top | ?layout=top |
style | Template-specific styles | ?style=maga |
Text in the URL path must encode special characters:
| Character | Encoding | Example |
|---|---|---|
| space | _ | Hello_world |
| underscore | __ | my__var |
| dash | -- | well--known |
? | ~q | Why~q |
& | ~a | this~a_that |
% | ~p | 100~p |
# | ~h | issue_~h42 |
/ | ~s | CI~sCD |
| newline | ~n | line1~nline2 |
" | '' | ''quoted'' |
Known-good as of 2026-04-23. If a template ID fails, query /templates (see Template Discovery below).
| API ID | Name | Lines | Best For |
|---|---|---|---|
drake | Drakeposting | 2 | Preferring one thing over another |
db | Distracted Boyfriend | 3 | Temptation / switching technologies |
cmm | Change My Mind | 1 | Hot takes / unpopular opinions |
both | Why Not Both? | 2 | Having it all |
fine | This Is Fine | 2 | Production incidents / ignoring problems |
mordor | One Does Not Simply | 2 | Difficulty of a task |
astronaut | Always Has Been | 4 | Realizations / "wait, it always was?" |
exit | Left Exit 12 Off Ramp | 3 | Choosing the wrong path |
gb | Galaxy Brain | 4 | Escalating ideas from normal to absurd |
disastergirl | Disaster Girl | 2 | Watching something burn |
rollsafe | Roll Safe | 2 | "Can't fail if..." logic |
kermit | But That's None of My Business | 2 | Clever workarounds / passive observation |
buzz | X, X Everywhere | 2 | Something ubiquitous |
success | Success Kid | 2 | Celebrating wins |
fry | Futurama Fry | 2 | "Not sure if..." ambiguity |
gru | Gru's Plan | 4 | Step-by-step plans that backfire |
To find templates beyond the curated list, query the API:
GET https://api.memegen.link/templates
Returns JSON array. Each entry has:
id — template ID for URL constructionname — human-readable namelines — number of text lines supportedkeywords — searchable tagsCheck a specific template:
GET https://api.memegen.link/templates/{id}
Search by keyword: Filter the full list client-side by matching keywords or name fields. If a template ID you want to use isn't in the curated list, verify it exists with a GET request before constructing the URL.
Each template supports a specific number of text lines (see Lines column in the curated table). You must provide the correct number of path segments.
cmm): /cmm/{line1}.pngdrake): /drake/{line1}/{line2}.pngdb): /db/{line1}/{line2}/{line3}.pnggru): /gru/{line1}/{line2}/{line3}/{line4}.pngUse a single underscore _ for any line that should be empty:
/drake/_/Only_bottom_text.png
If text exceeds ~200 characters per line:
~n for newlines within a single line segmentgru has 4)layout=top — places all text at the top for better readability on long textlayout=topAdd ?layout=top when a template's default text placement doesn't work well:
Return the clickable link:
https://api.memegen.link/images/drake/Fixing_bugs/Creating_features.png

curl -sL -o meme.png "https://api.memegen.link/images/drake/Fixing_bugs/Creating_features.png"
/templates/{id} first..gif and .webp formats support animation on templates that have it._ not an empty string. Empty segments produce malformed URLs.