{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dotld",
    "name": "dotld",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/tedstonne/dotld",
    "canonicalUrl": "https://clawhub.ai/tedstonne/dotld",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/dotld",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dotld",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/cli-reference.md",
      "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",
      "slug": "dotld",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-11T22:14:48.408Z",
      "expiresAt": "2026-05-18T22:14:48.408Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dotld",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dotld",
        "contentDisposition": "attachment; filename=\"dotld-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "dotld"
      },
      "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/dotld"
    },
    "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/dotld",
    "agentPageUrl": "https://openagent3.xyz/skills/dotld/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dotld/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dotld/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": "Installation",
        "body": "If dotld is not already available on the machine, install it:\n\ncurl -fsSL https://raw.githubusercontent.com/tedstonne/dotld/main/scripts/install.sh | bash"
      },
      {
        "title": "Prerequisites",
        "body": "dotld requires a Dynadot production API key. The key is resolved in this order:\n\n--dynadot-key <key> flag (also auto-saves to config for future runs)\nDYNADOT_API_PRODUCTION_KEY environment variable\nSaved config at ~/.config/dotld/config.json\n\nGet a key at: https://www.dynadot.com/account/domain/setting/api.html\n\nIf the key is missing, dotld exits with an error and a link to the key page."
      },
      {
        "title": "Exact domain lookup",
        "body": "When the input contains a dot, dotld checks that specific domain:\n\ndotld example.com\n\nOutput:\n\nexample.com · Taken\n\nOr if available:\n\nexample.com · $9.99 · https://www.dynadot.com/domain/search?domain=example.com&rscreg=github"
      },
      {
        "title": "Keyword expansion",
        "body": "When the input has no dot, dotld auto-expands across 9 popular TLDs — com, net, org, io, ai, co, app, dev, sh:\n\ndotld acme\n\nOutput:\n\nacme\n├─ acme.com · Taken\n├─ acme.net · Taken\n├─ acme.org · Taken\n├─ acme.io  · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github\n├─ acme.ai  · Taken\n├─ acme.co  · Taken\n├─ acme.app · Taken\n├─ acme.dev · Taken\n└─ acme.sh  · Taken"
      },
      {
        "title": "Multiple domains at once",
        "body": "Pass multiple arguments or use --file:\n\ndotld acme.com startup.io mybrand\n\ndotld --file domains.txt"
      },
      {
        "title": "Output Interpretation",
        "body": "domain · Taken — registered, not available\ndomain · $39.99 · https://... — available with registration price and buy link\nPrices are in USD"
      },
      {
        "title": "Flags",
        "body": "FlagDescription--jsonOutput structured JSON instead of the tree table--file <path>Read domains from a file (one per line)--dynadot-key <key>Provide API key (auto-saved to config)--timeout <duration>Request timeout, e.g. 5s, 500ms (default: 10s)--currency USDCurrency for prices (only USD supported in v1)"
      },
      {
        "title": "Workflow Guidance",
        "body": "User has a specific domain → run exact lookup:\n\ndotld coolstartup.com\n\nUser has a brand name or keyword → run keyword expansion:\n\ndotld coolstartup\n\nUser wants to brainstorm → suggest name variations, then batch-check them:\n\ndotld coolstartup launchpad rocketship\n\nPresent results as a ranked list: show available domains sorted by price, include buy links. Suggest next steps — open a buy link, check more TLDs, try name variations.\n\nBatch from file → when the user has a list:\n\ndotld --file domains.txt\n\nStructured output → when parsing results programmatically:\n\ndotld acme --json"
      },
      {
        "title": "Check if a domain is taken",
        "body": "$ dotld example.com\nexample.com · Taken"
      },
      {
        "title": "Explore TLDs for a keyword",
        "body": "$ dotld acme\nacme\n├─ acme.com · Taken\n├─ acme.net · Taken\n├─ acme.org · Taken\n├─ acme.io  · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github\n├─ acme.ai  · Taken\n├─ acme.co  · Taken\n├─ acme.app · Taken\n├─ acme.dev · Taken\n└─ acme.sh  · Taken"
      },
      {
        "title": "JSON output for scripting",
        "body": "$ dotld example.com --json\n{\n  \"results\": [\n    {\n      \"domain\": \"example.com\",\n      \"available\": false,\n      \"price\": null,\n      \"currency\": \"USD\",\n      \"buyUrl\": null,\n      \"cached\": false,\n      \"quotedAt\": \"2026-02-21T00:00:00.000Z\"\n    }\n  ]\n}"
      }
    ],
    "body": "dotld — Domain Availability & Pricing\nInstallation\n\nIf dotld is not already available on the machine, install it:\n\ncurl -fsSL https://raw.githubusercontent.com/tedstonne/dotld/main/scripts/install.sh | bash\n\nPrerequisites\n\ndotld requires a Dynadot production API key. The key is resolved in this order:\n\n--dynadot-key <key> flag (also auto-saves to config for future runs)\nDYNADOT_API_PRODUCTION_KEY environment variable\nSaved config at ~/.config/dotld/config.json\n\nGet a key at: https://www.dynadot.com/account/domain/setting/api.html\n\nIf the key is missing, dotld exits with an error and a link to the key page.\n\nModes of Operation\nExact domain lookup\n\nWhen the input contains a dot, dotld checks that specific domain:\n\ndotld example.com\n\n\nOutput:\n\nexample.com · Taken\n\n\nOr if available:\n\nexample.com · $9.99 · https://www.dynadot.com/domain/search?domain=example.com&rscreg=github\n\nKeyword expansion\n\nWhen the input has no dot, dotld auto-expands across 9 popular TLDs — com, net, org, io, ai, co, app, dev, sh:\n\ndotld acme\n\n\nOutput:\n\nacme\n├─ acme.com · Taken\n├─ acme.net · Taken\n├─ acme.org · Taken\n├─ acme.io  · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github\n├─ acme.ai  · Taken\n├─ acme.co  · Taken\n├─ acme.app · Taken\n├─ acme.dev · Taken\n└─ acme.sh  · Taken\n\nMultiple domains at once\n\nPass multiple arguments or use --file:\n\ndotld acme.com startup.io mybrand\n\ndotld --file domains.txt\n\nOutput Interpretation\ndomain · Taken — registered, not available\ndomain · $39.99 · https://... — available with registration price and buy link\nPrices are in USD\nFlags\nFlag\tDescription\n--json\tOutput structured JSON instead of the tree table\n--file <path>\tRead domains from a file (one per line)\n--dynadot-key <key>\tProvide API key (auto-saved to config)\n--timeout <duration>\tRequest timeout, e.g. 5s, 500ms (default: 10s)\n--currency USD\tCurrency for prices (only USD supported in v1)\nWorkflow Guidance\n\nUser has a specific domain → run exact lookup:\n\ndotld coolstartup.com\n\n\nUser has a brand name or keyword → run keyword expansion:\n\ndotld coolstartup\n\n\nUser wants to brainstorm → suggest name variations, then batch-check them:\n\ndotld coolstartup launchpad rocketship\n\n\nPresent results as a ranked list: show available domains sorted by price, include buy links. Suggest next steps — open a buy link, check more TLDs, try name variations.\n\nBatch from file → when the user has a list:\n\ndotld --file domains.txt\n\n\nStructured output → when parsing results programmatically:\n\ndotld acme --json\n\nExamples\nCheck if a domain is taken\n$ dotld example.com\nexample.com · Taken\n\nExplore TLDs for a keyword\n$ dotld acme\nacme\n├─ acme.com · Taken\n├─ acme.net · Taken\n├─ acme.org · Taken\n├─ acme.io  · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github\n├─ acme.ai  · Taken\n├─ acme.co  · Taken\n├─ acme.app · Taken\n├─ acme.dev · Taken\n└─ acme.sh  · Taken\n\nJSON output for scripting\n$ dotld example.com --json\n{\n  \"results\": [\n    {\n      \"domain\": \"example.com\",\n      \"available\": false,\n      \"price\": null,\n      \"currency\": \"USD\",\n      \"buyUrl\": null,\n      \"cached\": false,\n      \"quotedAt\": \"2026-02-21T00:00:00.000Z\"\n    }\n  ]\n}"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tedstonne/dotld",
    "publisherUrl": "https://clawhub.ai/tedstonne/dotld",
    "owner": "tedstonne",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dotld",
    "downloadUrl": "https://openagent3.xyz/downloads/dotld",
    "agentUrl": "https://openagent3.xyz/skills/dotld/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dotld/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dotld/agent.md"
  }
}