{
  "schemaVersion": "1.0",
  "item": {
    "slug": "thrd",
    "name": "Thrd Skill",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/SergioRico1/thrd",
    "canonicalUrl": "https://clawhub.ai/SergioRico1/thrd",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/thrd",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=thrd",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "references/api.md",
      "requirements.txt",
      "scripts/checkout.py",
      "scripts/onboard.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. 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/thrd"
    },
    "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/thrd",
    "agentPageUrl": "https://openagent3.xyz/skills/thrd/agent",
    "manifestUrl": "https://openagent3.xyz/skills/thrd/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/thrd/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": "Thrd Email Skill",
        "body": "This skill helps you create and operate an isolated inbox for an AI agent using thrd.email, without connecting your personal inbox.\n\nSafety by default: don't connect your primary inbox to an agent; use a dedicated agent inbox."
      },
      {
        "title": "Sync API Contract (Recommended Before Tool Use)",
        "body": "To avoid stale assumptions, refresh the OpenAPI contract and read info.version:\n\npython3 scripts/openapi_sync.py\npython3 scripts/openapi_sync.py --print-version\n\nThis uses HTTP cache validators (ETag/Last-Modified) and only re-downloads when changed."
      },
      {
        "title": "Provision a New Email Account",
        "body": "To create a new email account, run the onboarding script:\n\npython3 scripts/onboard.py --agent-name \"My Agent\" [--tenant-name \"My Company\"]\n\nThis prints a JSON payload to stdout with the new inbox data and a redacted API key by default.\n\nIf you explicitly need the one-time raw key in a trusted terminal:\n\npython3 scripts/onboard.py --agent-name \"My Agent\" --reveal-api-key\n\nSecurity note: Do not write your API key to disk. Store it in your runtime's secret manager and set THRD_API_KEY as an environment variable. (The rest of the tools require THRD_API_KEY; onboarding does not.)"
      },
      {
        "title": "Upgrade Plan (Billing)",
        "body": "To start paid billing for your current tenant, use the checkout script:\n\npython3 scripts/checkout.py <plan_name>\n\nPlans:\n\nsandbox -> Sandbox Starter (9 EUR/month, raises Tier 1 monthly limit from 100 to 2,000 emails)\nlimited -> Tier 2\nverified -> Tier 3\n\nForward the resulting Stripe URL to your human owner for payment."
      },
      {
        "title": "Human Claiming (Verification)",
        "body": "Tier 3 (Verified Outbound) requires a responsible human linked via X.\n\nStart the flow: POST /v1/claim/x/start\nForward the claim_url to your human owner.\nCheck status: GET /v1/claim/x/status"
      },
      {
        "title": "Proof of Reasoning (PoR)",
        "body": "Cold outbound (Tier 3) may require a reasoning challenge to prevent spam.\n\nIf you receive a 428 por_required error, solve the logical challenge provided in the response.\nRe-send the request with por_token and por_answer."
      },
      {
        "title": "Manage Emails and Track Delivery",
        "body": "For detailed API usage (polling, sending, replying, trust scores, and checking delivery status), see references/api.md.\nNote: replies use reply-all behavior by default: they preserve historical CC and keep recipients from the latest inbound To line so participants are not dropped.\nTier2+ may add CC via cc[]. In Tier1, cc[] may only contain addresses already present in that thread's CC history.\nSecurity note: when Prompt Shield marks an inbound email as high-risk, Tier2/3 flows may require creating a short-lived security_ack_token (POST /v1/security/ack) before reply/send.\nQuota note: use GET /v1/usage to monitor monthly usage (used, remaining, state, reset_at) and avoid hitting hard limits mid-run."
      },
      {
        "title": "Wake-Up Strategy (Recommended)",
        "body": "Many LLM runtimes do not reliably maintain background polling. Use wake webhooks when possible:\n\nConfigure webhook: PUT /v1/wake/webhook\nRead status: GET /v1/wake/webhook\nDisable webhook: DELETE /v1/wake/webhook\n\nTHRD sends signed inbox.pending pings, then your runtime should immediately pull with GET /v1/events and ACK.\n\nFallback when webhooks are not available:\n\npython3 scripts/poll_daemon.py --cursor-file .thrd_cursor\n\nThis keeps pull-based delivery alive without requiring a public webhook endpoint."
      },
      {
        "title": "Tools",
        "body": "scripts/onboard.py: Instant provisioning of a new email inbox.\nscripts/checkout.py: Generate a Stripe Checkout URL for upgrades.\nscripts/openapi_sync.py: Refresh/cache latest OpenAPI and read current info.version.\nscripts/poll_daemon.py: Fallback long-poll daemon for runtimes without wake webhook support."
      }
    ],
    "body": "Thrd Email Skill\n\nThis skill helps you create and operate an isolated inbox for an AI agent using thrd.email, without connecting your personal inbox.\n\nSafety by default: don't connect your primary inbox to an agent; use a dedicated agent inbox.\n\nWorkflows\nSync API Contract (Recommended Before Tool Use)\n\nTo avoid stale assumptions, refresh the OpenAPI contract and read info.version:\n\npython3 scripts/openapi_sync.py\npython3 scripts/openapi_sync.py --print-version\n\n\nThis uses HTTP cache validators (ETag/Last-Modified) and only re-downloads when changed.\n\nProvision a New Email Account\n\nTo create a new email account, run the onboarding script:\n\npython3 scripts/onboard.py --agent-name \"My Agent\" [--tenant-name \"My Company\"]\n\n\nThis prints a JSON payload to stdout with the new inbox data and a redacted API key by default.\n\nIf you explicitly need the one-time raw key in a trusted terminal:\n\npython3 scripts/onboard.py --agent-name \"My Agent\" --reveal-api-key\n\n\nSecurity note: Do not write your API key to disk. Store it in your runtime's secret manager and set THRD_API_KEY as an environment variable. (The rest of the tools require THRD_API_KEY; onboarding does not.)\n\nUpgrade Plan (Billing)\n\nTo start paid billing for your current tenant, use the checkout script:\n\npython3 scripts/checkout.py <plan_name>\n\n\nPlans:\n\nsandbox -> Sandbox Starter (9 EUR/month, raises Tier 1 monthly limit from 100 to 2,000 emails)\nlimited -> Tier 2\nverified -> Tier 3\n\nForward the resulting Stripe URL to your human owner for payment.\n\nHuman Claiming (Verification)\n\nTier 3 (Verified Outbound) requires a responsible human linked via X.\n\nStart the flow: POST /v1/claim/x/start\nForward the claim_url to your human owner.\nCheck status: GET /v1/claim/x/status\nProof of Reasoning (PoR)\n\nCold outbound (Tier 3) may require a reasoning challenge to prevent spam.\n\nIf you receive a 428 por_required error, solve the logical challenge provided in the response.\nRe-send the request with por_token and por_answer.\nManage Emails and Track Delivery\n\nFor detailed API usage (polling, sending, replying, trust scores, and checking delivery status), see references/api.md. Note: replies use reply-all behavior by default: they preserve historical CC and keep recipients from the latest inbound To line so participants are not dropped. Tier2+ may add CC via cc[]. In Tier1, cc[] may only contain addresses already present in that thread's CC history. Security note: when Prompt Shield marks an inbound email as high-risk, Tier2/3 flows may require creating a short-lived security_ack_token (POST /v1/security/ack) before reply/send. Quota note: use GET /v1/usage to monitor monthly usage (used, remaining, state, reset_at) and avoid hitting hard limits mid-run.\n\nWake-Up Strategy (Recommended)\n\nMany LLM runtimes do not reliably maintain background polling. Use wake webhooks when possible:\n\nConfigure webhook: PUT /v1/wake/webhook\nRead status: GET /v1/wake/webhook\nDisable webhook: DELETE /v1/wake/webhook\n\nTHRD sends signed inbox.pending pings, then your runtime should immediately pull with GET /v1/events and ACK.\n\nFallback when webhooks are not available:\n\npython3 scripts/poll_daemon.py --cursor-file .thrd_cursor\n\n\nThis keeps pull-based delivery alive without requiring a public webhook endpoint.\n\nTools\nscripts/onboard.py: Instant provisioning of a new email inbox.\nscripts/checkout.py: Generate a Stripe Checkout URL for upgrades.\nscripts/openapi_sync.py: Refresh/cache latest OpenAPI and read current info.version.\nscripts/poll_daemon.py: Fallback long-poll daemon for runtimes without wake webhook support."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/SergioRico1/thrd",
    "publisherUrl": "https://clawhub.ai/SergioRico1/thrd",
    "owner": "SergioRico1",
    "version": "1.4.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/thrd",
    "downloadUrl": "https://openagent3.xyz/downloads/thrd",
    "agentUrl": "https://openagent3.xyz/skills/thrd/agent",
    "manifestUrl": "https://openagent3.xyz/skills/thrd/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/thrd/agent.md"
  }
}