Improve first-run and channel setup for non-technical users: detect newer Gemini key formats, pin Node 22.22.3, add Control Panel Telegram approve flow, and keep channels/models when config is rewritten. Persist uclaw wizard state via uclaw-meta.json so restarts skip language/persona prompts. Co-authored-by: Cursor <cursoragent@cursor.com>
1.6 KiB
1.6 KiB
name, description, metadata
| name | description | metadata | ||||
|---|---|---|---|---|---|---|
| qrcode-maker | QR code generator - turn links, text or WiFi details into a QR image. Fully offline. |
|
QR Code Generator
Turn links, text, contact details or WiFi credentials into a QR code image. Generated offline — nothing is sent anywhere.
What it does
- Link / text codes: any content to a PNG
- WiFi codes: scan to join, no typing the password
- Terminal preview: render the code as ASCII art in the conversation
How to run it
Use the Bash tool with Python's qrcode library — small and fully local.
python -c "import qrcode" 2>/dev/null || pip install -q "qrcode[pil]"
# Link or text -> PNG
python - <<'PY'
import qrcode
qrcode.make("https://u-claw.org").save("qrcode.png")
print("saved -> qrcode.png")
PY
# WiFi code (scan to connect)
python - <<'PY'
import qrcode
ssid, pwd, enc = "MyWiFi", "password123", "WPA" # enc: WPA / WEP / nopass
data = f"WIFI:T:{enc};S:{ssid};P:{pwd};;"
qrcode.make(data).save("wifi-qr.png")
print("saved WiFi code -> wifi-qr.png")
PY
# ASCII preview, no file written
python - <<'PY'
import qrcode
q = qrcode.QRCode(); q.add_data("https://u-claw.org"); q.make()
q.print_ascii(invert=True)
PY
Working notes
- Confirm what the user wants encoded, and whether they want a file saved
- After generating, use the Read tool to show the PNG back to the user
- Long content produces a dense, hard-to-scan code — suggest a short link instead
- WiFi passwords are credentials: write them to the local PNG only, never echo them into a message or a filename