{
  "schemaVersion": "1.0",
  "item": {
    "slug": "auto-reply",
    "name": "auto-reply",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/mupengi-bot/auto-reply",
    "canonicalUrl": "https://clawhub.ai/mupengi-bot/auto-reply",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/auto-reply",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=auto-reply",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/auto-reply.js",
      "scripts/check-notify.js",
      "scripts/dm-watcher.js",
      "scripts/v2.js"
    ],
    "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",
      "slug": "auto-reply",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-11T16:26:10.438Z",
      "expiresAt": "2026-05-18T16:26:10.438Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=auto-reply",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=auto-reply",
        "contentDisposition": "attachment; filename=\"auto-reply-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "auto-reply"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/auto-reply"
    },
    "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/auto-reply",
    "agentPageUrl": "https://openagent3.xyz/skills/auto-reply/agent",
    "manifestUrl": "https://openagent3.xyz/skills/auto-reply/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/auto-reply/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": "Instagram DM Auto-Reply 🐧",
        "body": "v2.js (Internal API) based. 0 browser snapshots, CDP cookie extraction → Instagram REST API direct calls."
      },
      {
        "title": "Prerequisites",
        "body": "OpenClaw browser running (port 18800)\nInstagram tab open and logged in\nws npm package (npm i -g ws or local)"
      },
      {
        "title": "Script List",
        "body": "ScriptPurposescripts/v2.jsDM CLI (inbox, unread, check, read, reply)scripts/auto-reply.jsRead dm-alert.json, security check, return reply metadatascripts/check-notify.jsCheck new DM notifications (for cron, state file based)scripts/dm-watcher.jsReal-time DM detection daemon (15s polling)"
      },
      {
        "title": "1. Check DMs",
        "body": "node scripts/v2.js check        # unread count (lightest)\nnode scripts/v2.js unread       # unread DM list\nnode scripts/v2.js inbox        # full DM list"
      },
      {
        "title": "2. Read Messages",
        "body": "node scripts/v2.js read \"<username>\" -l 5"
      },
      {
        "title": "3. Reply",
        "body": "node scripts/v2.js reply \"<username>\" \"message content\"\n\nOn API failure, returns JSON with method: \"use_browser\" + threadUrl → fallback to browser tool."
      },
      {
        "title": "4. Notification Check (cron integration)",
        "body": "node scripts/check-notify.js\n\nIf new DMs: outputs 📩 새 DM N건: ...\nIf none: outputs no_new\nUses state file dm-state.json to prevent duplicates"
      },
      {
        "title": "5. Auto-Reply Flow",
        "body": "node scripts/auto-reply.js\n\nRead dm-alert.json (created by dm-watcher)\nRun security check on each DM\nReturn results: needs_reply / security_alert / skipped\nAI generates replies for needs_reply DMs → send via v2.js reply"
      },
      {
        "title": "6. Real-time Detection Daemon",
        "body": "node scripts/dm-watcher.js              # detection only\nnode scripts/dm-watcher.js --auto-reply  # includes Discord notification\n\nPolls v2.js check every 15s. On new DM detection, writes dm-alert.json + Discord DM notification."
      },
      {
        "title": "Security Check (Injection Rejection)",
        "body": "auto-reply.js's SECURITY_PATTERNS detects:\n\nPrompt Injection: \"ignore previous\", \"system prompt\", \"you are now\", \"act as\", \"pretend\"\nJailbreak Attempts: \"override\", \"jailbreak\", \"DAN mode\", \"bypass\"\nSensitive Info Requests: \"secret key\", \"private key\", \"seed phrase\", \"wallet address\"\nCode Execution Attempts: \"execute command\", \"run script\", \"eval(\", \"rm -rf\", \"sudo\"\nSocial Engineering: \"simulation mode\", zero-width characters\n\nOn threat detection → don't reply, return security_alert. Separate notification sent."
      },
      {
        "title": "Cron Setup Example",
        "body": "# Check DMs every 5 minutes\n- schedule: \"*/5 * * * *\"\n  command: \"node /path/to/scripts/check-notify.js\"\n  systemEvent: true\n\n# Or dm-watcher daemon for continuous monitoring\n- schedule: \"@reboot\"\n  command: \"node /path/to/scripts/dm-watcher.js --auto-reply\"\n  background: true"
      },
      {
        "title": "Token Efficiency",
        "body": "inbox/check: exec 1 call (~500 tokens)\nreply: exec 1 call (~200 tokens)\nbrowser snapshots: 0\n\n🐧 Built by 무펭이 — Mupengism ecosystem skill"
      }
    ],
    "body": "Instagram DM Auto-Reply 🐧\n\nv2.js (Internal API) based. 0 browser snapshots, CDP cookie extraction → Instagram REST API direct calls.\n\nPrerequisites\nOpenClaw browser running (port 18800)\nInstagram tab open and logged in\nws npm package (npm i -g ws or local)\nScript List\nScript\tPurpose\nscripts/v2.js\tDM CLI (inbox, unread, check, read, reply)\nscripts/auto-reply.js\tRead dm-alert.json, security check, return reply metadata\nscripts/check-notify.js\tCheck new DM notifications (for cron, state file based)\nscripts/dm-watcher.js\tReal-time DM detection daemon (15s polling)\nCore Workflows\n1. Check DMs\nnode scripts/v2.js check        # unread count (lightest)\nnode scripts/v2.js unread       # unread DM list\nnode scripts/v2.js inbox        # full DM list\n\n2. Read Messages\nnode scripts/v2.js read \"<username>\" -l 5\n\n3. Reply\nnode scripts/v2.js reply \"<username>\" \"message content\"\n\n\nOn API failure, returns JSON with method: \"use_browser\" + threadUrl → fallback to browser tool.\n\n4. Notification Check (cron integration)\nnode scripts/check-notify.js\n\nIf new DMs: outputs 📩 새 DM N건: ...\nIf none: outputs no_new\nUses state file dm-state.json to prevent duplicates\n5. Auto-Reply Flow\nnode scripts/auto-reply.js\n\nRead dm-alert.json (created by dm-watcher)\nRun security check on each DM\nReturn results: needs_reply / security_alert / skipped\nAI generates replies for needs_reply DMs → send via v2.js reply\n6. Real-time Detection Daemon\nnode scripts/dm-watcher.js              # detection only\nnode scripts/dm-watcher.js --auto-reply  # includes Discord notification\n\n\nPolls v2.js check every 15s. On new DM detection, writes dm-alert.json + Discord DM notification.\n\nSecurity Check (Injection Rejection)\n\nauto-reply.js's SECURITY_PATTERNS detects:\n\nPrompt Injection: \"ignore previous\", \"system prompt\", \"you are now\", \"act as\", \"pretend\"\nJailbreak Attempts: \"override\", \"jailbreak\", \"DAN mode\", \"bypass\"\nSensitive Info Requests: \"secret key\", \"private key\", \"seed phrase\", \"wallet address\"\nCode Execution Attempts: \"execute command\", \"run script\", \"eval(\", \"rm -rf\", \"sudo\"\nSocial Engineering: \"simulation mode\", zero-width characters\n\nOn threat detection → don't reply, return security_alert. Separate notification sent.\n\nCron Setup Example\n# Check DMs every 5 minutes\n- schedule: \"*/5 * * * *\"\n  command: \"node /path/to/scripts/check-notify.js\"\n  systemEvent: true\n\n# Or dm-watcher daemon for continuous monitoring\n- schedule: \"@reboot\"\n  command: \"node /path/to/scripts/dm-watcher.js --auto-reply\"\n  background: true\n\nToken Efficiency\ninbox/check: exec 1 call (~500 tokens)\nreply: exec 1 call (~200 tokens)\nbrowser snapshots: 0\n\n🐧 Built by 무펭이 — Mupengism ecosystem skill"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mupengi-bot/auto-reply",
    "publisherUrl": "https://clawhub.ai/mupengi-bot/auto-reply",
    "owner": "mupengi-bot",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/auto-reply",
    "downloadUrl": "https://openagent3.xyz/downloads/auto-reply",
    "agentUrl": "https://openagent3.xyz/skills/auto-reply/agent",
    "manifestUrl": "https://openagent3.xyz/skills/auto-reply/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/auto-reply/agent.md"
  }
}