QR Decoder Skill
Decode and extract data from QR codes in image files.
When to Use
✅ USE this skill when:
-
"Read this QR code"
-
"Decode QR from image"
-
"Extract URL from QR code"
-
"Scan QR code image"
-
"What's in this QR code?"
When NOT to Use
❌ DON'T use this skill when:
-
Creating QR codes → use qr-generator
-
Interactive camera scanning → use browser-tools
-
Need real-time decoding → use native tools
Commands
Decode from File
{baseDir}/decode.sh <image_file> {baseDir}/decode.sh qrcode.png {baseDir}/decode.sh photo.jpg
Decode Multiple Files
{baseDir}/decode.sh .png {baseDir}/decode.sh --dir ./images --pattern ".jpg"
Output Formats
{baseDir}/decode.sh qrcode.png --format text {baseDir}/decode.sh qrcode.png --format json {baseDir}/decode.sh qrcode.png --format raw {baseDir}/decode.sh qrcode.png --format qr-type
Batch Processing
{baseDir}/decode.sh --batch images.txt {baseDir}/decode.sh --dir ./qrcodes --output results.json
From URL
{baseDir}/decode.sh --url "https://example.com/qrcode.png" {baseDir}/decode.sh --url "https://example.com/qrcode.png" --save temp.png
From Webcam (if supported)
{baseDir}/decode.sh --camera {baseDir}/decode.sh --camera --device /dev/video0
Options
Option Description Default
--format FORMAT
Output format: text, json, raw, qr-type text
--dir DIR
Process all images in directory None
--pattern GLOB
File pattern for --dir *.{png,jpg,jpeg,gif}
--batch FILE
Read image paths from file None
--url URL
Decode from URL None
--save FILE
Save downloaded image None
--camera
Use camera for live decode false
--device DEVICE
Camera device path /dev/video0
--output FILE
Output to file stdout
--multi
Return all QR codes found first only
--quiet
Suppress errors false
QR Code Types
The skill can decode:
Type Description Example
URL Website links https://example.com
TEXT Plain text Any text content
WIFI WiFi credentials WIFI:S:MyNetwork;T:WPA;P:password;;
VEVENT Calendar event iCalendar format
VCARD Contact card vCard format
EMAIL Email address mailto:user@example.com
TEL Phone number tel:+1234567890
SMS SMS message sms:+1234567890?body=Hello
GEO Geographic location geo:40.7128,-74.0060
Output Format (JSON)
{ "file": "qrcode.png", "type": "URL", "data": "https://example.com", "parsed": { "url": "https://example.com", "domain": "example.com", "scheme": "https" }, "position": { "x": 100, "y": 100, "width": 200, "height": 200 } }
Examples
Decode a QR code:
{baseDir}/decode.sh qrcode.png
https://example.com
Get QR type:
{baseDir}/decode.sh qrcode.png --format qr-type
URL
Decode WiFi credentials:
{baseDir}/decode.sh wifi.png
WIFI:S:MyNetwork;T:WPA;P:password123;;
Parse as JSON:
{baseDir}/decode.sh qrcode.png --format json | jq '.data'
Decode from URL:
{baseDir}/decode.sh --url "https://example.com/qr.png"
Batch decode directory:
{baseDir}/decode.sh --dir ./qrcodes --format json --output results.json
Find all QR codes in image:
{baseDir}/decode.sh photo.jpg --multi
Parsed Output
For recognized formats (WiFi, vCard, URL, etc.), the skill provides parsed output:
WiFi QR:
Type: WIFI SSID: MyNetwork Security: WPA Password: password123 Hidden: No
vCard QR:
Type: VCARD Name: John Doe Phone: +1234567890 Email: john@example.com Organization: Example Corp
Exit Codes
-
0: Successfully decoded
-
1: No QR code found
-
2: Invalid image file
-
3: Dependency missing (zbar not installed)
-
4: Network error (for --url)
Dependencies
-
zbarimg (recommended): Primary decoder, handles most formats
-
libdecodeqr: Alternative decoder
-
fswebcam: For camera capture
Install on Debian/Ubuntu:
sudo apt install zbar-tools