Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate styled QR codes (SVG/PNG/JPG) from user input. Supports custom module color, background, dot shape and eye shape, and many output options.
Generate styled QR codes (SVG/PNG/JPG) from user input. Supports custom module color, background, dot shape and eye shape, and many output options.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Generate customizable QR codes from text or URLs. Supports multiple formats (SVG/PNG/JPG) with styling options.
After generating QR codes, you MUST: Display the generated file using appropriate markdown syntax: For images (PNG/JPG):  For SVG: Display as image or provide download link Confirm the file path and format to the user Offer to regenerate with different styling if needed
# Basic usage (auto-generated filename) node {baseDir}/scripts/generate.mjs "Hello World" # Custom styled QR code node {baseDir}/scripts/generate.mjs "https://example.com" -o myqr.svg --dot circle --eye rounded --color "#2563eb" # High-resolution transparent PNG node {baseDir}/scripts/generate.mjs "Contact Info" --format png --size 2048 --transparent # Print-quality JPEG node {baseDir}/scripts/generate.mjs "https://example.com" --format jpg -o qr.jpg --size 2048 --quality 95
-o, --out <filename> - Output filename (workspace root only). Default: qrcode_<text>_<timestamp>.<ext> --format <svg|png|jpg> - Output format (default: svg)
--size <px> - Base pixel size (default: 1024, max: 10000) --scale <n> - Resolution multiplier (default: 1, max: 10) --margin <modules> - Quiet zone size (default: 4, max: 100)
--dot <square|circle> - Data module shape (default: square) --eye <square|circle|rounded> - Finder pattern style (default: square) --color <#RRGGBB> - Foreground color (default: #000000) --background <#RRGGBB> - Background color (default: #ffffff) --transparent - Transparent background (PNG only, ignored for SVG/JPG)
--ec <L|M|Q|H> - Error correction: Low/Medium/Quality/High (default: M) L (~7%): Clean environments, maximum data capacity M (~15%): General use, balanced capacity/reliability Q (~25%): Styled QR codes, moderate damage tolerance H (~30%): Logo embedding, heavy styling, outdoor use --quality <1-100> - JPEG compression quality (default: 80)
Security-enforced workspace root output: All files saved to workspace root directory only Path components stripped: -o ../path/file.svg → workspace/file.svg Auto-generated filenames include sanitized text and timestamp Maximum text length: 4096 characters
cd {baseDir} npm install Dependencies: qrcode (matrix generation), sharp (image conversion) Platform notes: macOS requires Xcode Command Line Tools. See sharp docs for other platforms.
node {baseDir}/scripts/generate.mjs "WIFI:S:MyNetwork;T:WPA;P:password123;;" --format png -o wifi.png --size 1024
node {baseDir}/scripts/generate.mjs "BEGIN:VCARD VERSION:3.0 FN:John Doe TEL:+1234567890 EMAIL:john@example.com END:VCARD" --dot circle --eye rounded --color "#1e40af" --background "#eff6ff" -o contact.svg
node {baseDir}/scripts/generate.mjs "https://example.com" --format jpg --size 4096 --quality 95 --ec H -o print.jpg
node {baseDir}/scripts/generate.mjs "https://example.com" --format png --size 2048 --transparent --margin 2 -o overlay.png
# Use --ec H when QR code will have logo overlay (covers ~20-30% of center) node {baseDir}/scripts/generate.mjs "https://example.com" --format png --size 2048 --ec H -o logo-base.png
✅ Path traversal protection - All outputs forced to workspace root ✅ Symlink attack prevention - Atomic writes with verification ✅ Input validation - Length limits (4096 chars), character whitelisting ✅ Filename sanitization - Dangerous characters stripped from filenames ✅ Resource limits - Max size/scale to prevent DoS attacks
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
Error correction allows QR codes to remain scannable even when partially damaged or obscured: LevelRecovery 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 Key principle: Higher error correction = more damage tolerance but less data capacity. When to use H level: Embedding logos (covers 20-30% of center) Circular dots or rounded eyes Outdoor/weathered environments Low-quality printing Stickers that may peel/scratch
FormatTransparencyQualityFile SizeUse CaseSVG✅InfiniteSmallestWeb, scalable graphicsPNG✅LosslessMediumDigital displays, overlaysJPG❌LossySmallest*Print, photos, email *With compression
Scanning distance: Use --size 1024 for mobile (1-2m), --size 2048+ for print/posters Styling vs. reliability: Higher --ec levels compensate for --dot circle or --eye rounded Transparent backgrounds: Use PNG format with --transparent; JPG always uses white/specified background File size optimization: SVG for web, JPG with --quality 80-85 for print Data capacity: L/M/Q/H levels affect max alphanumeric capacity: ~4296/3391/2420/1852 chars (Version 40) Logo placement: Use --ec H and leave center area clear (approximately 30% of QR code)
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)
Long-tail utilities that do not fit the current primary taxonomy cleanly.
Largest current source with strong distribution and engagement signals.