A clean, private desktop app for creating customizable QR codes. Generate codes for text, links, Wi-Fi networks, emails, and contacts without uploading your data.
- Five QR types: text, URL, Wi-Fi, email, and vCard contact
- Custom foreground and background colors
- Four error-correction levels
- Instant on-device preview
- PNG and scalable SVG export
- Cross-platform interface for Windows, macOS, and Linux
- Automatic Windows and macOS builds with GitHub Actions
- Unit-tested payload generation
Many QR websites require an internet connection, surround a simple task with advertising, or route content through external services. I wanted a fast desktop alternative whose core features work completely offline. The project also gave me experience separating interface code from testable data-generation logic, supporting interoperability standards such as Wi-Fi QR payloads and vCard, and automating cross-platform releases.
app.py Desktop interface and user workflow
qr_core.py Payload validation and QR rendering
tests/test_qr_core.py Automated unit tests
.github/workflows/ Tests and release builds
Python 3.10 or newer is recommended.
git clone https://github.com/KenanSab/KenansQRGenerator.git
cd KenansQRGenerator
python -m pip install -r requirements.txt
python app.pypython -m unittest discover -s tests -vOn Windows, run build_windows.bat. On macOS, run:
bash build_macos.shTagged releases are automatically built for both platforms. Create one with:
git tag v1.0.0
git push origin v1.0.0All QR generation happens locally. The app does not collect analytics, connect to a server, or upload QR contents.
- Optional center logos with scan-safety checks
- Recent-code history stored locally
- Batch generation from CSV files
- Additional QR formats such as calendar events and geographic coordinates
Ideas and contributions are welcome through GitHub Issues and pull requests.
Python · CustomTkinter · qrcode · Pillow · GitHub Actions
MIT © 2026 Kenan