{
  "schemaVersion": "1.0",
  "item": {
    "slug": "email-otp",
    "name": "Email OTP",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/etopro/email-otp",
    "canonicalUrl": "https://clawhub.ai/etopro/email-otp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/email-otp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=email-otp",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/tempmail_otp.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/email-otp"
    },
    "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/email-otp",
    "agentPageUrl": "https://openagent3.xyz/skills/email-otp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/email-otp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/email-otp/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Email OTP Skill",
        "body": "A skill for creating temporary email addresses and automatically extracting OTP codes and validation links from incoming emails. Uses the free mail.tm API (no API key required)."
      },
      {
        "title": "When to Use This Skill",
        "body": "Invoke this skill when the user asks to:\n\nCreate a temporary email address\nGet a disposable email for signup/verification\nCheck for OTP (one-time password) codes\nWait for email verification links\nMonitor an inbox for authentication codes"
      },
      {
        "title": "Quick Start",
        "body": "# Create a new temporary email\npython3 scripts/tempmail_otp.py create\n\n# Monitor for OTP codes (5 minute timeout)\npython3 scripts/tempmail_otp.py check\n\n# List current account and messages\npython3 scripts/tempmail_otp.py list"
      },
      {
        "title": "Create Account",
        "body": "python3 scripts/tempmail_otp.py create [OPTIONS]\n\nOptions:\n\n-e, --email ADDRESS - Custom full email address\n-d, --domain DOMAIN - Specific domain to use\n-p, --password PASSWORD - Account password (auto-generated if not specified)\n--json - Output as JSON\n\nExample:\n\npython3 scripts/tempmail_otp.py create --domain \"marcilzo.com\""
      },
      {
        "title": "Check for OTP/Links",
        "body": "python3 scripts/tempmail_otp.py check [OPTIONS]\n\nOptions:\n\n--timeout SECONDS - Max seconds to wait (default: 300)\n--poll SECONDS - Poll interval in seconds (default: 3)\n--sender EMAIL - Only accept emails from this sender\n--subject TEXT - Only accept emails with this in subject\n--pattern REGEX - Custom regex pattern for OTP extraction\n--once - Exit after first OTP found\n--json - Output messages as JSON\n\nExamples:\n\n# Wait up to 2 minutes for OTP\npython3 scripts/tempmail_otp.py check --timeout 120\n\n# Only accept emails from noreply@example.com\npython3 scripts/tempmail_otp.py check --sender \"noreply@example.com\"\n\n# Exit immediately after finding OTP\npython3 scripts/tempmail_otp.py check --once"
      },
      {
        "title": "List Account and Messages",
        "body": "python3 scripts/tempmail_otp.py list\n\nShows the current account details and all messages in the inbox with extracted links."
      },
      {
        "title": "List Available Domains",
        "body": "python3 scripts/tempmail_otp.py domains [--json]"
      },
      {
        "title": "Output Files",
        "body": "When an OTP or link is found, the script automatically saves them to the unified state directory:\n\n~/.tempmail_otp/last_otp - Contains the last extracted OTP code\n~/.tempmail_otp/last_link - Contains the first interesting validation link found\n~/.tempmail_otp/account.json - Account credentials (JWT token, email, password)\n\nAll state files are stored in ~/.tempmail_otp/ with restricted permissions (0600)."
      },
      {
        "title": "OTP Detection Patterns",
        "body": "The script automatically detects OTP codes using these patterns:\n\n6-8 digit numbers (most common)\n4 digit numbers\n\"code: XXXXXX\" format\n\"verification: XXXXXX\" format\n\"otp: XXXXXX\" format"
      },
      {
        "title": "Link Extraction",
        "body": "The script extracts all HTTP/HTTPS links from email HTML, filtering out:\n\nUnsubscribe links\nTracking links\nImage files (.png, .jpg, .gif)"
      },
      {
        "title": "State Management",
        "body": "All state is stored in a unified directory: ~/.tempmail_otp/\n\naccount.json - Account credentials and JWT token (created by create command)\nlast_otp - Most recent OTP code extracted (created by check command)\nlast_link - First validation link extracted (created by check command)\n\nFiles have restricted permissions (0600) for security. The check and list commands automatically use stored credentials."
      },
      {
        "title": "Design Rationale",
        "body": "The unified state directory follows best practices for CLI tools:\n\nNo project pollution - No temporary files are created in your working directory\nPredictable location - All state is in one place, easy to find and clean up\nCross-session persistence - Works from any directory on your system\nPermission safety - Sensitive credentials have proper file permissions\n\nTo reset all state: rm -rf ~/.tempmail_otp/"
      },
      {
        "title": "Typical Workflow",
        "body": "Create account - Generate a new temporary email address\nUse email - Provide the email during service signup\nMonitor inbox - Run the check command to wait for OTP/link\nExtract code - OTP is automatically displayed and saved to ~/.tempmail_otp/last_otp\nVerify - Use the OTP or link to complete verification"
      },
      {
        "title": "Example Session",
        "body": "# Create a temp email\n$ python3 scripts/tempmail_otp.py create\nEmail: a3b7c9d4@marcilzo.com\nPassword: f8e4d2a1-1234-5678-9abc-123456789abc\nDomain: marcilzo.com\n\nAccount saved to /home/user/.tempmail_otp/account.json\n\n# In another terminal, wait for OTP\n$ python3 scripts/tempmail_otp.py check --once\nMonitoring: a3b7c9d4@marcilzo.com\nTimeout: 300s | Poll interval: 3s\n--------------------------------------------------\n\n📧 New email from: noreply@service.com\n   Subject: Your verification code\n\n✅ OTP FOUND: 842197\nOTP saved to /home/user/.tempmail_otp/last_otp\n--------------------------------------------------"
      },
      {
        "title": "Error Handling",
        "body": "If email address is already taken, the script automatically retries with a new username\nNetwork errors are logged and the script continues polling\nInvalid account state prompts to recreate the account"
      },
      {
        "title": "API",
        "body": "This skill uses the mail.tm REST API:\n\nBase URL: https://api.mail.tm\nAuthentication: JWT Bearer token\nNo API key required"
      },
      {
        "title": "Notes",
        "body": "Temporary emails may expire after inactivity periods\nSome services may block temporary email domains\nThe script automatically handles account creation and JWT token management\nOTP patterns cover most common formats, but custom regex can be provided via --pattern"
      }
    ],
    "body": "Email OTP Skill\n\nA skill for creating temporary email addresses and automatically extracting OTP codes and validation links from incoming emails. Uses the free mail.tm API (no API key required).\n\nWhen to Use This Skill\n\nInvoke this skill when the user asks to:\n\nCreate a temporary email address\nGet a disposable email for signup/verification\nCheck for OTP (one-time password) codes\nWait for email verification links\nMonitor an inbox for authentication codes\nQuick Start\n# Create a new temporary email\npython3 scripts/tempmail_otp.py create\n\n# Monitor for OTP codes (5 minute timeout)\npython3 scripts/tempmail_otp.py check\n\n# List current account and messages\npython3 scripts/tempmail_otp.py list\n\nCommands\nCreate Account\npython3 scripts/tempmail_otp.py create [OPTIONS]\n\n\nOptions:\n\n-e, --email ADDRESS - Custom full email address\n-d, --domain DOMAIN - Specific domain to use\n-p, --password PASSWORD - Account password (auto-generated if not specified)\n--json - Output as JSON\n\nExample:\n\npython3 scripts/tempmail_otp.py create --domain \"marcilzo.com\"\n\nCheck for OTP/Links\npython3 scripts/tempmail_otp.py check [OPTIONS]\n\n\nOptions:\n\n--timeout SECONDS - Max seconds to wait (default: 300)\n--poll SECONDS - Poll interval in seconds (default: 3)\n--sender EMAIL - Only accept emails from this sender\n--subject TEXT - Only accept emails with this in subject\n--pattern REGEX - Custom regex pattern for OTP extraction\n--once - Exit after first OTP found\n--json - Output messages as JSON\n\nExamples:\n\n# Wait up to 2 minutes for OTP\npython3 scripts/tempmail_otp.py check --timeout 120\n\n# Only accept emails from noreply@example.com\npython3 scripts/tempmail_otp.py check --sender \"noreply@example.com\"\n\n# Exit immediately after finding OTP\npython3 scripts/tempmail_otp.py check --once\n\nList Account and Messages\npython3 scripts/tempmail_otp.py list\n\n\nShows the current account details and all messages in the inbox with extracted links.\n\nList Available Domains\npython3 scripts/tempmail_otp.py domains [--json]\n\nOutput Files\n\nWhen an OTP or link is found, the script automatically saves them to the unified state directory:\n\n~/.tempmail_otp/last_otp - Contains the last extracted OTP code\n~/.tempmail_otp/last_link - Contains the first interesting validation link found\n~/.tempmail_otp/account.json - Account credentials (JWT token, email, password)\n\nAll state files are stored in ~/.tempmail_otp/ with restricted permissions (0600).\n\nOTP Detection Patterns\n\nThe script automatically detects OTP codes using these patterns:\n\n6-8 digit numbers (most common)\n4 digit numbers\n\"code: XXXXXX\" format\n\"verification: XXXXXX\" format\n\"otp: XXXXXX\" format\nLink Extraction\n\nThe script extracts all HTTP/HTTPS links from email HTML, filtering out:\n\nUnsubscribe links\nTracking links\nImage files (.png, .jpg, .gif)\nState Management\n\nAll state is stored in a unified directory: ~/.tempmail_otp/\n\naccount.json - Account credentials and JWT token (created by create command)\nlast_otp - Most recent OTP code extracted (created by check command)\nlast_link - First validation link extracted (created by check command)\n\nFiles have restricted permissions (0600) for security. The check and list commands automatically use stored credentials.\n\nDesign Rationale\n\nThe unified state directory follows best practices for CLI tools:\n\nNo project pollution - No temporary files are created in your working directory\nPredictable location - All state is in one place, easy to find and clean up\nCross-session persistence - Works from any directory on your system\nPermission safety - Sensitive credentials have proper file permissions\n\nTo reset all state: rm -rf ~/.tempmail_otp/\n\nTypical Workflow\nCreate account - Generate a new temporary email address\nUse email - Provide the email during service signup\nMonitor inbox - Run the check command to wait for OTP/link\nExtract code - OTP is automatically displayed and saved to ~/.tempmail_otp/last_otp\nVerify - Use the OTP or link to complete verification\nExample Session\n# Create a temp email\n$ python3 scripts/tempmail_otp.py create\nEmail: a3b7c9d4@marcilzo.com\nPassword: f8e4d2a1-1234-5678-9abc-123456789abc\nDomain: marcilzo.com\n\nAccount saved to /home/user/.tempmail_otp/account.json\n\n# In another terminal, wait for OTP\n$ python3 scripts/tempmail_otp.py check --once\nMonitoring: a3b7c9d4@marcilzo.com\nTimeout: 300s | Poll interval: 3s\n--------------------------------------------------\n\n📧 New email from: noreply@service.com\n   Subject: Your verification code\n\n✅ OTP FOUND: 842197\nOTP saved to /home/user/.tempmail_otp/last_otp\n--------------------------------------------------\n\nError Handling\nIf email address is already taken, the script automatically retries with a new username\nNetwork errors are logged and the script continues polling\nInvalid account state prompts to recreate the account\nAPI\n\nThis skill uses the mail.tm REST API:\n\nBase URL: https://api.mail.tm\nAuthentication: JWT Bearer token\nNo API key required\nNotes\nTemporary emails may expire after inactivity periods\nSome services may block temporary email domains\nThe script automatically handles account creation and JWT token management\nOTP patterns cover most common formats, but custom regex can be provided via --pattern"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/etopro/email-otp",
    "publisherUrl": "https://clawhub.ai/etopro/email-otp",
    "owner": "etopro",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/email-otp",
    "downloadUrl": "https://openagent3.xyz/downloads/email-otp",
    "agentUrl": "https://openagent3.xyz/skills/email-otp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/email-otp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/email-otp/agent.md"
  }
}