fix(portable): Gemini keys, Telegram pairing UI, and config durability
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>
This commit is contained in:
55
portable/skills/en/qrcode-maker/SKILL.md
Normal file
55
portable/skills/en/qrcode-maker/SKILL.md
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: qrcode-maker
|
||||
description: "QR code generator - turn links, text or WiFi details into a QR image. Fully offline."
|
||||
metadata: { "openclaw": { "emoji": "🔳" } }
|
||||
---
|
||||
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user