BBQR (pronounced "barbequer"), the hottest terminal-based QR code generator that grills your data to perfection!
BBQR can handle all your QR code grilling needs:
- π URLs - Grill web links into scannable codes
- π Text - Smoke any text into QR perfection
- πΌοΈ Images - Convert images to base64 QR codes
- π Clipboard - Automatically grab clipboard content
- π Piped Input - Accept data from pipes and redirects
- π¨ Logo Embedding - Add custom logos to QR codes with high-quality rendering
- πΆ Saved WiFi Profiles:
- Windows: Uses
netshcommands - macOS: Reads from keychain
- Linux: Uses NetworkManager
- Windows: Uses
- π₯© Manual WiFi Entry: Enter SSID, password, security type
- Supports WPA/WPA2, WEP, and Open networks
- β¬οΈ File Upload: Upload files to 0x0.st with QR download codes
- π¦ Large File Support: Automatic chunking for files >512MB
- π Parallel Processing: Multi-threaded uploads/downloads
- β° Auto-Expiration: Files removed after 30 days
- π File Watching: Auto-generate QR codes when files change
- π Multi QR Generation: Process multiple lines from files
- π QR Code Reader: Decode and handle various QR content types
- π¨ BBQ Theme: Colorful, fun interface with ASCII art
- πΌοΈ High-Quality Logo Support: aspect ratio preservation
pip install bbqrThen start grilling:
bbqr --helpIf you want to contribute or run from source:
-
Clone the repository:
git clone https://github.com/foglomon/bbqr cd bbqr -
Install dependencies:
pip install -r requirements.txt
-
Start grilling:
python bbqr.py
# Basic QR generation
bbqr --url "https://github.com"
bbqr --text "Hello, World!"
bbqr --image photo.jpg
bbqr --clipboard
bbqr --wifi
# File operations
bbqr --file document.pdf
bbqr --read qrcode.png
# Advanced features
bbqr --watch notes.txt
bbqr --multi urls.txt
bbqr --watch journal.md --output qr_codes/
# Options
bbqr --text "Hello" --size 15 --save --copy
bbqr --url "https://github.com" --save
# Logo embedding
bbqr --url "https://mycompany.com" --logo company_logo.png
bbqr --wifi --logo logo.png --logo-size 25
bbqr --text "Hello World!" --logo brand.jpg --save
# Piped input
echo "Secret message" | bbqr
date | bbqr --save
curl -s https://api.github.com/users/octocat | bbqrRun without arguments for the BBQ-themed menu:
bbqrYou'll see a beautiful interface:
π₯ Welcome to BBQR - The Barbequer! π₯
Time to grill your data into delicious QR codes!
ββββββββββββββββββββββββββββββββββββββββββββββββββ
π Interactive Mode - What would you like to grill?
1. π URL
2. π Text
3. πΌοΈ Image
4. π Clipboard
5. π WiFi
6. β¬οΈ Upload File
7. π Watch File
8. π Multi QR from File
9. π Read QR Code
- Dark/Light Mode Compatible: Uses ASCII blocks optimized for both themes
- Instant Preview: See your QR code immediately without files
- Beautiful ASCII Art: Clean, scannable terminal QR codes
- Auto-generated filenames:
bbqr_[type]_[YYYYMMDD_HHMMSS].png - Safe naming: No overwriting, proper extensions
- Multiple formats supported: PNG output for all QR types
BBQR now supports adding custom logos to your QR codes with professional-quality rendering:
- High-Quality Processing: LANCZOS resampling for crisp logo rendering
- Aspect Ratio Preservation: Logos maintain their original proportions
- Multiple Format Support: PNG, JPG, JPEG, GIF, BMP, TIFF
- Transparency Support: Full RGBA and palette transparency handling
- Error Correction: Automatically uses higher error correction for logo QR codes
- Auto-Save: QR codes with logos are automatically saved to files
# Add logo via command line
bbqr --text "Hello World!" --logo company_logo.png
bbqr --wifi --logo brand.jpg --logo-size 25
bbqr --url "https://mysite.com" --logo logo.png --logo-size 15
# Interactive mode prompts for logo options
bbqr- Size range: 10-30% of QR code size
- Default: 20% (optimal for most designs)
- Larger logos may affect scannability
- Uses higher error correction (ERROR_CORRECT_H) when logos are embedded
- Logos are centered and scaled proportionally
- Output files include timestamp:
bbqr_[type]_with_logo_[timestamp].png
Windows:
- Uses
netsh wlan show profilesto list saved networks - Retrieves passwords with
netsh wlan show profile key=clear
macOS:
- Reads from system keychain using
securitycommand - Falls back to
networksetupfor profile listing
Linux:
- Uses NetworkManager (
nmcli) for profile management - Falls back to
/etc/wpa_supplicant/wpa_supplicant.conf
For new networks or when automatic retrieval fails:
- Enter SSID (network name)
- Select security type (WPA/WPA2, WEP, Open)
- Enter password if required
Generated QR codes work with all modern smartphones!
BBQR integrates with 0x0.st for easy file sharing:
- Large File Support: Automatic chunking for files >512MB
- Parallel Processing: Multi-threaded uploads/downloads
- Progress Tracking: Real-time progress bars
- Integrity Checking: SHA256 hash verification
- Auto-Cleanup: Temporary files automatically removed
- Upload file to 0x0.st (30-day expiration)
- Generate QR code containing download information
- Scan QR code to download and reassemble file
- Automatic integrity verification
BBQR can decode various QR code types:
- Displays network name, security type, password
- Can automatically connect on Windows
- Supports standard WiFi QR format
- Shows file info (name, size, chunks)
- Downloads and reassembles automatically
- Verifies file integrity
- Extracts base64-encoded images
- Saves to Pictures directory
- Supports multiple image formats
- Displays content with formatting
- Opens URLs in browser
- Copies content to clipboard
Monitor files for changes and auto-generate QR codes:
# Watch file with default output
python bbqr.py --watch notes.txt
# Custom output location
python bbqr.py --watch journal.md --output qr_codes/journal_qr.png
# Custom QR size
python bbqr.py --watch data.txt --size 15Uses cross-platform file watching (falls back to polling if needed).
Generate QR codes from multiple lines in a file:
python bbqr.py --multi urls.txt
python bbqr.py --multi contact_list.txt --size 12Creates numbered QR code files in a qrcodes/ directory.
qrcode[pil]: QR code generationPillow: Image processingpyperclip: Clipboard operationscolorama: Cross-platform colored outputwatchdog: File monitoringpyzbar: QR code decodingrequests: HTTP operations for file upload
bbqr.py # Main script
requirements.txt # Dependencies
README.md # This file
QUICKSTART.md # Quick start guide
LICENSE # MIT License
- Multi-threaded file operations
- Efficient chunking algorithm
- Memory-conscious processing
- Progress tracking for long operations
BBQR uses a fun BBQ theme throughout:
- π₯ Fire emojis for active operations
- π₯© Meat emojis for success messages
- π¨ Smoke emojis for info messages
- π₯ Explosion emojis for errors
- BBQ-themed terminology ("grilling", "smoking", "cooking")
# Quick URL QR
python bbqr.py -u "https://example.com"
# Text with custom size
python bbqr.py -t "Meeting at 3PM" -s 12
# Clipboard content
python bbqr.py -c# File upload with save
python bbqr.py --file presentation.pdf --save
# Watch file with custom output
python bbqr.py --watch todo.txt --output ~/Desktop/todo_qr.png
# Multi QR generation
python bbqr.py --multi contact_list.txt
# Read and handle QR code
python bbqr.py --read wifi_qr.png# From file
cat secret.txt | python bbqr.py
# From command output
date | python bbqr.py --save
# Chain commands
curl -s https://api.github.com/users/octocat | python bbqr.py --copy- QR codes display directly in terminal using ASCII art
- Use
--saveto create PNG files with auto-generated names - Larger
--sizevalues create more detailed QR codes - WiFi QR codes work with most modern smartphones
- File watching supports both real-time monitoring and polling fallback
- Multi QR generation creates organized numbered files
- QR reading handles multiple content types intelligently
- Fork the repository
- Create a feature branch
- Add your BBQ-themed improvements
- Test thoroughly across platforms
- Submit a pull request
MIT License - Feel free to grill this code however you like!
Happy Grilling! π₯ππ₯
"Where data meets the grill, and QR codes are always perfectly cooked!"
- Python 3.7 or higher
- Windows OS (for WiFi profile management)
-
Clone or download this repository:
git clone <repository-url> cd bbqr
-
Install dependencies:
pip install -r requirements.txt
-
Make it executable (optional):
pip install -e .
# Generate QR from URL
python bbqr.py --url https://github.com
# Generate QR from text
python bbqr.py --text "Hello, World!"
# Generate QR from image
python bbqr.py --image photo.jpg
# Generate QR from clipboard
python bbqr.py --clipboard
# Generate WiFi QR code
python bbqr.py --wifi
# Piped input
echo "Secret message" | python bbqr.py
# Custom size and auto-save with timestamp
python bbqr.py --text "Hello" --size 15 --save
# Save any QR code with auto-generated filename (works with all input types)
python bbqr.py --url "https://github.com" --save
python bbqr.py --wifi --saveBBQR has a safe dual output system:
- Dark Mode Compatible: Uses white blocks that show clearly on dark backgrounds
- Light Mode Compatible: Uses proper spacing for light backgrounds
- ASCII Art: Beautiful terminal-based QR code display
- Instant View: See your QR code immediately without opening files
Run without arguments for interactive mode:
python bbqr.pyYou'll see a beautiful BBQ-themed menu:
π₯ Welcome to BBQR - The Barbequer! π₯
Time to grill your data into delicious QR codes!
ββββββββββββββββββββββββββββββββββββββββββββββββββ
π Interactive Mode - What would you like to grill?
1. π URL
2. π Text
3. πΌοΈ Image
4. π Clipboard
5. πΆ WiFi
The WiFi feature offers two grilling methods:
- Automatically discovers all saved Windows WiFi profiles
- Retrieves stored passwords using Windows netsh
- One-click QR generation for known networks
- Enter SSID, security type, and password manually
- Supports WPA/WPA2, WEP, and Open networks
- Perfect for sharing guest networks
Generated WiFi QR codes use the standard format:
WIFI:T:WPA;S:NetworkName;P:password;;
When scanned, devices will automatically prompt to join the network!
BBQR brings the heat with:
- π₯ Fire emojis for emphasis
- π₯© Meat-themed progress indicators
- π Grill terminology throughout
- π¨ Smoke effects for processing
- qrcode[pil] - QR code generation with PIL imaging
- Pillow - Image processing
- pyperclip - Clipboard access
- click - Command-line interface enhancements
- colorama - Cross-platform colored terminal text
Uses Windows netsh command for:
- Listing saved WiFi profiles
- Retrieving stored passwords
- No additional dependencies required
- Fork the repository
- Create a feature branch
- Add your BBQ-themed improvements
- Test thoroughly
- Submit a pull request
GNU GPLv3
# Quick URL QR
python bbqr.py -u "https://example.com"
# Text with custom size
python bbqr.py -t "Meeting at 3PM" -s 12
# Clipboard content
python bbqr.py -c# From file
cat secret.txt | python bbqr.py
# From command output
date | python bbqr.py
# Chain commands
curl -s https://api.github.com/users/octocat | python bbqr.py# Interactive WiFi setup
python bbqr.py --wifi
# This will show:
# 1. π₯ Use saved WiFi profile
# 2. π₯© Add new WiFi credentials- QR codes are displayed directly in the terminal using ASCII art
- Use
--outputto save QR codes as image files - Larger
--sizevalues create more detailed QR codes - WiFi QR codes work with most modern smartphones
- Pipe any command output to instantly create QR codes
Happy Grilling! π₯ππ₯
"Where data meets the grill, and QR codes are always perfectly cooked!"