{
  "schemaVersion": "1.0",
  "item": {
    "slug": "qrcode",
    "name": "QRCode",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/HeXavi8/qrcode",
    "canonicalUrl": "https://clawhub.ai/HeXavi8/qrcode",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/qrcode",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=qrcode",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "package.json",
      "SKILL.md",
      "scripts/generate.mjs"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/qrcode"
    },
    "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/qrcode",
    "agentPageUrl": "https://openagent3.xyz/skills/qrcode/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qrcode/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qrcode/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": "QRCode Generator",
        "body": "Generate customizable QR codes from text or URLs. Supports multiple formats (SVG/PNG/JPG) with styling options."
      },
      {
        "title": "Agent Instructions",
        "body": "After generating QR codes, you MUST:\n\nDisplay the generated file using appropriate markdown syntax:\n\nFor images (PNG/JPG): ![QR Code](sandbox:/path/to/file.png)\nFor SVG: Display as image or provide download link\n\n\nConfirm the file path and format to the user\nOffer to regenerate with different styling if needed"
      },
      {
        "title": "Quick Start",
        "body": "# Basic usage (auto-generated filename)\nnode {baseDir}/scripts/generate.mjs \"Hello World\"\n\n# Custom styled QR code\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" -o myqr.svg --dot circle --eye rounded --color \"#2563eb\"\n\n# High-resolution transparent PNG\nnode {baseDir}/scripts/generate.mjs \"Contact Info\" --format png --size 2048 --transparent\n\n# Print-quality JPEG\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format jpg -o qr.jpg --size 2048 --quality 95"
      },
      {
        "title": "Output",
        "body": "-o, --out <filename> - Output filename (workspace root only). Default: qrcode_<text>_<timestamp>.<ext>\n--format <svg|png|jpg> - Output format (default: svg)"
      },
      {
        "title": "Dimensions",
        "body": "--size <px> - Base pixel size (default: 1024, max: 10000)\n--scale <n> - Resolution multiplier (default: 1, max: 10)\n--margin <modules> - Quiet zone size (default: 4, max: 100)"
      },
      {
        "title": "Styling",
        "body": "--dot <square|circle> - Data module shape (default: square)\n--eye <square|circle|rounded> - Finder pattern style (default: square)\n--color <#RRGGBB> - Foreground color (default: #000000)\n--background <#RRGGBB> - Background color (default: #ffffff)\n--transparent - Transparent background (PNG only, ignored for SVG/JPG)"
      },
      {
        "title": "Quality",
        "body": "--ec <L|M|Q|H> - Error correction: Low/Medium/Quality/High (default: M)\n\nL (~7%): Clean environments, maximum data capacity\nM (~15%): General use, balanced capacity/reliability\nQ (~25%): Styled QR codes, moderate damage tolerance\nH (~30%): Logo embedding, heavy styling, outdoor use\n\n\n--quality <1-100> - JPEG compression quality (default: 80)"
      },
      {
        "title": "File Handling",
        "body": "Security-enforced workspace root output:\n\nAll files saved to workspace root directory only\nPath components stripped: -o ../path/file.svg → workspace/file.svg\nAuto-generated filenames include sanitized text and timestamp\nMaximum text length: 4096 characters"
      },
      {
        "title": "Installation",
        "body": "cd {baseDir}\nnpm install\n\nDependencies: qrcode (matrix generation), sharp (image conversion)\n\nPlatform notes: macOS requires Xcode Command Line Tools. See sharp docs for other platforms."
      },
      {
        "title": "WiFi QR Code",
        "body": "node {baseDir}/scripts/generate.mjs \"WIFI:S:MyNetwork;T:WPA;P:password123;;\" --format png -o wifi.png --size 1024"
      },
      {
        "title": "Styled Business Card",
        "body": "node {baseDir}/scripts/generate.mjs \"BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nTEL:+1234567890\nEMAIL:john@example.com\nEND:VCARD\" --dot circle --eye rounded --color \"#1e40af\" --background \"#eff6ff\" -o contact.svg"
      },
      {
        "title": "High-Resolution Print",
        "body": "node {baseDir}/scripts/generate.mjs \"https://example.com\" --format jpg --size 4096 --quality 95 --ec H -o print.jpg"
      },
      {
        "title": "Transparent Logo Overlay",
        "body": "node {baseDir}/scripts/generate.mjs \"https://example.com\" --format png --size 2048 --transparent --margin 2 -o overlay.png"
      },
      {
        "title": "Logo Embedding (Requires High Error Correction)",
        "body": "# Use --ec H when QR code will have logo overlay (covers ~20-30% of center)\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format png --size 2048 --ec H -o logo-base.png"
      },
      {
        "title": "Security Features",
        "body": "✅ Path traversal protection - All outputs forced to workspace root\n✅ Symlink attack prevention - Atomic writes with verification\n✅ Input validation - Length limits (4096 chars), character whitelisting\n✅ Filename sanitization - Dangerous characters stripped from filenames\n✅ Resource limits - Max size/scale to prevent DoS attacks"
      },
      {
        "title": "Troubleshooting",
        "body": "IssueSolutionnpm install failsInstall build tools:xcode-select --install (macOS) or see sharp install guideQR code won't scanIncrease --size, use higher error correction (--ec H), or simplify stylingColors not workingUse hex format #RRGGBB (e.g., #FF5733), not RGB or color namesFile too largeReduce --size, --scale, or increase --quality for JPGPermission deniedCheck workspace directory write permissions"
      },
      {
        "title": "Error Correction Levels Explained",
        "body": "Error correction allows QR codes to remain scannable even when partially damaged or obscured:\n\nLevelRecovery CapacityData CapacityUse CaseL~7% damageMaximumClean environments, screen display, maximum dataM~15% damageHighGeneral use (default), standard printingQ~25% damageMediumStyled designs (circles/rounded), possible minor damageH~30% damageMinimumLogo embedding, outdoor use, heavy styling, print-on-print\n\nKey principle: Higher error correction = more damage tolerance but less data capacity.\n\nWhen to use H level:\n\nEmbedding logos (covers 20-30% of center)\nCircular dots or rounded eyes\nOutdoor/weathered environments\nLow-quality printing\nStickers that may peel/scratch"
      },
      {
        "title": "Format Comparison",
        "body": "FormatTransparencyQualityFile SizeUse CaseSVG✅InfiniteSmallestWeb, scalable graphicsPNG✅LosslessMediumDigital displays, overlaysJPG❌LossySmallest*Print, photos, email\n\n*With compression"
      },
      {
        "title": "Tips",
        "body": "Scanning distance: Use --size 1024 for mobile (1-2m), --size 2048+ for print/posters\nStyling vs. reliability: Higher --ec levels compensate for --dot circle or --eye rounded\nTransparent backgrounds: Use PNG format with --transparent; JPG always uses white/specified background\nFile size optimization: SVG for web, JPG with --quality 80-85 for print\nData capacity: L/M/Q/H levels affect max alphanumeric capacity: ~4296/3391/2420/1852 chars (Version 40)\nLogo placement: Use --ec H and leave center area clear (approximately 30% of QR code)"
      },
      {
        "title": "Common Use Cases",
        "body": "ScenarioRecommended SettingsWebsite URL--format png --size 1024 --ec MWiFi credentials--format png --size 1024 --ec MBusiness card (vCard)--format svg --dot circle --eye rounded --ec QPrint poster--format jpg --size 4096 --quality 95 --ec HLogo overlay base--format png --size 2048 --ec H --transparentEmail signature--format png --size 512 --ec MProduct packaging--format svg --ec H (scalable for any print size)Outdoor signage--format jpg --size 2048+ --ec H --quality 90Social media profile--format png --size 1024 --transparent --dot circle --ec QPayment QR (high density)--format png --size 2048 --ec L --margin 2 (maximize capacity)"
      }
    ],
    "body": "QRCode Generator\n\nGenerate customizable QR codes from text or URLs. Supports multiple formats (SVG/PNG/JPG) with styling options.\n\nAgent Instructions\n\nAfter generating QR codes, you MUST:\n\nDisplay the generated file using appropriate markdown syntax:\nFor images (PNG/JPG): ![QR Code](sandbox:/path/to/file.png)\nFor SVG: Display as image or provide download link\nConfirm the file path and format to the user\nOffer to regenerate with different styling if needed\nQuick Start\n# Basic usage (auto-generated filename)\nnode {baseDir}/scripts/generate.mjs \"Hello World\"\n\n# Custom styled QR code\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" -o myqr.svg --dot circle --eye rounded --color \"#2563eb\"\n\n# High-resolution transparent PNG\nnode {baseDir}/scripts/generate.mjs \"Contact Info\" --format png --size 2048 --transparent\n\n# Print-quality JPEG\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format jpg -o qr.jpg --size 2048 --quality 95\n\nOptions\nOutput\n-o, --out <filename> - Output filename (workspace root only). Default: qrcode_<text>_<timestamp>.<ext>\n--format <svg|png|jpg> - Output format (default: svg)\nDimensions\n--size <px> - Base pixel size (default: 1024, max: 10000)\n--scale <n> - Resolution multiplier (default: 1, max: 10)\n--margin <modules> - Quiet zone size (default: 4, max: 100)\nStyling\n--dot <square|circle> - Data module shape (default: square)\n--eye <square|circle|rounded> - Finder pattern style (default: square)\n--color <#RRGGBB> - Foreground color (default: #000000)\n--background <#RRGGBB> - Background color (default: #ffffff)\n--transparent - Transparent background (PNG only, ignored for SVG/JPG)\nQuality\n--ec <L|M|Q|H> - Error correction: Low/Medium/Quality/High (default: M)\nL (~7%): Clean environments, maximum data capacity\nM (~15%): General use, balanced capacity/reliability\nQ (~25%): Styled QR codes, moderate damage tolerance\nH (~30%): Logo embedding, heavy styling, outdoor use\n--quality <1-100> - JPEG compression quality (default: 80)\nFile Handling\n\nSecurity-enforced workspace root output:\n\nAll files saved to workspace root directory only\nPath components stripped: -o ../path/file.svg → workspace/file.svg\nAuto-generated filenames include sanitized text and timestamp\nMaximum text length: 4096 characters\nInstallation\ncd {baseDir}\nnpm install\n\n\nDependencies: qrcode (matrix generation), sharp (image conversion)\n\nPlatform notes: macOS requires Xcode Command Line Tools. See sharp docs for other platforms.\n\nExamples\nWiFi QR Code\nnode {baseDir}/scripts/generate.mjs \"WIFI:S:MyNetwork;T:WPA;P:password123;;\" --format png -o wifi.png --size 1024\n\nStyled Business Card\nnode {baseDir}/scripts/generate.mjs \"BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nTEL:+1234567890\nEMAIL:john@example.com\nEND:VCARD\" --dot circle --eye rounded --color \"#1e40af\" --background \"#eff6ff\" -o contact.svg\n\nHigh-Resolution Print\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format jpg --size 4096 --quality 95 --ec H -o print.jpg\n\nTransparent Logo Overlay\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format png --size 2048 --transparent --margin 2 -o overlay.png\n\nLogo Embedding (Requires High Error Correction)\n# Use --ec H when QR code will have logo overlay (covers ~20-30% of center)\nnode {baseDir}/scripts/generate.mjs \"https://example.com\" --format png --size 2048 --ec H -o logo-base.png\n\nSecurity Features\n✅ Path traversal protection - All outputs forced to workspace root\n✅ Symlink attack prevention - Atomic writes with verification\n✅ Input validation - Length limits (4096 chars), character whitelisting\n✅ Filename sanitization - Dangerous characters stripped from filenames\n✅ Resource limits - Max size/scale to prevent DoS attacks\nTroubleshooting\nIssue\tSolution\nnpm install fails\tInstall build tools:xcode-select --install (macOS) or see sharp install guide\nQR code won't scan\tIncrease --size, use higher error correction (--ec H), or simplify styling\nColors not working\tUse hex format #RRGGBB (e.g., #FF5733), not RGB or color names\nFile too large\tReduce --size, --scale, or increase --quality for JPG\nPermission denied\tCheck workspace directory write permissions\nError Correction Levels Explained\n\nError correction allows QR codes to remain scannable even when partially damaged or obscured:\n\nLevel\tRecovery Capacity\tData Capacity\tUse Case\nL\t~7% damage\tMaximum\tClean environments, screen display, maximum data\nM\t~15% damage\tHigh\tGeneral use (default), standard printing\nQ\t~25% damage\tMedium\tStyled designs (circles/rounded), possible minor damage\nH\t~30% damage\tMinimum\tLogo embedding, outdoor use, heavy styling, print-on-print\n\nKey principle: Higher error correction = more damage tolerance but less data capacity.\n\nWhen to use H level:\n\nEmbedding logos (covers 20-30% of center)\nCircular dots or rounded eyes\nOutdoor/weathered environments\nLow-quality printing\nStickers that may peel/scratch\nFormat Comparison\nFormat\tTransparency\tQuality\tFile Size\tUse Case\nSVG\t✅\tInfinite\tSmallest\tWeb, scalable graphics\nPNG\t✅\tLossless\tMedium\tDigital displays, overlays\nJPG\t❌\tLossy\tSmallest*\tPrint, photos, email\n\n*With compression\n\nTips\nScanning distance: Use --size 1024 for mobile (1-2m), --size 2048+ for print/posters\nStyling vs. reliability: Higher --ec levels compensate for --dot circle or --eye rounded\nTransparent backgrounds: Use PNG format with --transparent; JPG always uses white/specified background\nFile size optimization: SVG for web, JPG with --quality 80-85 for print\nData capacity: L/M/Q/H levels affect max alphanumeric capacity: ~4296/3391/2420/1852 chars (Version 40)\nLogo placement: Use --ec H and leave center area clear (approximately 30% of QR code)\nCommon Use Cases\nScenario\tRecommended Settings\nWebsite URL\t--format png --size 1024 --ec M\nWiFi credentials\t--format png --size 1024 --ec M\nBusiness card (vCard)\t--format svg --dot circle --eye rounded --ec Q\nPrint poster\t--format jpg --size 4096 --quality 95 --ec H\nLogo overlay base\t--format png --size 2048 --ec H --transparent\nEmail signature\t--format png --size 512 --ec M\nProduct packaging\t--format svg --ec H (scalable for any print size)\nOutdoor signage\t--format jpg --size 2048+ --ec H --quality 90\nSocial media profile\t--format png --size 1024 --transparent --dot circle --ec Q\nPayment QR (high density)\t--format png --size 2048 --ec L --margin 2 (maximize capacity)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/HeXavi8/qrcode",
    "publisherUrl": "https://clawhub.ai/HeXavi8/qrcode",
    "owner": "HeXavi8",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/qrcode",
    "downloadUrl": "https://openagent3.xyz/downloads/qrcode",
    "agentUrl": "https://openagent3.xyz/skills/qrcode/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qrcode/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qrcode/agent.md"
  }
}