Create professional Wi-Fi QR codes in seconds. This app runs entirely in the browser, supports WPA/WPA2, WEP, and open networks, and lets you export PNG or SVG with adjustable size and error correction.
If you share Wi-Fi often, typing passwords is slow and error-prone. This tool generates the standardized QR payload so phones can connect instantly. No accounts, no backend, and no data leaves your device.
- WPA/WPA2, WEP, and open network support.
- Hidden SSID option.
- Adjustable QR size and error correction.
- Export PNG or SVG.
- Copy the raw Wi-Fi payload for advanced use.
- No storage, no tracking, no backend.
- Clean, responsive UI that works on mobile and desktop.
- Open index.html in a modern browser.
- Enter your SSID and password.
- Choose security type, size, and format.
- Click "Generate QR code".
- Scan or download the QR code.
The generator builds a standard Wi-Fi QR payload like this:
WIFI:T:WPA;S:MyNetwork;P:MyPassword;H:true;;
Tis the auth type (WPA,WEP, ornopass).Sis the SSID.Pis the password (omitted for open networks).H:trueis used when the SSID is hidden.
Reserved characters in SSID or password (\, ;, ,, :, ") are escaped before encoding.
- Security type
- WPA/WPA2: password length 8-63 characters.
- WEP: 5 or 13 ASCII characters, or 10 or 26 hex characters.
- No password: no password required.
- Hidden network: include
H:truein the payload. - QR size: visual size in pixels.
- Error correction: more correction increases reliability but makes the QR denser.
- Format: PNG for raster images, SVG for crisp scaling in print.
.
├── index.html
├── style.css
├── script.js
├── lib
│ └── wifi-qr.js
├── tests
│ └── wifi-string.test.js
├── .github
│ └── workflows
│ └── python-ci.yml
└── LICENSE
No build step is required. Open index.html in your browser.
If you want to run tests locally:
npm test
GitHub Actions runs the tests on every push and pull request to main using the workflow in .github/workflows/python-ci.yml.
The QR library is loaded from a CDN by default. To run fully offline:
- Download
qrcode.min.jsfrom https://github.com/soldair/node-qrcode - Save it next to index.html.
- Replace the CDN script tag with a local reference.
- All data stays in your browser.
- Nothing is stored or transmitted.
- Close the tab to clear everything.
- "QR code library failed to load": Check your connection or switch to the offline setup above.
- WPA password rejected: Must be 8-63 characters.
- WEP password rejected: Use 5/13 ASCII or 10/26 hex characters.
Works in current versions of Chrome, Edge, Firefox, and Safari.
Issues and pull requests are welcome. Please include clear reproduction steps and screenshots for UI bugs.
MIT. See LICENSE.

