{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gif-whatsapp",
    "name": "Gif Whatsapp",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Shaharsha/gif-whatsapp",
    "canonicalUrl": "https://clawhub.ai/Shaharsha/gif-whatsapp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gif-whatsapp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gif-whatsapp",
    "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-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/gif-whatsapp"
    },
    "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/gif-whatsapp",
    "agentPageUrl": "https://openagent3.xyz/skills/gif-whatsapp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gif-whatsapp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gif-whatsapp/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": "GIF Sender",
        "body": "Send GIFs naturally in WhatsApp conversations."
      },
      {
        "title": "CRITICAL: WhatsApp GIF Workflow",
        "body": "WhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:\n\nDownload the GIF\nConvert to MP4\nSend with gifPlayback: true"
      },
      {
        "title": "Step 1: Search for GIF",
        "body": "gifgrep \"SEARCH QUERY\" --max 5 --format url\n\nSearch in English for best results.\n\nAlways get 5 results and pick the best one based on the filename/description - don't just take the first result."
      },
      {
        "title": "Step 2: Download the GIF",
        "body": "curl -sL \"GIF_URL\" -o /tmp/gif.gif"
      },
      {
        "title": "Step 3: Convert to MP4",
        "body": "ffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf \"scale=trunc(iw/2)*2:trunc(ih/2)*2\" /tmp/gif.mp4 -y"
      },
      {
        "title": "Step 4: Send via message tool",
        "body": "message action=send to=NUMBER message=\"‎\" filePath=/tmp/gif.mp4 gifPlayback=true\n\nNote: Use invisible character ‎ (left-to-right mark, U+200E) as message to send GIF without visible caption."
      },
      {
        "title": "One-liner Example",
        "body": "# Search\ngifgrep \"thumbs up\" --max 3 --format url\n\n# Pick best URL, then:\ncurl -sL \"https://media.tenor.com/xxx.gif\" -o /tmp/g.gif && \\\nffmpeg -i /tmp/g.gif -movflags faststart -pix_fmt yuv420p -vf \"scale=trunc(iw/2)*2:trunc(ih/2)*2\" /tmp/g.mp4 -y 2>/dev/null\n\n# Then send with message tool, gifPlayback=true"
      },
      {
        "title": "When to Send GIFs",
        "body": "✅ Good times:\n\nUser asks for a GIF\nCelebrating good news\nFunny reactions\nExpressing emotions (excitement, facepalm, etc.)\n\n❌ Don't overuse:\n\nOne GIF per context is enough\nNot every message needs a GIF"
      },
      {
        "title": "Popular Search Terms",
        "body": "EmotionSearch TermsHappycelebration, party, dancing, excitedApprovalthumbs up, nice, good job, applauseFunnylaugh, lol, haha, funnyShockedmind blown, shocked, surprised, wowSadcrying, sad, disappointedFrustratedfacepalm, ugh, annoyedLoveheart, love, hugCoolsunglasses, cool, awesome"
      },
      {
        "title": "Security & Safety Notes",
        "body": "Source domains: gifgrep only searches trusted GIF providers (Tenor, Giphy)\nFile handling: All downloads go to /tmp and are overwritten each time (-y flag)\nEmpty caption: The ‎ character (U+200E, Left-to-Right Mark) is used as an invisible caption so WhatsApp sends the GIF without visible text. This is a standard Unicode control character, not an injection technique\nWhatsApp integration: Uses the platform's built-in message tool — no separate WhatsApp credentials needed\nffmpeg safety: Processes only GIF files from trusted providers; no arbitrary file execution"
      },
      {
        "title": "Why This Works",
        "body": "WhatsApp converts all GIFs to MP4 internally\nDirect Tenor/Giphy URLs often fail\nMP4 with gifPlayback=true displays as looping GIF\nSmall file size = fast delivery"
      }
    ],
    "body": "GIF Sender\n\nSend GIFs naturally in WhatsApp conversations.\n\nCRITICAL: WhatsApp GIF Workflow\n\nWhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:\n\nDownload the GIF\nConvert to MP4\nSend with gifPlayback: true\nComplete Workflow\nStep 1: Search for GIF\ngifgrep \"SEARCH QUERY\" --max 5 --format url\n\n\nSearch in English for best results.\n\nAlways get 5 results and pick the best one based on the filename/description - don't just take the first result.\n\nStep 2: Download the GIF\ncurl -sL \"GIF_URL\" -o /tmp/gif.gif\n\nStep 3: Convert to MP4\nffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf \"scale=trunc(iw/2)*2:trunc(ih/2)*2\" /tmp/gif.mp4 -y\n\nStep 4: Send via message tool\nmessage action=send to=NUMBER message=\"‎\" filePath=/tmp/gif.mp4 gifPlayback=true\n\n\nNote: Use invisible character ‎ (left-to-right mark, U+200E) as message to send GIF without visible caption.\n\nOne-liner Example\n# Search\ngifgrep \"thumbs up\" --max 3 --format url\n\n# Pick best URL, then:\ncurl -sL \"https://media.tenor.com/xxx.gif\" -o /tmp/g.gif && \\\nffmpeg -i /tmp/g.gif -movflags faststart -pix_fmt yuv420p -vf \"scale=trunc(iw/2)*2:trunc(ih/2)*2\" /tmp/g.mp4 -y 2>/dev/null\n\n# Then send with message tool, gifPlayback=true\n\nWhen to Send GIFs\n\n✅ Good times:\n\nUser asks for a GIF\nCelebrating good news\nFunny reactions\nExpressing emotions (excitement, facepalm, etc.)\n\n❌ Don't overuse:\n\nOne GIF per context is enough\nNot every message needs a GIF\nPopular Search Terms\nEmotion\tSearch Terms\nHappy\tcelebration, party, dancing, excited\nApproval\tthumbs up, nice, good job, applause\nFunny\tlaugh, lol, haha, funny\nShocked\tmind blown, shocked, surprised, wow\nSad\tcrying, sad, disappointed\nFrustrated\tfacepalm, ugh, annoyed\nLove\theart, love, hug\nCool\tsunglasses, cool, awesome\nSecurity & Safety Notes\nSource domains: gifgrep only searches trusted GIF providers (Tenor, Giphy)\nFile handling: All downloads go to /tmp and are overwritten each time (-y flag)\nEmpty caption: The ‎ character (U+200E, Left-to-Right Mark) is used as an invisible caption so WhatsApp sends the GIF without visible text. This is a standard Unicode control character, not an injection technique\nWhatsApp integration: Uses the platform's built-in message tool — no separate WhatsApp credentials needed\nffmpeg safety: Processes only GIF files from trusted providers; no arbitrary file execution\nWhy This Works\nWhatsApp converts all GIFs to MP4 internally\nDirect Tenor/Giphy URLs often fail\nMP4 with gifPlayback=true displays as looping GIF\nSmall file size = fast delivery"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Shaharsha/gif-whatsapp",
    "publisherUrl": "https://clawhub.ai/Shaharsha/gif-whatsapp",
    "owner": "Shaharsha",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gif-whatsapp",
    "downloadUrl": "https://openagent3.xyz/downloads/gif-whatsapp",
    "agentUrl": "https://openagent3.xyz/skills/gif-whatsapp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gif-whatsapp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gif-whatsapp/agent.md"
  }
}