{
  "schemaVersion": "1.0",
  "item": {
    "slug": "snapog",
    "name": "SnapOG",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/beameasy/snapog",
    "canonicalUrl": "https://clawhub.ai/beameasy/snapog",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/snapog",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=snapog",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/snapog"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/snapog",
    "agentPageUrl": "https://openagent3.xyz/skills/snapog/agent",
    "manifestUrl": "https://openagent3.xyz/skills/snapog/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/snapog/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "SnapOG — Social Image Generation",
        "body": "Generate OG images, social cards, and marketing visuals from professionally designed templates. Returns pixel-perfect PNGs in under 100ms.\n\nAPI Base: https://api.snapog.dev"
      },
      {
        "title": "Authentication",
        "body": "All generation requests require a Bearer token. The API key is read from the SNAPOG_API_KEY environment variable.\n\nAuthorization: Bearer $SNAPOG_API_KEY\n\nPreview and template listing endpoints work without authentication."
      },
      {
        "title": "Available Templates",
        "body": "TemplateIDBest ForBlog Postblog-postBlog articles, tutorials, documentationAnnouncementannouncementProduct launches, updates, releasesStats CardstatsMetrics dashboards, quarterly resultsQuotequoteTestimonials, pull quotes, social sharesProduct CardproductSaaS products, pricing, featuresGitHub Repogithub-repoOpen source projects, repo cardsEventeventConferences, meetups, webinarsChangelogchangelogRelease notes, version updatesBrand Cardbrand-cardCompany pages, docs, marketingPhoto Herophoto-heroBlog headers, news, portfolios"
      },
      {
        "title": "1. List templates and discover parameters",
        "body": "curl https://api.snapog.dev/v1/templates\n\nReturns all templates with their paramSchema (parameter names, types, required fields, defaults). Always call this first if the user hasn't specified a template."
      },
      {
        "title": "2. Generate an image (POST)",
        "body": "Use this for downloading images or advanced options:\n\ncurl -X POST https://api.snapog.dev/v1/generate \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": {\n      \"title\": \"Building with MCP\",\n      \"author\": \"Taylor\",\n      \"tags\": [\"AI\", \"Tools\"],\n      \"accentColor\": \"#6366f1\"\n    }\n  }' \\\n  --output og-image.png\n\nPOST body fields:\n\ntemplate (string, required) — template ID\nparams (object, required) — template parameters\nwidth (number) — image width in pixels (default: 1200)\nheight (number) — image height in pixels (default: 630)\nformat (\"png\" | \"svg\" | \"pdf\") — output format (default: png)\nfontFamily (string) — any Google Font family name\nwebhook_url (string) — URL to POST when generation completes\n\nSave the response body directly to a .png file. The response Content-Type is image/png."
      },
      {
        "title": "3. Generate via URL (GET)",
        "body": "Use this when the user needs a URL to embed in HTML meta tags, markdown, or anywhere an image URL is needed:\n\nhttps://api.snapog.dev/v1/og/blog-post?title=Building+with+MCP&author=Taylor&tags=AI,Tools\n\nThis URL itself serves the image. Parameters are query strings. Requires Authorization header or a signed URL."
      },
      {
        "title": "4. Preview a template (no auth needed)",
        "body": "curl https://api.snapog.dev/v1/preview/blog-post --output preview.png\n\nRenders the template with its default parameters. Useful for showing the user what a template looks like before customizing."
      },
      {
        "title": "5. Create a signed URL (for meta tags)",
        "body": "Signed URLs let you embed images in <meta> tags without exposing the API key:\n\ncurl -X POST https://api.snapog.dev/v1/sign \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": { \"title\": \"My Post\" },\n    \"expiresIn\": 86400\n  }'\n\nReturns { \"url\": \"https://api.snapog.dev/v1/og/blog-post?title=...&token=...\" }. This URL works without authentication and can be placed directly in HTML:\n\n<meta property=\"og:image\" content=\"SIGNED_URL_HERE\" />"
      },
      {
        "title": "6. Batch generate (multiple sizes)",
        "body": "Generate the same image in multiple sizes at once:\n\ncurl -X POST https://api.snapog.dev/v1/batch \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": { \"title\": \"My Post\" },\n    \"sizes\": [\"og\", \"twitter\", \"farcaster\", \"instagram-square\"]\n  }'\n\nSize presets: og (1200x630), twitter (1200x628), farcaster (1200x800), instagram-square (1080x1080), instagram-story (1080x1920), linkedin (1200x627), facebook (1200x630), pinterest (1000x1500)."
      },
      {
        "title": "Common Parameters",
        "body": "Most templates accept these shared parameters:\n\ntitle (string, required) — main heading\naccentColor (color) — theme color, e.g. #6366f1\nlogo (url) — logo image URL\nfontFamily (string) — any Google Font, e.g. \"Space Grotesk\"\n\nEach template has additional specific parameters. Call /v1/templates to see the full schema for any template."
      },
      {
        "title": "Tips",
        "body": "Choosing a template: Match the content type — blog-post for articles, announcement for launches, github-repo for OSS projects, stats for metrics, quote for testimonials.\nColors: Pass hex colors like #6366f1. Most templates support accentColor for theming.\nArrays: For tags and changes, pass as JSON arrays: [\"tag1\", \"tag2\"].\nStats: The stats template expects a JSON array: [{\"label\": \"Users\", \"value\": \"10K\"}].\nImages: For logo, image, authorImage — pass a publicly accessible URL.\nOutput: Default is 1200x630 PNG (standard OG image size). Use width/height to customize.\nFormats: Use \"svg\" for vector output, \"pdf\" for print-ready documents."
      },
      {
        "title": "Full API Docs",
        "body": "For the complete API reference as markdown (useful for deeper integration):\n\ncurl https://api.snapog.dev/v1/docs"
      }
    ],
    "body": "SnapOG — Social Image Generation\n\nGenerate OG images, social cards, and marketing visuals from professionally designed templates. Returns pixel-perfect PNGs in under 100ms.\n\nAPI Base: https://api.snapog.dev\n\nAuthentication\n\nAll generation requests require a Bearer token. The API key is read from the SNAPOG_API_KEY environment variable.\n\nAuthorization: Bearer $SNAPOG_API_KEY\n\n\nPreview and template listing endpoints work without authentication.\n\nAvailable Templates\nTemplate\tID\tBest For\nBlog Post\tblog-post\tBlog articles, tutorials, documentation\nAnnouncement\tannouncement\tProduct launches, updates, releases\nStats Card\tstats\tMetrics dashboards, quarterly results\nQuote\tquote\tTestimonials, pull quotes, social shares\nProduct Card\tproduct\tSaaS products, pricing, features\nGitHub Repo\tgithub-repo\tOpen source projects, repo cards\nEvent\tevent\tConferences, meetups, webinars\nChangelog\tchangelog\tRelease notes, version updates\nBrand Card\tbrand-card\tCompany pages, docs, marketing\nPhoto Hero\tphoto-hero\tBlog headers, news, portfolios\nCore Workflows\n1. List templates and discover parameters\ncurl https://api.snapog.dev/v1/templates\n\n\nReturns all templates with their paramSchema (parameter names, types, required fields, defaults). Always call this first if the user hasn't specified a template.\n\n2. Generate an image (POST)\n\nUse this for downloading images or advanced options:\n\ncurl -X POST https://api.snapog.dev/v1/generate \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": {\n      \"title\": \"Building with MCP\",\n      \"author\": \"Taylor\",\n      \"tags\": [\"AI\", \"Tools\"],\n      \"accentColor\": \"#6366f1\"\n    }\n  }' \\\n  --output og-image.png\n\n\nPOST body fields:\n\ntemplate (string, required) — template ID\nparams (object, required) — template parameters\nwidth (number) — image width in pixels (default: 1200)\nheight (number) — image height in pixels (default: 630)\nformat (\"png\" | \"svg\" | \"pdf\") — output format (default: png)\nfontFamily (string) — any Google Font family name\nwebhook_url (string) — URL to POST when generation completes\n\nSave the response body directly to a .png file. The response Content-Type is image/png.\n\n3. Generate via URL (GET)\n\nUse this when the user needs a URL to embed in HTML meta tags, markdown, or anywhere an image URL is needed:\n\nhttps://api.snapog.dev/v1/og/blog-post?title=Building+with+MCP&author=Taylor&tags=AI,Tools\n\n\nThis URL itself serves the image. Parameters are query strings. Requires Authorization header or a signed URL.\n\n4. Preview a template (no auth needed)\ncurl https://api.snapog.dev/v1/preview/blog-post --output preview.png\n\n\nRenders the template with its default parameters. Useful for showing the user what a template looks like before customizing.\n\n5. Create a signed URL (for meta tags)\n\nSigned URLs let you embed images in <meta> tags without exposing the API key:\n\ncurl -X POST https://api.snapog.dev/v1/sign \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": { \"title\": \"My Post\" },\n    \"expiresIn\": 86400\n  }'\n\n\nReturns { \"url\": \"https://api.snapog.dev/v1/og/blog-post?title=...&token=...\" }. This URL works without authentication and can be placed directly in HTML:\n\n<meta property=\"og:image\" content=\"SIGNED_URL_HERE\" />\n\n6. Batch generate (multiple sizes)\n\nGenerate the same image in multiple sizes at once:\n\ncurl -X POST https://api.snapog.dev/v1/batch \\\n  -H \"Authorization: Bearer $SNAPOG_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"template\": \"blog-post\",\n    \"params\": { \"title\": \"My Post\" },\n    \"sizes\": [\"og\", \"twitter\", \"farcaster\", \"instagram-square\"]\n  }'\n\n\nSize presets: og (1200x630), twitter (1200x628), farcaster (1200x800), instagram-square (1080x1080), instagram-story (1080x1920), linkedin (1200x627), facebook (1200x630), pinterest (1000x1500).\n\nCommon Parameters\n\nMost templates accept these shared parameters:\n\ntitle (string, required) — main heading\naccentColor (color) — theme color, e.g. #6366f1\nlogo (url) — logo image URL\nfontFamily (string) — any Google Font, e.g. \"Space Grotesk\"\n\nEach template has additional specific parameters. Call /v1/templates to see the full schema for any template.\n\nTips\nChoosing a template: Match the content type — blog-post for articles, announcement for launches, github-repo for OSS projects, stats for metrics, quote for testimonials.\nColors: Pass hex colors like #6366f1. Most templates support accentColor for theming.\nArrays: For tags and changes, pass as JSON arrays: [\"tag1\", \"tag2\"].\nStats: The stats template expects a JSON array: [{\"label\": \"Users\", \"value\": \"10K\"}].\nImages: For logo, image, authorImage — pass a publicly accessible URL.\nOutput: Default is 1200x630 PNG (standard OG image size). Use width/height to customize.\nFormats: Use \"svg\" for vector output, \"pdf\" for print-ready documents.\nFull API Docs\n\nFor the complete API reference as markdown (useful for deeper integration):\n\ncurl https://api.snapog.dev/v1/docs"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/beameasy/snapog",
    "publisherUrl": "https://clawhub.ai/beameasy/snapog",
    "owner": "beameasy",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/snapog",
    "downloadUrl": "https://openagent3.xyz/downloads/snapog",
    "agentUrl": "https://openagent3.xyz/skills/snapog/agent",
    "manifestUrl": "https://openagent3.xyz/skills/snapog/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/snapog/agent.md"
  }
}