Skip to main content
ClaudeWave
Skill122 repo starsupdated 26d ago

generate-qr-code-natively

Generate QR codes locally without external APIs using native CLI and runtime libraries in Bash and Node.js.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/besoeasy/open-skills /tmp/generate-qr-code-natively && cp -r /tmp/generate-qr-code-natively/skills/generate-qr-code-natively ~/.claude/skills/generate-qr-code-natively
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Generate QR Code Natively

Create QR codes fully offline on the local machine (no third-party QR API calls).

## When to use
- User asks to generate a QR code from text, URL, wallet address, or payload
- Privacy-sensitive workflows where data should stay local
- Fast automation pipelines that should not depend on external services

## Required tools / APIs
- No external API required
- Bash CLI option: `qrencode`
- Node.js option: `qrcode` package

Install options:

```bash
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y qrencode

# Node.js
npm install qrcode
```

## Skills

### generate_qr_with_bash

Generate PNG and terminal QR directly from shell.

```bash
# Encode text into PNG
DATA="https://example.com/report?id=123"
qrencode -o qrcode.png -s 8 -m 2 "$DATA"

# Print QR in terminal (UTF-8 block mode)
qrencode -t UTF8 "$DATA"

# SVG output
qrencode -t SVG -o qrcode.svg "$DATA"
```

### generate_qr_with_nodejs

```javascript
import QRCode from 'qrcode';

const data = process.argv[2] || 'https://example.com';

async function main() {
  await QRCode.toFile('qrcode.png', data, {
    errorCorrectionLevel: 'M',
    margin: 2,
    width: 512
  });

  const svg = await QRCode.toString(data, { type: 'svg', margin: 2 });
  await import('node:fs/promises').then(fs => fs.writeFile('qrcode.svg', svg));

  const terminal = await QRCode.toString(data, { type: 'terminal' });
  console.log(terminal);
  console.log('Saved: qrcode.png, qrcode.svg');
}

main().catch(err => {
  console.error('QR generation failed:', err.message);
  process.exit(1);
});
```

Run:
```bash
node generate-qr.js "https://example.com/invoice/abc"
```

## Agent prompt
```text
You are generating QR codes locally without calling external QR APIs.
Use Bash (qrencode) for quick CLI generation or Node.js (qrcode package) for programmatic control.
Return:
1) command/code used,
2) output filenames (png/svg),
3) brief validation note (e.g., "scan test recommended").
If dependency is missing, provide the install command and retry.
```

## Best practices
- Keep payload concise for better scan reliability
- Use at least error correction level `M` for general use
- Export PNG for compatibility and SVG for scalable print/web usage
- Validate with a scanner after generation

## Troubleshooting
- `qrencode: command not found` → install `qrencode` via package manager
- Node import error → ensure `npm install qrcode` completed
- Dense/unclear QR image → increase image size/box size and reduce payload length

## See also
- [pdf-manipulation.md](pdf-manipulation.md) — combine generated QR images into documents