{"id":"3f933554-0bac-415f-9bb9-da87d3aca8eb","shortId":"fsuaEY","kind":"skill","title":"generate-qr-code-natively","tagline":"Generate QR codes locally without external APIs using native CLI and runtime libraries in Bash and Node.js.","description":"# Generate QR Code Natively\n\nCreate QR codes fully offline on the local machine (no third-party QR API calls).\n\n## When to use\n- User asks to generate a QR code from text, URL, wallet address, or payload\n- Privacy-sensitive workflows where data should stay local\n- Fast automation pipelines that should not depend on external services\n\n## Required tools / APIs\n- No external API required\n- Bash CLI option: `qrencode`\n- Node.js option: `qrcode` package\n\nInstall options:\n\n```bash\n# Ubuntu/Debian\nsudo apt-get update && sudo apt-get install -y qrencode\n\n# Node.js\nnpm install qrcode\n```\n\n## Skills\n\n### generate_qr_with_bash\n\nGenerate PNG and terminal QR directly from shell.\n\n```bash\n# Encode text into PNG\nDATA=\"https://example.com/report?id=123\"\nqrencode -o qrcode.png -s 8 -m 2 \"$DATA\"\n\n# Print QR in terminal (UTF-8 block mode)\nqrencode -t UTF8 \"$DATA\"\n\n# SVG output\nqrencode -t SVG -o qrcode.svg \"$DATA\"\n```\n\n### generate_qr_with_nodejs\n\n```javascript\nimport QRCode from 'qrcode';\n\nconst data = process.argv[2] || 'https://example.com';\n\nasync function main() {\n  await QRCode.toFile('qrcode.png', data, {\n    errorCorrectionLevel: 'M',\n    margin: 2,\n    width: 512\n  });\n\n  const svg = await QRCode.toString(data, { type: 'svg', margin: 2 });\n  await import('node:fs/promises').then(fs => fs.writeFile('qrcode.svg', svg));\n\n  const terminal = await QRCode.toString(data, { type: 'terminal' });\n  console.log(terminal);\n  console.log('Saved: qrcode.png, qrcode.svg');\n}\n\nmain().catch(err => {\n  console.error('QR generation failed:', err.message);\n  process.exit(1);\n});\n```\n\nRun:\n```bash\nnode generate-qr.js \"https://example.com/invoice/abc\"\n```\n\n## Agent prompt\n```text\nYou are generating QR codes locally without calling external QR APIs.\nUse Bash (qrencode) for quick CLI generation or Node.js (qrcode package) for programmatic control.\nReturn:\n1) command/code used,\n2) output filenames (png/svg),\n3) brief validation note (e.g., \"scan test recommended\").\nIf dependency is missing, provide the install command and retry.\n```\n\n## Best practices\n- Keep payload concise for better scan reliability\n- Use at least error correction level `M` for general use\n- Export PNG for compatibility and SVG for scalable print/web usage\n- Validate with a scanner after generation\n\n## Troubleshooting\n- `qrencode: command not found` → install `qrencode` via package manager\n- Node import error → ensure `npm install qrcode` completed\n- Dense/unclear QR image → increase image size/box size and reduce payload length\n\n## See also\n- [pdf-manipulation.md](pdf-manipulation.md) — combine generated QR images into documents","tags":["generate","code","natively","open","skills","besoeasy","agent-skills","ai-agents","claude-code","clawdbot","clawdbot-skill","llm-tools"],"capabilities":["skill","source-besoeasy","skill-generate-qr-code-natively","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-clawdbot","topic-clawdbot-skill","topic-llm-tools","topic-mcp-server","topic-openai","topic-openclaw","topic-vibe-coding","topic-vibecoding"],"categories":["open-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/besoeasy/open-skills/generate-qr-code-natively","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add besoeasy/open-skills","source_repo":"https://github.com/besoeasy/open-skills","install_from":"skills.sh"}},"qualityScore":"0.505","qualityRationale":"deterministic score 0.51 from registry signals: · indexed on github topic:agent-skills · 111 github stars · SKILL.md body (2,611 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:55:03.780Z","embedding":null,"createdAt":"2026-04-18T22:10:44.958Z","updatedAt":"2026-05-02T12:55:03.780Z","lastSeenAt":"2026-05-02T12:55:03.780Z","tsv":"'-8':149 '/invoice/abc':238 '/report?id=123':135 '1':231,268 '2':142,176,188,199,271 '3':275 '512':190 '8':140 'address':57 'agent':239 'also':358 'api':12,41,81,84,252 'apt':100,105 'apt-get':99,104 'ask':47 'async':178 'autom':70 'await':181,193,200,211 'bash':20,86,96,118,127,233,254 'best':293 'better':299 'block':150 'brief':276 'call':42,249 'catch':223 'cli':15,87,258 'code':4,8,25,29,52,246 'combin':361 'command':290,330 'command/code':269 'compat':315 'complet':345 'concis':297 'console.error':225 'console.log':216,218 'const':173,191,209 'control':266 'correct':306 'creat':27 'data':65,132,143,155,163,174,184,195,213 'dense/unclear':346 'depend':75,284 'direct':124 'document':366 'e.g':279 'encod':128 'ensur':341 'err':224 'err.message':229 'error':305,340 'errorcorrectionlevel':185 'example.com':134,177,237 'example.com/invoice/abc':236 'example.com/report?id=123':133 'export':312 'extern':11,77,83,250 'fail':228 'fast':69 'filenam':273 'found':332 'fs':205 'fs.writefile':206 'fs/promises':203 'fulli':30 'function':179 'general':310 'generat':2,6,23,49,115,119,164,227,244,259,327,362 'generate-qr-code-n':1 'generate-qr.js':235 'get':101,106 'imag':348,350,364 'import':169,201,339 'increas':349 'instal':94,107,112,289,333,343 'javascript':168 'keep':295 'least':304 'length':356 'level':307 'librari':18 'local':9,34,68,247 'm':141,186,308 'machin':35 'main':180,222 'manag':337 'margin':187,198 'miss':286 'mode':151 'nativ':5,14,26 'node':202,234,338 'node.js':22,90,110,261 'nodej':167 'note':278 'npm':111,342 'o':137,161 'offlin':31 'option':88,91,95 'output':157,272 'packag':93,263,336 'parti':39 'payload':59,296,355 'pdf-manipulation.md':359,360 'pipelin':71 'png':120,131,313 'png/svg':274 'practic':294 'print':144 'print/web':320 'privaci':61 'privacy-sensit':60 'process.argv':175 'process.exit':230 'programmat':265 'prompt':240 'provid':287 'qr':3,7,24,28,40,51,116,123,145,165,226,245,251,347,363 'qrcode':92,113,170,172,262,344 'qrcode.png':138,183,220 'qrcode.svg':162,207,221 'qrcode.tofile':182 'qrcode.tostring':194,212 'qrencod':89,109,136,152,158,255,329,334 'quick':257 'recommend':282 'reduc':354 'reliabl':301 'requir':79,85 'retri':292 'return':267 'run':232 'runtim':17 'save':219 'scalabl':319 'scan':280,300 'scanner':325 'see':357 'sensit':62 'servic':78 'shell':126 'size':352 'size/box':351 'skill':114 'skill-generate-qr-code-natively' 'source-besoeasy' 'stay':67 'sudo':98,103 'svg':156,160,192,197,208,317 'termin':122,147,210,215,217 'test':281 'text':54,129,241 'third':38 'third-parti':37 'tool':80 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-clawdbot' 'topic-clawdbot-skill' 'topic-llm-tools' 'topic-mcp-server' 'topic-openai' 'topic-openclaw' 'topic-vibe-coding' 'topic-vibecoding' 'troubleshoot':328 'type':196,214 'ubuntu/debian':97 'updat':102 'url':55 'usag':321 'use':13,45,253,270,302,311 'user':46 'utf':148 'utf8':154 'valid':277,322 'via':335 'wallet':56 'width':189 'without':10,248 'workflow':63 'y':108","prices":[{"id":"1ba31881-10c1-4b29-8257-77e37b05f5ea","listingId":"3f933554-0bac-415f-9bb9-da87d3aca8eb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"besoeasy","category":"open-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:10:44.958Z"}],"sources":[{"listingId":"3f933554-0bac-415f-9bb9-da87d3aca8eb","source":"github","sourceId":"besoeasy/open-skills/generate-qr-code-natively","sourceUrl":"https://github.com/besoeasy/open-skills/tree/main/skills/generate-qr-code-natively","isPrimary":false,"firstSeenAt":"2026-04-18T22:10:44.958Z","lastSeenAt":"2026-05-02T12:55:03.780Z"}],"details":{"listingId":"3f933554-0bac-415f-9bb9-da87d3aca8eb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"besoeasy","slug":"generate-qr-code-natively","github":{"repo":"besoeasy/open-skills","stars":111,"topics":["agent-skills","ai","ai-agents","claude-code","clawdbot","clawdbot-skill","llm-tools","mcp-server","openai","openclaw","vibe-coding","vibecoding"],"license":null,"html_url":"https://github.com/besoeasy/open-skills","pushed_at":"2026-03-31T13:05:30Z","description":"Battle-tested skill library for AI agents. Save 98% of API costs with ready-to-use code for crypto, PDFs, search, web scraping & more. No trial-and-error, no expensive APIs.","skill_md_sha":"03c38aaa93e46ebc2a04dcf9a1b3d69ed9f7b0a6","skill_md_path":"skills/generate-qr-code-natively/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/besoeasy/open-skills/tree/main/skills/generate-qr-code-natively"},"layout":"multi","source":"github","category":"open-skills","frontmatter":{"name":"generate-qr-code-natively","description":"Generate QR codes locally without external APIs using native CLI and runtime libraries in Bash and Node.js."},"skills_sh_url":"https://skills.sh/besoeasy/open-skills/generate-qr-code-natively"},"updatedAt":"2026-05-02T12:55:03.780Z"}}