generate-qr-code-natively
This Claude Code skill generates QR codes entirely offline using either Bash (qrencode) or Node.js (qrcode package) without external API calls. Use it when users request QR code creation from text, URLs, or payloads, particularly in privacy-sensitive workflows or automation pipelines that must avoid external dependencies. The skill supports PNG, SVG, and terminal output formats with configurable error correction levels and sizing options.
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-nativelySKILL.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 documentsEncrypt and decrypt files or streams using age — a simple, modern, and secure encryption tool with small explicit keys, passphrase support, SSH key support, post-quantum hybrid keys, and UNIX-style composability. No config options, no footguns.
Upload and host files anonymously using decentralized storage with Originless and IPFS.
Automate web browsers for AI agents using agent-browser CLI with deterministic element selection.
Star all repositories from a GitHub user automatically. Use when: (1) Supporting open source creators, (2) Bulk discovery of useful projects, or (3) Automating GitHub engagement.
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Log all chat messages to a SQLite database for searchable history and audit. Use when: (1) Building chat history, (2) Auditing conversations, (3) Searching past messages, or (4) User asks to log chats.
Check cryptocurrency wallet balances across multiple blockchains using free public APIs.
Calculate line-of-sight and road distances between two cities using free OpenStreetMap services.