# Qr Code

> QR code generation and reading — create and decode QR codes Use when this capability is needed.

- Skill: `tomevault-io/qr-code-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/qr-code-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/qr-code-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/qr-code-2

---

# QR Code

Generate and read QR codes.

## Generate QR Codes

### Option 1: API (Quick)

```bash
# QRServer API (free)
curl -s "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=https://example.com" -o qr.png

# With customization
curl -s "https://api.qrserver.com/v1/create-qr-code/?size=400x400&color=000000&bgcolor=FFFFFF&data=Hello%20World" -o qr.png

# GoQR API
curl -s "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=TEXT" -o qr.png

# QR code for WiFi
WIFI_DATA="WIFI:T:WPA;S:NetworkName;P:Password;;"
curl -s "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=$(echo "$WIFI_DATA" | jq -sRr @uri)" -o wifi-qr.png
```

### Option 2: qrencode (Local)

```bash
# Install
# Ubuntu/Debian: sudo apt install qrencode
# macOS: brew install qrencode

# Basic QR code (terminal)
qrencode -t UTF8 "https://example.com"

# PNG output
qrencode -o qr.png "https://example.com"

# Custom size
qrencode -o qr.png -s 10 -m 2 "https://example.com"

# High error correction
qrencode -o qr.png -l H "https://example.com"

# SVG output
qrencode -o qr.svg -t SVG "https://example.com"

# ASCII output
qrencode -t ASCII "https://example.com"
```

### Option 3: Python (qrcode)

```python
# generate_qr.py
import qrcode
import sys

data = sys.argv[1] if len(sys.argv) > 1 else "https://example.com"
filename = sys.argv[2] if len(sys.argv) > 2 else "qr.png"

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data(data)
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
print(f"QR code saved to {filename}")
```

```bash
pip install qrcode[pil]
python generate_qr.py "https://example.com" qr.png
```

## Read/Decode QR Codes

### Option 1: Online API

```bash
# Decode QR code image
curl -s -X POST "https://api.qrserver.com/v1/read-qr-code/" \
  -F "file=@qr.png" | jq '.[0].symbol[0].data'
```

### Option 2: zbar (Local)

```bash
# Install
# Ubuntu/Debian: sudo apt install zbar-tools
# macOS: brew install zbar

# Decode QR code from image
zbarimg qr.png

# Decode from camera (Linux)
zbarcam

# Quiet output (just data)
zbarimg --raw qr.png
```

### Option 3: Python (pyzbar)

```python
# read_qr.py
from pyzbar.pyzbar import decode
from PIL import Image
import sys

image_path = sys.argv[1] if len(sys.argv) > 1 else "qr.png"
img = Image.open(image_path)

results = decode(img)
for result in results:
    print(result.data.decode('utf-8'))
```

```bash
pip install pyzbar pillow
python read_qr.py qr.png
```

## QR Code Types

```bash
# URL
qrencode -o url.png "https://example.com"

# Email
qrencode -o email.png "mailto:hello@example.com?subject=Hello&body=Hi"

# Phone
qrencode -o phone.png "tel:+5511999999999"

# SMS
qrencode -o sms.png "sms:+5511999999999?body=Hello"

# WiFi
qrencode -o wifi.png "WIFI:T:WPA;S:MyNetwork;P:MyPassword;;"

# vCard
VCARD="BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nTEL:+5511999999999\nEMAIL:john@example.com\nEND:VCARD"
echo -e "$VCARD" | qrencode -o contact.png -r -

# Bitcoin address
qrencode -o btc.png "bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
```

## Tips

- Use error correction level L/M/Q/H for redundancy
- Higher error correction = larger QR codes
- Test QR codes with multiple readers
- Keep QR codes simple for better scanning
- Minimum recommended size: 200x200 pixels

## Triggers

qr code, qr, generate qr, create qr code, barcode, qr generator,
scan qr, read qr

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/jholhewres) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

