|
| 1 | +--- |
| 2 | +name: meme-maker |
| 3 | +description: Search meme templates, suggest formats, and generate local or hosted image memes. |
| 4 | +metadata: { "openclaw": { "emoji": "🖼️", "requires": { "bins": ["node"] } } } |
| 5 | +--- |
| 6 | + |
| 7 | +# Meme Maker |
| 8 | + |
| 9 | +Create meme drafts from a curated template registry without bundling copyrighted template images. |
| 10 | + |
| 11 | +Quick start |
| 12 | + |
| 13 | +- Search: `{baseDir}/scripts/meme.mjs search "bad choice"` |
| 14 | +- Suggest: `{baseDir}/scripts/meme.mjs suggest "slow python image scripts"` |
| 15 | +- Local SVG: `{baseDir}/scripts/meme.mjs render drake --text "Python cold starts" --text "Node sharp cache" --out /tmp/meme.svg` |
| 16 | +- Local PNG: `{baseDir}/scripts/meme.mjs render drake --text "Maybe API" --text "Local render" --out /tmp/meme.png` |
| 17 | +- Imgflip hosted: `{baseDir}/scripts/meme.mjs render drake --service imgflip --text "before" --text "after"` |
| 18 | + |
| 19 | +Modes |
| 20 | + |
| 21 | +- `local` is default. It downloads template images from their source URL with a browser-like user agent, caches them under the user cache dir, embeds the image in an SVG, and writes SVG. If `--out` ends in `.png`, it uses `sharp` when available. |
| 22 | +- `imgflip` calls Imgflip `caption_image` and prints the hosted URL. It requires `IMGFLIP_USER` and `IMGFLIP_PASS` unless supplied via `--username` and `--password`. |
| 23 | + |
| 24 | +Commands |
| 25 | + |
| 26 | +- `list [--json]`: list the built-in curated templates. |
| 27 | +- `search <query> [--json]`: search template names, aliases, tags, and use cases. |
| 28 | +- `suggest <topic> [--limit N] [--json]`: rank templates for the topic. |
| 29 | +- `render <template> --text TEXT ... [--out PATH] [--service local|imgflip]`: generate a meme. |
| 30 | +- `refresh [--limit N] [--json]`: fetch current Imgflip top templates for research; do not overwrite the curated registry automatically. |
| 31 | + |
| 32 | +Template registry |
| 33 | + |
| 34 | +- Read `{baseDir}/references/templates.json` for the curated 20-template registry. |
| 35 | +- Each entry includes Imgflip metadata, Know Your Meme link, aliases, tags, fields, and local text placement boxes. |
| 36 | +- Prefer `suggest` first when the user describes a joke but does not know the format. |
| 37 | + |
| 38 | +Hygiene |
| 39 | + |
| 40 | +- Do not ship template image files in the skill. |
| 41 | +- Do not use shared or hardcoded Imgflip credentials. |
| 42 | +- Keep Know Your Meme lookups out of the render hot path; use KYM links for explanation/provenance only. |