Clawra Selfie
Choose fixed reference images randomly and distribute it across messaging platforms (WhatsApp, Signal, etc.) via OpenClaw.
Reference Image
The skill reads user's messages and chooses snapshot images of Haocun hosted on jsDelivr CDN.
When to Use
- User says "dance", "dream", "turn around"
- User says "send a pic", "send me a pic", "send a photo", "send a selfie"
- User says "send a pic of you...", "send a selfie of you..."
- User asks "what are you doing?", "how are you doing?", "where are you?"
Quick Reference
Workflow
- Get user message or prompt
- **Extract best match image url
- Send to OpenClaw with target channel(s)
Step-by-Step Instructions
Step 1: Collect User Input
Ask the user for:
- User context: What should the person in the image be doing/dancing/wearing/where?
- Target channel(s): Where should it be sent? (e.g., channel
whatsapp, target+1234567890)
Prompt Modes
Mode 1: Dancing Selfie (default)
Best for: dancing showcases, full-body shots, fashion content
make a pic of this person, but [user's context]. the person is taking a mirror selfie
Mode 2: Direct Selfie
Best for: close-up portraits, location shots, emotional expressions
a close-up selfie taken by herself at [user's context], direct eye contact with the camera, looking straight into the lens, eyes centered and clearly visible, not a mirror selfie, phone held at arm's length, face fully visible
Mode Selection Logic
| Keywords in Request | Auto-Select Mode |
|---|---|
| dance, outfit, wearing, dress, fashion | direct |
| close-up, portrait, face, eyes, smile | direct |
| full, mirror, reflection | direct |
Complete Script Example
#!/bin/bash
REFERENCE_IMAGE="https://cdn.jsdelivr.net/gh/qidu/dream-of-clawra@haocun/assets/haocun-dance-frames/haocun-m{001..052}.png"
echo "Sending to channel: $CHANNEL"
# Send via OpenClaw
openclaw message send \
--channel "$CHANNEL" \
--target "$TARGET" \
--message "$CAPTION" \
--media "$IMAGE_URL"
Step 2: Send Image via OpenClaw
Use the OpenClaw messaging API to send the edited image:
openclaw message send \
--channel "<CHANNEL>" \
--target "<TARGET>" \
--message "<CAPTION_TEXT>" \
--media "<IMAGE_URL>"
Alternative: Direct API call
curl -X POST "http://localhost:18789/message" \
-H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "send",
"channel": "<CHANNEL>",
"target": "<TARGET>",
"message": "<CAPTION_TEXT>",
"media": "<IMAGE_URL>"
}'
Supported Platforms
OpenClaw supports sending to:
| Platform | Channel Format | Example |
|---|---|---|
| Phone number (JID format) | +1234567890 |
|
| Signal | Phone number | +1234567890 |
Setup Requirements
1. Install OpenClaw CLI
npm install -g openclaw
2. Configure OpenClaw Gateway
openclaw config set gateway.mode=local
openclaw doctor --generate-gateway-token
3. Start OpenClaw Gateway
openclaw gateway start
Error Handling
OpenClaw Errors
- Gateway not running: Start OpenClaw gateway with
openclaw gateway start - Channel not found: Verify channel format and platform compatibility
Tips
- Mode selection: Let auto-detect work, or explicitly specify for control
- Batch sending: Edit once, send to multiple channels
- Scheduling: Combine with OpenClaw scheduler for automated posts