{
  "schemaVersion": "1.0",
  "item": {
    "slug": "shellmail",
    "name": "ShellMail - Email Built for AI Agents",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/aaronbatchelder/shellmail",
    "canonicalUrl": "https://clawhub.ai/aaronbatchelder/shellmail",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/shellmail",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shellmail",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "skill.json",
      "scripts/shellmail.sh"
    ],
    "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": "shellmail",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-08T19:12:27.366Z",
      "expiresAt": "2026-05-15T19:12:27.366Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shellmail",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shellmail",
        "contentDisposition": "attachment; filename=\"shellmail-1.0.12.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "shellmail"
      },
      "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/shellmail"
    },
    "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/shellmail",
    "agentPageUrl": "https://openagent3.xyz/skills/shellmail/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shellmail/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shellmail/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": "ShellMail",
        "body": "Email for AI agents via shellmail.ai. Create inboxes, receive mail, extract OTPs automatically."
      },
      {
        "title": "⚠️ Security & Privacy Notice",
        "body": "This skill requires a sensitive SHELLMAIL_TOKEN that grants full access to your inbox and OTPs.\n\nWhen you set up this skill for the first time, you'll be instructed to save the token into agent configuration using gateway config.patch. This means:\n\nThe agent will retain persistent access to your ShellMail inbox\nThe token remains active until you explicitly revoke it or remove it from config\nOnly proceed if you fully trust shellmail.ai and understand these privacy implications\n\nBest practices:\n\nUse ShellMail for agent-related activities only, not personal email\nUse disposable/separate recovery emails when possible\nReview the gateway config.patch command output before confirming\nRevoke access when you no longer need this skill"
      },
      {
        "title": "First-Time Setup",
        "body": "If no token is configured:\n\nAsk user for desired email name (e.g., \"atlas\") and a recovery email\n\nOr use auto for the name to generate a random address (e.g., \"swift-reef-4821\")\n\n\nRun: {baseDir}/scripts/shellmail.sh create <name> <recovery_email>\nIf the address is already taken:\n\nIf the user says it was their old address: try creating with the same recovery email — deleted addresses are held for 14 days and can be reclaimed\nOtherwise: suggest a different name or use auto\nDo NOT suggest recovery unless the user confirms it's their previous inbox\n\n\nSave the returned token:\n\ngateway config.patch {\"skills\":{\"entries\":{\"shellmail\":{\"env\":{\"SHELLMAIL_TOKEN\":\"sm_...\"}}}}}\n\n⚠️ Important: Before running this command, explain to the user:\n\nThis saves the token into agent configuration for persistent access\nThe agent will retain access to their inbox/OTPs until the token is removed or revoked\nThey should only proceed if they trust shellmail.ai and understand the privacy implications\nShow them the exact command and ask for confirmation before executing\n\nTell user to save the token safely — it won't be shown again\nSuggest user send a test email to their new address to verify it's working\nOnce they confirm, run inbox to show the test email arrived"
      },
      {
        "title": "Token Recovery",
        "body": "Only use recovery if the user explicitly says they lost access to an existing inbox they own:\n\n{baseDir}/scripts/shellmail.sh recover <address@shellmail.ai> <recovery_email>\n\nThis sends a new token to the recovery email on file. Do not suggest this for \"address taken\" errors."
      },
      {
        "title": "Commands",
        "body": "{baseDir}/scripts/shellmail.sh <command>"
      },
      {
        "title": "Check Inbox",
        "body": "{baseDir}/scripts/shellmail.sh inbox\n{baseDir}/scripts/shellmail.sh inbox --unread"
      },
      {
        "title": "Read Email",
        "body": "{baseDir}/scripts/shellmail.sh read <email_id>"
      },
      {
        "title": "Get OTP Code",
        "body": "# Get latest OTP\n{baseDir}/scripts/shellmail.sh otp\n\n# Wait up to 30 seconds for OTP\n{baseDir}/scripts/shellmail.sh otp --wait 30\n\n# Filter by sender\n{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com"
      },
      {
        "title": "Search Emails",
        "body": "{baseDir}/scripts/shellmail.sh search --query \"verification\"\n{baseDir}/scripts/shellmail.sh search --otp\n{baseDir}/scripts/shellmail.sh search --from stripe.com"
      },
      {
        "title": "Other Commands",
        "body": "{baseDir}/scripts/shellmail.sh mark-read <id>\n{baseDir}/scripts/shellmail.sh archive <id>\n{baseDir}/scripts/shellmail.sh delete <id>\n{baseDir}/scripts/shellmail.sh health"
      },
      {
        "title": "Common Patterns",
        "body": "User says \"check my email\":\n\n{baseDir}/scripts/shellmail.sh inbox --unread\n\nUser says \"get the verification code\":\n\n{baseDir}/scripts/shellmail.sh otp --wait 30\n\nUser says \"wait for GitHub OTP\":\n\n{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com"
      },
      {
        "title": "Revoking Access",
        "body": "If the user wants to revoke the skill's access to their ShellMail inbox:"
      },
      {
        "title": "Remove Token from Config",
        "body": "gateway config.patch '{\"skills\":{\"entries\":{\"shellmail\":{\"env\":{\"SHELLMAIL_TOKEN\":\"\"}}}}}'"
      },
      {
        "title": "Delete Account Entirely",
        "body": "{baseDir}/scripts/shellmail.sh delete-account\n\nNote: Deleted addresses enter a 14-day hold window and can only be reclaimed by the original owner using the recovery email."
      },
      {
        "title": "API Reference",
        "body": "Base URL: https://shellmail.ai\n\nAll endpoints use Authorization: Bearer $SHELLMAIL_TOKEN\n\nEndpointMethodDescription/api/mailGETList emails (?unread=true&limit=50)/api/mail/:idGETRead full email/api/mail/:idPATCHUpdate {is_read, is_archived}/api/mail/:idDELETEDelete email/api/mail/otpGETGet OTP (?timeout=30000&from=domain)/api/mail/searchGETSearch (?q=text&from=domain&has_otp=true)/api/addressesPOSTCreate {local, recovery_email}"
      }
    ],
    "body": "ShellMail\n\nEmail for AI agents via shellmail.ai. Create inboxes, receive mail, extract OTPs automatically.\n\n⚠️ Security & Privacy Notice\n\nThis skill requires a sensitive SHELLMAIL_TOKEN that grants full access to your inbox and OTPs.\n\nWhen you set up this skill for the first time, you'll be instructed to save the token into agent configuration using gateway config.patch. This means:\n\nThe agent will retain persistent access to your ShellMail inbox\nThe token remains active until you explicitly revoke it or remove it from config\nOnly proceed if you fully trust shellmail.ai and understand these privacy implications\n\nBest practices:\n\nUse ShellMail for agent-related activities only, not personal email\nUse disposable/separate recovery emails when possible\nReview the gateway config.patch command output before confirming\nRevoke access when you no longer need this skill\nFirst-Time Setup\n\nIf no token is configured:\n\nAsk user for desired email name (e.g., \"atlas\") and a recovery email\nOr use auto for the name to generate a random address (e.g., \"swift-reef-4821\")\nRun: {baseDir}/scripts/shellmail.sh create <name> <recovery_email>\nIf the address is already taken:\nIf the user says it was their old address: try creating with the same recovery email — deleted addresses are held for 14 days and can be reclaimed\nOtherwise: suggest a different name or use auto\nDo NOT suggest recovery unless the user confirms it's their previous inbox\nSave the returned token:\ngateway config.patch {\"skills\":{\"entries\":{\"shellmail\":{\"env\":{\"SHELLMAIL_TOKEN\":\"sm_...\"}}}}}\n\n\n⚠️ Important: Before running this command, explain to the user:\n\nThis saves the token into agent configuration for persistent access\nThe agent will retain access to their inbox/OTPs until the token is removed or revoked\nThey should only proceed if they trust shellmail.ai and understand the privacy implications\nShow them the exact command and ask for confirmation before executing\nTell user to save the token safely — it won't be shown again\nSuggest user send a test email to their new address to verify it's working\nOnce they confirm, run inbox to show the test email arrived\nToken Recovery\n\nOnly use recovery if the user explicitly says they lost access to an existing inbox they own:\n\n{baseDir}/scripts/shellmail.sh recover <address@shellmail.ai> <recovery_email>\n\n\nThis sends a new token to the recovery email on file. Do not suggest this for \"address taken\" errors.\n\nCommands\n{baseDir}/scripts/shellmail.sh <command>\n\nCheck Inbox\n{baseDir}/scripts/shellmail.sh inbox\n{baseDir}/scripts/shellmail.sh inbox --unread\n\nRead Email\n{baseDir}/scripts/shellmail.sh read <email_id>\n\nGet OTP Code\n# Get latest OTP\n{baseDir}/scripts/shellmail.sh otp\n\n# Wait up to 30 seconds for OTP\n{baseDir}/scripts/shellmail.sh otp --wait 30\n\n# Filter by sender\n{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com\n\nSearch Emails\n{baseDir}/scripts/shellmail.sh search --query \"verification\"\n{baseDir}/scripts/shellmail.sh search --otp\n{baseDir}/scripts/shellmail.sh search --from stripe.com\n\nOther Commands\n{baseDir}/scripts/shellmail.sh mark-read <id>\n{baseDir}/scripts/shellmail.sh archive <id>\n{baseDir}/scripts/shellmail.sh delete <id>\n{baseDir}/scripts/shellmail.sh health\n\nCommon Patterns\n\nUser says \"check my email\":\n\n{baseDir}/scripts/shellmail.sh inbox --unread\n\n\nUser says \"get the verification code\":\n\n{baseDir}/scripts/shellmail.sh otp --wait 30\n\n\nUser says \"wait for GitHub OTP\":\n\n{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com\n\nRevoking Access\n\nIf the user wants to revoke the skill's access to their ShellMail inbox:\n\nRemove Token from Config\ngateway config.patch '{\"skills\":{\"entries\":{\"shellmail\":{\"env\":{\"SHELLMAIL_TOKEN\":\"\"}}}}}'\n\nDelete Account Entirely\n{baseDir}/scripts/shellmail.sh delete-account\n\n\nNote: Deleted addresses enter a 14-day hold window and can only be reclaimed by the original owner using the recovery email.\n\nAPI Reference\n\nBase URL: https://shellmail.ai\n\nAll endpoints use Authorization: Bearer $SHELLMAIL_TOKEN\n\nEndpoint\tMethod\tDescription\n/api/mail\tGET\tList emails (?unread=true&limit=50)\n/api/mail/:id\tGET\tRead full email\n/api/mail/:id\tPATCH\tUpdate {is_read, is_archived}\n/api/mail/:id\tDELETE\tDelete email\n/api/mail/otp\tGET\tGet OTP (?timeout=30000&from=domain)\n/api/mail/search\tGET\tSearch (?q=text&from=domain&has_otp=true)\n/api/addresses\tPOST\tCreate {local, recovery_email}"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/aaronbatchelder/shellmail",
    "publisherUrl": "https://clawhub.ai/aaronbatchelder/shellmail",
    "owner": "aaronbatchelder",
    "version": "1.0.12",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/shellmail",
    "downloadUrl": "https://openagent3.xyz/downloads/shellmail",
    "agentUrl": "https://openagent3.xyz/skills/shellmail/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shellmail/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shellmail/agent.md"
  }
}