{
  "schemaVersion": "1.0",
  "item": {
    "slug": "curl-http",
    "name": "Curl Http",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Arnarsson/curl-http",
    "canonicalUrl": "https://clawhub.ai/Arnarsson/curl-http",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "manual_only",
    "downloadUrl": "/downloads/curl-http",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=curl-http",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Wait for the source to recover or retry later.",
      "Review SKILL.md only after the source returns a real package.",
      "Do not rely on this source for automated install yet."
    ],
    "agentAssist": {
      "summary": "Use the source page and any available docs to guide the install because the item is currently unstable or timing out.",
      "steps": [
        "Open the source page via Review source status.",
        "If you can obtain the package, extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the source page and extracted files."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I tried to install a skill package from Yavira, but the item is currently unstable or timing out. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required."
        },
        {
          "label": "Upgrade existing",
          "body": "I tried to upgrade a skill package from Yavira, but the item is currently unstable or timing out. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "curl-http",
      "status": "unstable",
      "reason": "timeout",
      "recommendedAction": "retry_later",
      "checkedAt": "2026-05-02T07:20:44.814Z",
      "expiresAt": "2026-05-02T19:20:44.814Z",
      "httpStatus": null,
      "finalUrl": null,
      "contentType": null,
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=curl-http",
        "error": "Timed out after 5000ms",
        "slug": "curl-http"
      },
      "scope": "item",
      "summary": "Item is unstable.",
      "detail": "This item is timing out or returning errors right now. Review the source page and try again later.",
      "primaryActionLabel": "Review source status",
      "primaryActionHref": "https://clawhub.ai/Arnarsson/curl-http"
    },
    "validation": {
      "installChecklist": [
        "Wait for the source to recover or retry later.",
        "Review SKILL.md only after the download returns a real package.",
        "Treat this source as transient until the upstream errors clear."
      ],
      "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/curl-http",
    "agentPageUrl": "https://openagent3.xyz/skills/curl-http/agent",
    "manifestUrl": "https://openagent3.xyz/skills/curl-http/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/curl-http/agent.md"
  },
  "agentAssist": {
    "summary": "Use the source page and any available docs to guide the install because the item is currently unstable or timing out.",
    "steps": [
      "Open the source page via Review source status.",
      "If you can obtain the package, extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the source page and extracted files."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I tried to install a skill package from Yavira, but the item is currently unstable or timing out. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required."
      },
      {
        "label": "Upgrade existing",
        "body": "I tried to upgrade a skill package from Yavira, but the item is currently unstable or timing out. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "curl - HTTP Client",
        "body": "Command-line tool for making HTTP requests and transferring data."
      },
      {
        "title": "GET requests",
        "body": "# Simple GET request\ncurl https://api.example.com\n\n# Save output to file\ncurl https://example.com -o output.html\ncurl https://example.com/file.zip -O  # Use remote filename\n\n# Follow redirects\ncurl -L https://example.com\n\n# Show response headers\ncurl -i https://example.com\n\n# Show only headers\ncurl -I https://example.com\n\n# Verbose output (debugging)\ncurl -v https://example.com"
      },
      {
        "title": "POST requests",
        "body": "# POST with data\ncurl -X POST https://api.example.com/users \\\n  -d \"name=John&email=john@example.com\"\n\n# POST JSON data\ncurl -X POST https://api.example.com/users \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"John\",\"email\":\"john@example.com\"}'\n\n# POST from file\ncurl -X POST https://api.example.com/users \\\n  -H \"Content-Type: application/json\" \\\n  -d @data.json\n\n# Form upload\ncurl -X POST https://api.example.com/upload \\\n  -F \"file=@document.pdf\" \\\n  -F \"description=My document\""
      },
      {
        "title": "Other HTTP methods",
        "body": "# PUT request\ncurl -X PUT https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Jane\"}'\n\n# DELETE request\ncurl -X DELETE https://api.example.com/users/1\n\n# PATCH request\ncurl -X PATCH https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"newemail@example.com\"}'"
      },
      {
        "title": "Custom headers",
        "body": "# Add custom header\ncurl -H \"User-Agent: MyApp/1.0\" https://example.com\n\n# Multiple headers\ncurl -H \"Accept: application/json\" \\\n     -H \"Authorization: Bearer token123\" \\\n     https://api.example.com"
      },
      {
        "title": "Authentication",
        "body": "# Basic auth\ncurl -u username:password https://api.example.com\n\n# Bearer token\ncurl -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  https://api.example.com\n\n# API key in header\ncurl -H \"X-API-Key: your_api_key\" \\\n  https://api.example.com\n\n# API key in URL\ncurl \"https://api.example.com?api_key=your_key\""
      },
      {
        "title": "Timeouts & retries",
        "body": "# Connection timeout (seconds)\ncurl --connect-timeout 10 https://example.com\n\n# Max time for entire operation\ncurl --max-time 30 https://example.com\n\n# Retry on failure\ncurl --retry 3 https://example.com\n\n# Retry delay\ncurl --retry 3 --retry-delay 5 https://example.com"
      },
      {
        "title": "Cookies",
        "body": "# Send cookies\ncurl -b \"session=abc123\" https://example.com\n\n# Save cookies to file\ncurl -c cookies.txt https://example.com\n\n# Load cookies from file\ncurl -b cookies.txt https://example.com\n\n# Both save and load\ncurl -b cookies.txt -c cookies.txt https://example.com"
      },
      {
        "title": "Proxy",
        "body": "# Use HTTP proxy\ncurl -x http://proxy.example.com:8080 https://api.example.com\n\n# With proxy authentication\ncurl -x http://proxy:8080 -U user:pass https://api.example.com\n\n# SOCKS proxy\ncurl --socks5 127.0.0.1:1080 https://api.example.com"
      },
      {
        "title": "SSL/TLS",
        "body": "# Ignore SSL certificate errors (not recommended for production)\ncurl -k https://self-signed.example.com\n\n# Use specific SSL version\ncurl --tlsv1.2 https://example.com\n\n# Use client certificate\ncurl --cert client.crt --key client.key https://example.com\n\n# Show SSL handshake details\ncurl -v https://example.com 2>&1 | grep -i ssl"
      },
      {
        "title": "Output formatting",
        "body": "# Silent mode (no progress bar)\ncurl -s https://api.example.com\n\n# Show only HTTP status code\ncurl -s -o /dev/null -w \"%{http_code}\" https://example.com\n\n# Custom output format\ncurl -w \"\\nTime: %{time_total}s\\nStatus: %{http_code}\\n\" \\\n  https://example.com\n\n# Pretty print JSON (with jq)\ncurl -s https://api.example.com | jq '.'"
      },
      {
        "title": "Range requests",
        "body": "# Download specific byte range\ncurl -r 0-1000 https://example.com/large-file.zip\n\n# Resume download\ncurl -C - -O https://example.com/large-file.zip"
      },
      {
        "title": "Downloading files",
        "body": "# Download file\ncurl -O https://example.com/file.zip\n\n# Download with custom name\ncurl -o myfile.zip https://example.com/file.zip\n\n# Download multiple files\ncurl -O https://example.com/file1.zip \\\n     -O https://example.com/file2.zip\n\n# Resume interrupted download\ncurl -C - -O https://example.com/large-file.zip"
      },
      {
        "title": "Uploading files",
        "body": "# FTP upload\ncurl -T file.txt ftp://ftp.example.com/upload/\n\n# HTTP PUT upload\ncurl -T file.txt https://example.com/upload\n\n# Form file upload\ncurl -F \"file=@document.pdf\" https://example.com/upload"
      },
      {
        "title": "API testing",
        "body": "# Test REST API\ncurl -X GET https://api.example.com/users\ncurl -X GET https://api.example.com/users/1\ncurl -X POST https://api.example.com/users -d @user.json\ncurl -X PUT https://api.example.com/users/1 -d @updated.json\ncurl -X DELETE https://api.example.com/users/1\n\n# Test with verbose output\ncurl -v -X POST https://api.example.com/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\":\"test\",\"password\":\"pass\"}'"
      },
      {
        "title": "Performance testing",
        "body": "# Measure request time\ncurl -w \"Total time: %{time_total}s\\n\" https://example.com\n\n# Detailed timing\ncurl -w \"\\nDNS: %{time_namelookup}s\\nConnect: %{time_connect}s\\nTLS: %{time_appconnect}s\\nTransfer: %{time_starttransfer}s\\nTotal: %{time_total}s\\n\" \\\n  -o /dev/null -s https://example.com"
      },
      {
        "title": "Common debugging",
        "body": "# Show request and response headers\ncurl -v https://api.example.com\n\n# Trace request\ncurl --trace-ascii trace.txt https://api.example.com\n\n# Include response headers in output\ncurl -i https://api.example.com"
      },
      {
        "title": "Common Patterns",
        "body": "Quick JSON API test:\n\ncurl -s https://api.github.com/users/octocat | jq '{name, bio, followers}'\n\nDownload with progress bar:\n\ncurl -# -O https://example.com/large-file.zip\n\nPOST JSON and extract field:\n\ncurl -s -X POST https://api.example.com/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"user\":\"test\",\"pass\":\"secret\"}' | jq -r '.token'\n\nCheck if URL is accessible:\n\nif curl -s --head --fail https://example.com > /dev/null; then\n  echo \"Site is up\"\nelse\n  echo \"Site is down\"\nfi\n\nParallel downloads:\n\nfor i in {1..10}; do\n  curl -O https://example.com/file$i.jpg &\ndone\nwait"
      },
      {
        "title": "Useful Flags",
        "body": "-X: HTTP method (GET, POST, PUT, DELETE, etc.)\n-d: Data to send (POST/PUT)\n-H: Custom header\n-o: Output file\n-O: Save with remote filename\n-L: Follow redirects\n-i: Include headers in output\n-I: Headers only\n-v: Verbose output\n-s: Silent mode\n-S: Show errors even in silent mode\n-f: Fail silently on HTTP errors\n-k: Insecure (ignore SSL)\n-u: Basic authentication\n-F: Multipart form data\n-b: Send cookies\n-c: Save cookies\n-w: Custom output format"
      },
      {
        "title": "Tips",
        "body": "Use -s in scripts to suppress progress bar\nCombine -sS for silent but show errors\nUse -L for redirects (e.g., shortened URLs)\nAdd -v for debugging\nUse jq to process JSON responses\nSave common requests as shell aliases or scripts\nUse --config for complex reusable requests"
      },
      {
        "title": "Documentation",
        "body": "Official docs: https://curl.se/docs/\nManual: man curl\nHTTP methods: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods"
      }
    ],
    "body": "curl - HTTP Client\n\nCommand-line tool for making HTTP requests and transferring data.\n\nBasic Requests\nGET requests\n# Simple GET request\ncurl https://api.example.com\n\n# Save output to file\ncurl https://example.com -o output.html\ncurl https://example.com/file.zip -O  # Use remote filename\n\n# Follow redirects\ncurl -L https://example.com\n\n# Show response headers\ncurl -i https://example.com\n\n# Show only headers\ncurl -I https://example.com\n\n# Verbose output (debugging)\ncurl -v https://example.com\n\nPOST requests\n# POST with data\ncurl -X POST https://api.example.com/users \\\n  -d \"name=John&email=john@example.com\"\n\n# POST JSON data\ncurl -X POST https://api.example.com/users \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"John\",\"email\":\"john@example.com\"}'\n\n# POST from file\ncurl -X POST https://api.example.com/users \\\n  -H \"Content-Type: application/json\" \\\n  -d @data.json\n\n# Form upload\ncurl -X POST https://api.example.com/upload \\\n  -F \"file=@document.pdf\" \\\n  -F \"description=My document\"\n\nOther HTTP methods\n# PUT request\ncurl -X PUT https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Jane\"}'\n\n# DELETE request\ncurl -X DELETE https://api.example.com/users/1\n\n# PATCH request\ncurl -X PATCH https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"newemail@example.com\"}'\n\nHeaders & Authentication\nCustom headers\n# Add custom header\ncurl -H \"User-Agent: MyApp/1.0\" https://example.com\n\n# Multiple headers\ncurl -H \"Accept: application/json\" \\\n     -H \"Authorization: Bearer token123\" \\\n     https://api.example.com\n\nAuthentication\n# Basic auth\ncurl -u username:password https://api.example.com\n\n# Bearer token\ncurl -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  https://api.example.com\n\n# API key in header\ncurl -H \"X-API-Key: your_api_key\" \\\n  https://api.example.com\n\n# API key in URL\ncurl \"https://api.example.com?api_key=your_key\"\n\nAdvanced Features\nTimeouts & retries\n# Connection timeout (seconds)\ncurl --connect-timeout 10 https://example.com\n\n# Max time for entire operation\ncurl --max-time 30 https://example.com\n\n# Retry on failure\ncurl --retry 3 https://example.com\n\n# Retry delay\ncurl --retry 3 --retry-delay 5 https://example.com\n\nCookies\n# Send cookies\ncurl -b \"session=abc123\" https://example.com\n\n# Save cookies to file\ncurl -c cookies.txt https://example.com\n\n# Load cookies from file\ncurl -b cookies.txt https://example.com\n\n# Both save and load\ncurl -b cookies.txt -c cookies.txt https://example.com\n\nProxy\n# Use HTTP proxy\ncurl -x http://proxy.example.com:8080 https://api.example.com\n\n# With proxy authentication\ncurl -x http://proxy:8080 -U user:pass https://api.example.com\n\n# SOCKS proxy\ncurl --socks5 127.0.0.1:1080 https://api.example.com\n\nSSL/TLS\n# Ignore SSL certificate errors (not recommended for production)\ncurl -k https://self-signed.example.com\n\n# Use specific SSL version\ncurl --tlsv1.2 https://example.com\n\n# Use client certificate\ncurl --cert client.crt --key client.key https://example.com\n\n# Show SSL handshake details\ncurl -v https://example.com 2>&1 | grep -i ssl\n\nResponse Handling\nOutput formatting\n# Silent mode (no progress bar)\ncurl -s https://api.example.com\n\n# Show only HTTP status code\ncurl -s -o /dev/null -w \"%{http_code}\" https://example.com\n\n# Custom output format\ncurl -w \"\\nTime: %{time_total}s\\nStatus: %{http_code}\\n\" \\\n  https://example.com\n\n# Pretty print JSON (with jq)\ncurl -s https://api.example.com | jq '.'\n\nRange requests\n# Download specific byte range\ncurl -r 0-1000 https://example.com/large-file.zip\n\n# Resume download\ncurl -C - -O https://example.com/large-file.zip\n\nFile Operations\nDownloading files\n# Download file\ncurl -O https://example.com/file.zip\n\n# Download with custom name\ncurl -o myfile.zip https://example.com/file.zip\n\n# Download multiple files\ncurl -O https://example.com/file1.zip \\\n     -O https://example.com/file2.zip\n\n# Resume interrupted download\ncurl -C - -O https://example.com/large-file.zip\n\nUploading files\n# FTP upload\ncurl -T file.txt ftp://ftp.example.com/upload/\n\n# HTTP PUT upload\ncurl -T file.txt https://example.com/upload\n\n# Form file upload\ncurl -F \"file=@document.pdf\" https://example.com/upload\n\nTesting & Debugging\nAPI testing\n# Test REST API\ncurl -X GET https://api.example.com/users\ncurl -X GET https://api.example.com/users/1\ncurl -X POST https://api.example.com/users -d @user.json\ncurl -X PUT https://api.example.com/users/1 -d @updated.json\ncurl -X DELETE https://api.example.com/users/1\n\n# Test with verbose output\ncurl -v -X POST https://api.example.com/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\":\"test\",\"password\":\"pass\"}'\n\nPerformance testing\n# Measure request time\ncurl -w \"Total time: %{time_total}s\\n\" https://example.com\n\n# Detailed timing\ncurl -w \"\\nDNS: %{time_namelookup}s\\nConnect: %{time_connect}s\\nTLS: %{time_appconnect}s\\nTransfer: %{time_starttransfer}s\\nTotal: %{time_total}s\\n\" \\\n  -o /dev/null -s https://example.com\n\nCommon debugging\n# Show request and response headers\ncurl -v https://api.example.com\n\n# Trace request\ncurl --trace-ascii trace.txt https://api.example.com\n\n# Include response headers in output\ncurl -i https://api.example.com\n\nCommon Patterns\n\nQuick JSON API test:\n\ncurl -s https://api.github.com/users/octocat | jq '{name, bio, followers}'\n\n\nDownload with progress bar:\n\ncurl -# -O https://example.com/large-file.zip\n\n\nPOST JSON and extract field:\n\ncurl -s -X POST https://api.example.com/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"user\":\"test\",\"pass\":\"secret\"}' | jq -r '.token'\n\n\nCheck if URL is accessible:\n\nif curl -s --head --fail https://example.com > /dev/null; then\n  echo \"Site is up\"\nelse\n  echo \"Site is down\"\nfi\n\n\nParallel downloads:\n\nfor i in {1..10}; do\n  curl -O https://example.com/file$i.jpg &\ndone\nwait\n\nUseful Flags\n-X: HTTP method (GET, POST, PUT, DELETE, etc.)\n-d: Data to send (POST/PUT)\n-H: Custom header\n-o: Output file\n-O: Save with remote filename\n-L: Follow redirects\n-i: Include headers in output\n-I: Headers only\n-v: Verbose output\n-s: Silent mode\n-S: Show errors even in silent mode\n-f: Fail silently on HTTP errors\n-k: Insecure (ignore SSL)\n-u: Basic authentication\n-F: Multipart form data\n-b: Send cookies\n-c: Save cookies\n-w: Custom output format\nTips\nUse -s in scripts to suppress progress bar\nCombine -sS for silent but show errors\nUse -L for redirects (e.g., shortened URLs)\nAdd -v for debugging\nUse jq to process JSON responses\nSave common requests as shell aliases or scripts\nUse --config for complex reusable requests\nDocumentation\n\nOfficial docs: https://curl.se/docs/ Manual: man curl HTTP methods: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Arnarsson/curl-http",
    "publisherUrl": "https://clawhub.ai/Arnarsson/curl-http",
    "owner": "Arnarsson",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/curl-http",
    "downloadUrl": "https://openagent3.xyz/downloads/curl-http",
    "agentUrl": "https://openagent3.xyz/skills/curl-http/agent",
    "manifestUrl": "https://openagent3.xyz/skills/curl-http/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/curl-http/agent.md"
  }
}