[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698XDCCK6S2G72MKDTFRZ2V":3,"skill-same:01M698XDCCK6S2G72MKDTFRZ2V":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":44,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M698XDCCK6S2G72MKDTFRZ2V","meme-maker",null,"Search meme templates, suggest formats, and generate local or hosted image memes.","openclaw\u002Fopenclaw","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMDRVH56MV30D253NFP",394302,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fmeme-maker\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28],"meme maker","maker","meme","image","generate","search","templates","node","memes","local","formats","2026-11-10 10:12:30",false,"---\nname: meme-maker\ndescription: Search meme templates, suggest formats, and generate local or hosted image memes.\nmetadata: { \"openclaw\": { \"emoji\": \"?️\", \"requires\": { \"bins\": [\"node\"] } } }\n---\n\n# Meme Maker\n\nCreate meme drafts from a curated template registry without bundling copyrighted template images.\n\nQuick start\n\n- Search: `{baseDir}\u002Fscripts\u002Fmeme.mjs search \"bad choice\"`\n- Suggest: `{baseDir}\u002Fscripts\u002Fmeme.mjs suggest \"slow python image scripts\"`\n- Local SVG: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --text \"Repeated downloads\" --text \"Cached templates\" --out \u002Ftmp\u002Fmeme.svg`\n- Local PNG: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --text \"Maybe API\" --text \"Local render\" --out \u002Ftmp\u002Fmeme.png`\n- Imgflip hosted: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --service imgflip --text \"before\" --text \"after\"`\n\nModes\n\n- `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 renders through an isolated headless browser using OpenClaw's Playwright support. PNG output requires Playwright's Chromium or an installed Google Chrome; SVG output needs no browser.\n- `imgflip` calls Imgflip `caption_image` and prints the hosted URL. It requires `IMGFLIP_USER` and `IMGFLIP_PASS` unless supplied via `--username` and `--password`.\n\nCommands\n\n- `list [--json]`: list the built-in curated templates.\n- `search \u003Cquery> [--json]`: search template names, aliases, tags, and use cases.\n- `suggest \u003Ctopic> [--limit N] [--json]`: rank templates for the topic.\n- `render \u003Ctemplate> --text TEXT ... [--out PATH] [--service local|imgflip]`: generate a meme.\n- `refresh [--limit N] [--json]`: fetch current Imgflip top templates for research; do not overwrite the curated registry automatically.\n\nTemplate registry\n\n- Read `{baseDir}\u002Freferences\u002Ftemplates.json` for the curated 20-template registry.\n- Each entry includes Imgflip metadata, Know Your Meme link, aliases, tags, fields, and local text placement boxes.\n- Prefer `suggest` first when the user describes a joke but does not know the format.\n\nHygiene\n\n- Do not ship template image files in the skill.\n- Do not use shared or hardcoded Imgflip credentials.\n- Keep Know Your Meme lookups out of the render hot path; use KYM links for explanation\u002Fprovenance only.\n- If PNG output fails because the browser is unavailable, use `--out meme.svg` (or another `.svg` path). Do not `npm install` packages into the skill directory or the OpenClaw tree to enable PNG.\n","# Meme Maker\n\nCreate meme drafts from a curated template registry without bundling copyrighted template images.\n\nQuick start\n\n- Search: `{baseDir}\u002Fscripts\u002Fmeme.mjs search \"bad choice\"`\n- Suggest: `{baseDir}\u002Fscripts\u002Fmeme.mjs suggest \"slow python image scripts\"`\n- Local SVG: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --text \"Repeated downloads\" --text \"Cached templates\" --out \u002Ftmp\u002Fmeme.svg`\n- Local PNG: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --text \"Maybe API\" --text \"Local render\" --out \u002Ftmp\u002Fmeme.png`\n- Imgflip hosted: `{baseDir}\u002Fscripts\u002Fmeme.mjs render drake --service imgflip --text \"before\" --text \"after\"`\n\nModes\n\n- `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 renders through an isolated headless browser using OpenClaw's Playwright support. PNG output requires Playwright's Chromium or an installed Google Chrome; SVG output needs no browser.\n- `imgflip` calls Imgflip `caption_image` and prints the hosted URL. It requires `IMGFLIP_USER` and `IMGFLIP_PASS` unless supplied via `--username` and `--password`.\n\nCommands\n\n- `list [--json]`: list the built-in curated templates.\n- `search \u003Cquery> [--json]`: search template names, aliases, tags, and use cases.\n- `suggest \u003Ctopic> [--limit N] [--json]`: rank templates for the topic.\n- `render \u003Ctemplate> --text TEXT ... [--out PATH] [--service local|imgflip]`: generate a meme.\n- `refresh [--limit N] [--json]`: fetch current Imgflip top templates for research; do not overwrite the curated registry automatically.\n\nTemplate registry\n\n- Read `{baseDir}\u002Freferences\u002Ftemplates.json` for the curated 20-template registry.\n- Each entry includes Imgflip metadata, Know Your Meme link, aliases, tags, fields, and local text placement boxes.\n- Prefer `suggest` first when the user describes a joke but does not know the format.\n\nHygiene\n\n- Do not ship template image files in the skill.\n- Do not use shared or hardcoded Imgflip credentials.\n- Keep Know Your Meme lookups out of the render hot path; use KYM links for explanation\u002Fprovenance only.\n- If PNG output fails because the browser is unavailable, use `--out meme.svg` (or another `.svg` path). Do not `npm install` packages into the skill directory or the OpenClaw tree to enable PNG.\n",{"name":5,"metadata":34,"description":7},{"openclaw":35},{"emoji":36,"requires":37},"?️",{"bins":38},[25],"main","f1c93577085244aa96aa87b53a2df9b59d293bd7","skills\u002Fmeme-maker",82862,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw","https:\u002F\u002Fopenclaw.ai","https:\u002F\u002Fgithub.com\u002Fopenclaw","Your personal, open source AI assistant.","2026-11-11 08:46:30",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add openclaw\u002Fopenclaw --skill meme-maker",{"tool":54,"command":55},"bunx","bunx skills add openclaw\u002Fopenclaw --skill meme-maker",{"tool":57,"command":58},"pnpm","pnpm dlx skills add openclaw\u002Fopenclaw --skill meme-maker","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fmeme-maker\u002FSKILL.md",true,[62,68],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Ftemplates.json","REFERENCE","参考文档",13128,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fmeme-maker\u002Freferences\u002Ftemplates.json",{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"scripts\u002Fmeme.mjs","SCRIPT","脚本",13362,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fmeme-maker\u002Fscripts\u002Fmeme.mjs",[75,81,102,120,142,166],{"skillNo":76,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":29},"01M698VP84FNM6G9MR1HPX7MF7","lobster","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FSKILL.md",[],[77],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":29},"01M698YY8QGQ7S8TJNKJG6VTPH","xurl","xurl CLI for authenticated X posts, replies, reads\u002Fsearch, DMs, media upload, followers, auth status, or raw v2 API calls.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fxurl\u002FSKILL.md",[],[83,88,89,90,91,92,93,94,95,96,25,97,23,98,99,100,101],"for","api","calls","replies","posts","upload","tap","install","brew","Media","npm","status","auth","cli",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":29},"01M698YWT1CJ0WK88WB909R9RT","weather","Current weather and forecasts with web_fetch, falling back to wttr.in curl for locations, rain, temperature, travel planning.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fweather\u002FSKILL.md",[],[104,109,110,95,111,96,112,113,114,115,116,117,88,118,119],"travel planning","travel","fetch","curl","https","help","planning","web","back","temperature","with",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":131,"publishedAt":29},"01M698YV2Q0R0JJKAWGFS21K0N","visualize","Create inline visuals for code and explanations, or author persistent OpenClaw dashboard widgets with show_widget.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fvisualize\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[122,132,133,134,135,88,119,136,137,138,139,140,9,141],"widgets","openclaw dashboard","author","inline","show","code","create","visuals","dashboard","widget",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":156,"publishedAt":29},"01M698YS2TRJH9ENG28HD9CD87","trello","Manage Trello boards, lists, and cards via the Trello REST API.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftrello\u002FSKILL.md",[148,153],{"categoryNo":149,"categoryName":150,"taxonomyType":151,"taxonomyTypeDesc":152},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":154,"categoryName":155,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000030","开发工程师",[144,113,157,158,159,160,161,162,95,96,163,112,89,164,165],"cloud","manage","via","rest api","token","atlassian","jq","REST","developer",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":29},"01M698YQ9Q3M4W78EWV2KSCSVW","tmux","Control tmux sessions\u002Fpanes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftmux\u002FSKILL.md",[],[168,95,173,174,88,175,176,177,178,179,180,181,96,182,183,184,185,186,187],"send","darwin","keys","paste","output","control","prompts","interactive","list","capture","panes","text","monitor","sessions","linux"]