Your agent writes it.
Memewright renders it.
Open source. Give it a template and a caption for each box; it returns a finished meme, correctly typeset, every time. Right font, real outline, text that fits.
An image model can't
spell on a meme.
Ask one to caption a template and you get warped, misspelled type that ignores the layout. So agents describe memes in words instead of making them. Memewright does the typesetting the model can't.
FQR TEH
RENDERR
Invented letters, broken words, text that drifts off the template. Nothing you'd put a brand on.

Correct font, wrapped and outlined, sitting exactly in the box. Rendered, not guessed.
You send captions.
It sends back a meme.
Every template names its boxes and describes what the meme means, so your agent picks the right structure and fills a line per box. One call, one PNG.
--set woman="you said it was done" \
--set cat="the deploy that failed 3 min later"

--set reject="asking a model to add text" \
--set approve="calling memewright"

Templates that know
what they mean.
A folder of images isn't a product. Each template ships its meaning, when to use it, and named boxes as image fractions, so it renders at any size and an agent can reason instead of guess. A trending-meme database is the next layer.
Built for agents,
from the first commit.
No SDK, no auth. Structured in, image out, three ways to call it.
One command renders a finished PNG. JSON discovery lets an agent read every template's meaning first.
List, inspect, render. Claude, Cursor, or your own agent makes memes as native tool calls and gets the image back.
A packaged skill that teaches an agent to pick the right template and write captions that land. Drop it in.
Give your agent
a sense of humor.
AGPL-3.0. Self-host the CLI, the server, and the playground anywhere Node runs. The engine stays open.