{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cf-manager",
    "name": "Cloudflare Manager",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/rexlunae/cf-manager",
    "canonicalUrl": "https://clawhub.ai/rexlunae/cf-manager",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cf-manager",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cf-manager",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/cloudflare.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/cf-manager"
    },
    "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/cf-manager",
    "agentPageUrl": "https://openagent3.xyz/skills/cf-manager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cf-manager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cf-manager/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": "Cloudflare API Skill",
        "body": "Control Cloudflare infrastructure: DNS management, CDN, security, Workers, and more."
      },
      {
        "title": "Authentication",
        "body": "API token required. Get one from: https://dash.cloudflare.com/profile/api-tokens\n\nRecommended permissions:\n\nZone:Zone:Read\nZone:Zone:Edit\nZone:DNS:Read\nZone:DNS:Edit\n\nStore in ~/.config/cloudflare/token:\n\nmkdir -p ~/.config/cloudflare\necho -n \"YOUR_API_TOKEN\" > ~/.config/cloudflare/token\nchmod 600 ~/.config/cloudflare/token"
      },
      {
        "title": "Zones (Domains)",
        "body": "# List all zones\npython3 scripts/cloudflare.py zones list\n\n# Get zone details\npython3 scripts/cloudflare.py zones get <domain>\n\n# Add new zone\npython3 scripts/cloudflare.py zones add <domain>\n\n# Delete zone\npython3 scripts/cloudflare.py zones delete <domain>\n\n# Check zone status (pending/active)\npython3 scripts/cloudflare.py zones status <domain>\n\n# Purge cache\npython3 scripts/cloudflare.py zones purge <domain>\npython3 scripts/cloudflare.py zones purge <domain> --urls https://example.com/page"
      },
      {
        "title": "DNS Records",
        "body": "# List records for a zone\npython3 scripts/cloudflare.py dns list <domain>\n\n# Add record\npython3 scripts/cloudflare.py dns add <domain> --type A --name @ --content 1.2.3.4\npython3 scripts/cloudflare.py dns add <domain> --type CNAME --name www --content example.com\npython3 scripts/cloudflare.py dns add <domain> --type MX --name @ --content mail.example.com --priority 10\npython3 scripts/cloudflare.py dns add <domain> --type TXT --name @ --content \"v=spf1 include:_spf.google.com ~all\"\n\n# Update record\npython3 scripts/cloudflare.py dns update <domain> <record_id> --content 5.6.7.8\n\n# Delete record\npython3 scripts/cloudflare.py dns delete <domain> <record_id>\n\n# Proxy toggle (orange cloud on/off)\npython3 scripts/cloudflare.py dns proxy <domain> <record_id> --on\npython3 scripts/cloudflare.py dns proxy <domain> <record_id> --off"
      },
      {
        "title": "SSL/TLS",
        "body": "# Get SSL mode\npython3 scripts/cloudflare.py ssl get <domain>\n\n# Set SSL mode (off, flexible, full, strict)\npython3 scripts/cloudflare.py ssl set <domain> --mode full\n\n# Always use HTTPS\npython3 scripts/cloudflare.py ssl https <domain> --on"
      },
      {
        "title": "Page Rules",
        "body": "# List page rules\npython3 scripts/cloudflare.py rules list <domain>\n\n# Add redirect rule\npython3 scripts/cloudflare.py rules add <domain> --match \"example.com/*\" --redirect \"https://new.com/$1\"\n\n# Delete rule\npython3 scripts/cloudflare.py rules delete <domain> <rule_id>"
      },
      {
        "title": "Firewall",
        "body": "# List firewall rules\npython3 scripts/cloudflare.py firewall list <domain>\n\n# Block IP\npython3 scripts/cloudflare.py firewall block <domain> --ip 1.2.3.4 --note \"Spammer\"\n\n# Block country\npython3 scripts/cloudflare.py firewall block <domain> --country CN --note \"Block China\"\n\n# Whitelist IP\npython3 scripts/cloudflare.py firewall allow <domain> --ip 1.2.3.4\n\n# Challenge (captcha) for IP range\npython3 scripts/cloudflare.py firewall challenge <domain> --ip 1.2.3.0/24"
      },
      {
        "title": "Analytics",
        "body": "# Get traffic stats (last 24h)\npython3 scripts/cloudflare.py analytics <domain>\n\n# Get stats for date range\npython3 scripts/cloudflare.py analytics <domain> --since 2024-01-01 --until 2024-01-31"
      },
      {
        "title": "Workers (Serverless)",
        "body": "# List workers\npython3 scripts/cloudflare.py workers list\n\n# Deploy worker\npython3 scripts/cloudflare.py workers deploy <name> --script worker.js\n\n# Delete worker\npython3 scripts/cloudflare.py workers delete <name>"
      },
      {
        "title": "DNS Record Types",
        "body": "TypePurposeExampleAIPv4 address192.0.2.1AAAAIPv6 address2001:db8::1CNAMEAliaswww → example.comMXMail servermail.example.com (priority 10)TXTText/verificationv=spf1 ...NSNameserverns1.example.comSRVService_sip._tcp.example.comCAACertificate authorityletsencrypt.org"
      },
      {
        "title": "Proxy Status (Orange Cloud)",
        "body": "Proxied (on): Traffic goes through Cloudflare CDN — caching, DDoS protection, hides origin IP\nDNS only (off): Direct connection to origin — use for mail servers, non-HTTP services\n\n# Enable proxy\npython3 scripts/cloudflare.py dns add example.com --type A --name @ --content 1.2.3.4 --proxied\n\n# Disable proxy (DNS only)\npython3 scripts/cloudflare.py dns add example.com --type A --name mail --content 1.2.3.4 --no-proxy"
      },
      {
        "title": "SSL Modes",
        "body": "ModeDescriptionoffNo SSL (not recommended)flexibleHTTPS to Cloudflare, HTTP to originfullHTTPS end-to-end, any cert on originstrictHTTPS end-to-end, valid cert on origin"
      },
      {
        "title": "Add a New Domain",
        "body": "# 1. Add zone to Cloudflare\npython3 scripts/cloudflare.py zones add example.com\n\n# 2. Note the nameservers (e.g., adam.ns.cloudflare.com, bella.ns.cloudflare.com)\n\n# 3. Update nameservers at your registrar\n\n# 4. Add DNS records\npython3 scripts/cloudflare.py dns add example.com --type A --name @ --content 1.2.3.4 --proxied\npython3 scripts/cloudflare.py dns add example.com --type CNAME --name www --content example.com --proxied\n\n# 5. Set SSL to strict\npython3 scripts/cloudflare.py ssl set example.com --mode strict"
      },
      {
        "title": "Migrate DNS from Another Provider",
        "body": "# 1. Add zone (Cloudflare will scan existing records)\npython3 scripts/cloudflare.py zones add example.com\n\n# 2. Verify records imported correctly\npython3 scripts/cloudflare.py dns list example.com\n\n# 3. Add any missing records\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mail.example.com --priority 10\n\n# 4. Update nameservers at registrar\n\n# 5. Wait for propagation, check status\npython3 scripts/cloudflare.py zones status example.com"
      },
      {
        "title": "Set Up Email Records",
        "body": "# MX records\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mx1.provider.com --priority 10\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mx2.provider.com --priority 20\n\n# SPF\npython3 scripts/cloudflare.py dns add example.com --type TXT --name @ --content \"v=spf1 include:_spf.provider.com ~all\"\n\n# DKIM\npython3 scripts/cloudflare.py dns add example.com --type TXT --name selector._domainkey --content \"v=DKIM1; k=rsa; p=...\"\n\n# DMARC\npython3 scripts/cloudflare.py dns add example.com --type TXT --name _dmarc --content \"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com\""
      },
      {
        "title": "Direct API Access",
        "body": "TOKEN=$(cat ~/.config/cloudflare/token)\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     https://api.cloudflare.com/client/v4/zones"
      },
      {
        "title": "API Documentation",
        "body": "Full API reference: https://developers.cloudflare.com/api/\nAPI v4 base URL: https://api.cloudflare.com/client/v4/"
      },
      {
        "title": "Free Plan Includes",
        "body": "DNS hosting (unlimited queries)\nCDN (caching at 300+ edge locations)\nDDoS protection (unmetered)\nSSL/TLS certificates (auto-renewed)\n3 page rules\nBasic firewall rules\nAnalytics"
      },
      {
        "title": "Nameservers",
        "body": "When you add a domain, Cloudflare assigns two nameservers like:\n\nadam.ns.cloudflare.com\nbella.ns.cloudflare.com\n\nUpdate these at your domain registrar. Zone stays \"pending\" until nameservers propagate."
      }
    ],
    "body": "Cloudflare API Skill\n\nControl Cloudflare infrastructure: DNS management, CDN, security, Workers, and more.\n\nAuthentication\n\nAPI token required. Get one from: https://dash.cloudflare.com/profile/api-tokens\n\nRecommended permissions:\n\nZone:Zone:Read\nZone:Zone:Edit\nZone:DNS:Read\nZone:DNS:Edit\n\nStore in ~/.config/cloudflare/token:\n\nmkdir -p ~/.config/cloudflare\necho -n \"YOUR_API_TOKEN\" > ~/.config/cloudflare/token\nchmod 600 ~/.config/cloudflare/token\n\nQuick Reference\nZones (Domains)\n# List all zones\npython3 scripts/cloudflare.py zones list\n\n# Get zone details\npython3 scripts/cloudflare.py zones get <domain>\n\n# Add new zone\npython3 scripts/cloudflare.py zones add <domain>\n\n# Delete zone\npython3 scripts/cloudflare.py zones delete <domain>\n\n# Check zone status (pending/active)\npython3 scripts/cloudflare.py zones status <domain>\n\n# Purge cache\npython3 scripts/cloudflare.py zones purge <domain>\npython3 scripts/cloudflare.py zones purge <domain> --urls https://example.com/page\n\nDNS Records\n# List records for a zone\npython3 scripts/cloudflare.py dns list <domain>\n\n# Add record\npython3 scripts/cloudflare.py dns add <domain> --type A --name @ --content 1.2.3.4\npython3 scripts/cloudflare.py dns add <domain> --type CNAME --name www --content example.com\npython3 scripts/cloudflare.py dns add <domain> --type MX --name @ --content mail.example.com --priority 10\npython3 scripts/cloudflare.py dns add <domain> --type TXT --name @ --content \"v=spf1 include:_spf.google.com ~all\"\n\n# Update record\npython3 scripts/cloudflare.py dns update <domain> <record_id> --content 5.6.7.8\n\n# Delete record\npython3 scripts/cloudflare.py dns delete <domain> <record_id>\n\n# Proxy toggle (orange cloud on/off)\npython3 scripts/cloudflare.py dns proxy <domain> <record_id> --on\npython3 scripts/cloudflare.py dns proxy <domain> <record_id> --off\n\nSSL/TLS\n# Get SSL mode\npython3 scripts/cloudflare.py ssl get <domain>\n\n# Set SSL mode (off, flexible, full, strict)\npython3 scripts/cloudflare.py ssl set <domain> --mode full\n\n# Always use HTTPS\npython3 scripts/cloudflare.py ssl https <domain> --on\n\nPage Rules\n# List page rules\npython3 scripts/cloudflare.py rules list <domain>\n\n# Add redirect rule\npython3 scripts/cloudflare.py rules add <domain> --match \"example.com/*\" --redirect \"https://new.com/$1\"\n\n# Delete rule\npython3 scripts/cloudflare.py rules delete <domain> <rule_id>\n\nFirewall\n# List firewall rules\npython3 scripts/cloudflare.py firewall list <domain>\n\n# Block IP\npython3 scripts/cloudflare.py firewall block <domain> --ip 1.2.3.4 --note \"Spammer\"\n\n# Block country\npython3 scripts/cloudflare.py firewall block <domain> --country CN --note \"Block China\"\n\n# Whitelist IP\npython3 scripts/cloudflare.py firewall allow <domain> --ip 1.2.3.4\n\n# Challenge (captcha) for IP range\npython3 scripts/cloudflare.py firewall challenge <domain> --ip 1.2.3.0/24\n\nAnalytics\n# Get traffic stats (last 24h)\npython3 scripts/cloudflare.py analytics <domain>\n\n# Get stats for date range\npython3 scripts/cloudflare.py analytics <domain> --since 2024-01-01 --until 2024-01-31\n\nWorkers (Serverless)\n# List workers\npython3 scripts/cloudflare.py workers list\n\n# Deploy worker\npython3 scripts/cloudflare.py workers deploy <name> --script worker.js\n\n# Delete worker\npython3 scripts/cloudflare.py workers delete <name>\n\nDNS Record Types\nType\tPurpose\tExample\nA\tIPv4 address\t192.0.2.1\nAAAA\tIPv6 address\t2001:db8::1\nCNAME\tAlias\twww → example.com\nMX\tMail server\tmail.example.com (priority 10)\nTXT\tText/verification\tv=spf1 ...\nNS\tNameserver\tns1.example.com\nSRV\tService\t_sip._tcp.example.com\nCAA\tCertificate authority\tletsencrypt.org\nProxy Status (Orange Cloud)\nProxied (on): Traffic goes through Cloudflare CDN — caching, DDoS protection, hides origin IP\nDNS only (off): Direct connection to origin — use for mail servers, non-HTTP services\n# Enable proxy\npython3 scripts/cloudflare.py dns add example.com --type A --name @ --content 1.2.3.4 --proxied\n\n# Disable proxy (DNS only)\npython3 scripts/cloudflare.py dns add example.com --type A --name mail --content 1.2.3.4 --no-proxy\n\nSSL Modes\nMode\tDescription\noff\tNo SSL (not recommended)\nflexible\tHTTPS to Cloudflare, HTTP to origin\nfull\tHTTPS end-to-end, any cert on origin\nstrict\tHTTPS end-to-end, valid cert on origin\nCommon Workflows\nAdd a New Domain\n# 1. Add zone to Cloudflare\npython3 scripts/cloudflare.py zones add example.com\n\n# 2. Note the nameservers (e.g., adam.ns.cloudflare.com, bella.ns.cloudflare.com)\n\n# 3. Update nameservers at your registrar\n\n# 4. Add DNS records\npython3 scripts/cloudflare.py dns add example.com --type A --name @ --content 1.2.3.4 --proxied\npython3 scripts/cloudflare.py dns add example.com --type CNAME --name www --content example.com --proxied\n\n# 5. Set SSL to strict\npython3 scripts/cloudflare.py ssl set example.com --mode strict\n\nMigrate DNS from Another Provider\n# 1. Add zone (Cloudflare will scan existing records)\npython3 scripts/cloudflare.py zones add example.com\n\n# 2. Verify records imported correctly\npython3 scripts/cloudflare.py dns list example.com\n\n# 3. Add any missing records\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mail.example.com --priority 10\n\n# 4. Update nameservers at registrar\n\n# 5. Wait for propagation, check status\npython3 scripts/cloudflare.py zones status example.com\n\nSet Up Email Records\n# MX records\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mx1.provider.com --priority 10\npython3 scripts/cloudflare.py dns add example.com --type MX --name @ --content mx2.provider.com --priority 20\n\n# SPF\npython3 scripts/cloudflare.py dns add example.com --type TXT --name @ --content \"v=spf1 include:_spf.provider.com ~all\"\n\n# DKIM\npython3 scripts/cloudflare.py dns add example.com --type TXT --name selector._domainkey --content \"v=DKIM1; k=rsa; p=...\"\n\n# DMARC\npython3 scripts/cloudflare.py dns add example.com --type TXT --name _dmarc --content \"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com\"\n\nDirect API Access\nTOKEN=$(cat ~/.config/cloudflare/token)\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     https://api.cloudflare.com/client/v4/zones\n\nAPI Documentation\nFull API reference: https://developers.cloudflare.com/api/\nAPI v4 base URL: https://api.cloudflare.com/client/v4/\nFree Plan Includes\nDNS hosting (unlimited queries)\nCDN (caching at 300+ edge locations)\nDDoS protection (unmetered)\nSSL/TLS certificates (auto-renewed)\n3 page rules\nBasic firewall rules\nAnalytics\nNameservers\n\nWhen you add a domain, Cloudflare assigns two nameservers like:\n\nadam.ns.cloudflare.com\nbella.ns.cloudflare.com\n\nUpdate these at your domain registrar. Zone stays \"pending\" until nameservers propagate."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/rexlunae/cf-manager",
    "publisherUrl": "https://clawhub.ai/rexlunae/cf-manager",
    "owner": "rexlunae",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cf-manager",
    "downloadUrl": "https://openagent3.xyz/downloads/cf-manager",
    "agentUrl": "https://openagent3.xyz/skills/cf-manager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cf-manager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cf-manager/agent.md"
  }
}