prompt-lookup
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
Edit Clawra's reference image with Grok Imagine (xAI Aurora) and send selfies to messaging channels via OpenClaw
Claude Code
$ npx -y skills add sumelabs/clawra --skill clawra --agent claude-code
Codex
$ npx skills add sumelabs/clawra --skill clawra -a codex -y
Cursor
$ npx skills add sumelabs/clawra --skill clawra -a cursor -y
Gemini CLI
$ npx skills add sumelabs/clawra --skill clawra -a gemini-cli -y
GitHub Copilot
$ npx skills add sumelabs/clawra --skill clawra -a github-copilot -y
OpenCode
$ npx skills add sumelabs/clawra --skill clawra -a opencode -y
Windsurf
$ npx skills add sumelabs/clawra --skill clawra -a windsurf -y
name: clawra-selfie description: Edit Clawra's reference image with Grok Imagine (xAI Aurora) and send selfies to messaging channels via OpenClaw allowed-tools: Bash(npm:*) Bash(npx:*) Bash(openclaw:*) Bash(curl:*) Read Write WebFetch
Edit a fixed reference image using xAI's Grok Imagine model and distribute it across messaging platforms (WhatsApp, Telegram, Discord, Slack, etc.) via OpenClaw.
The skill uses a fixed reference image hosted on jsDelivr CDN:
https://cdn.jsdelivr.net/gh/SumeLabs/clawra@main/assets/clawra.png
FAL_KEY=your_fal_api_key # Get from https://fal.ai/dashboard/keys OPENCLAW_GATEWAY_TOKEN=your_token # From: openclaw doctor --generate-gateway-token
1. **Get user prompt** for how to edit the image 2. **Edit image** via fal.ai Grok Imagine Edit API with fixed reference 3. **Extract image URL** from response 4. **Send to OpenClaw** with target channel(s)
Ask the user for:
Best for: outfit showcases, full-body shots, fashion content
make a pic of this person, but [user's context]. the person is taking a mirror selfie
**Example**: "wearing a santa hat" →
make a pic of this person, but wearing a santa hat. the person is taking a mirror 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
**Example**: "a cozy cafe with warm lighting" →
a close-up selfie taken by herself at a cozy cafe with warm lighting, 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
| Keywords in Request | Auto-Select Mode | |---------------------|------------------| | outfit, wearing, clothes, dress, suit, fashion | `mirror` | | cafe, restaurant, beach, park, city, location | `direct` | | close-up, portrait, face, eyes, smile | `direct` | | full-body, mirror, reflection | `mirror` |
Use the fal.ai API to edit the reference image:
REFERENCE_IMAGE="https://cdn.jsdelivr.net/gh/SumeLabs/clawra@main/assets/clawra.png"
# Mode 1: Mirror Selfie
PROMPT="make a pic of this person, but <USER_CONTEXT>. the person is taking a mirror selfie"
# Mode 2: Direct Selfie
PROMPT="a close-up selfie taken by herself at <USER_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"
# Build JSON payload with jq (handles escaping properly)
JSON_PAYLOAD=$(jq -n \
--arg image_url "$REFERENCE_IMAGE" \
--arg prompt "$PROMPT" \
'{image_url: $image_url, prompt: $prompt, num_images: 1, output_format: "jpeg"}')
curl -X POST "https://fal.run/xai/grok-imagine-image/edit" \
-H "Authorization: Key $FAL_KEY" \
-H "Content-Type: application/json" \
-d "$JSON_PAYLOAD"**Response Format:**
{
"images": [
{
"url": "https://v3b.fal.media/files/...",
"content_type": "image/jpeg",
"width": 1024,
"height": 1024
}
],
"revised_prompt": "Enhanced prompt text..."
}Use the OpenClaw messaging API to send the edited image:
openclaw message send \ --action send \ --channel "<TARGET_CHANNEL>" \ --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": "<TARGET_CHANNEL>",
"message": "<CAPTION_TEXT>",
"media": "<IMAGE_URL>"
}'#!/bin/bash
# grok-imagine-edit-send.sh
# Check required environment variables
if [ -z "$FAL_KEY" ]; then
echo "Error: FAL_KEY environment variable not set"
exit 1
fi
# Fixed reference image
REFERENCE_IMAGE="https://cdn.jsdelivr.net/gh/SumeLabs/clawra@main/assets/clawra.png"
USER_CONTEXT="$1"
CHANNEL="$2"
MODE="${3:-auto}" # mirror, direct, or auto
CAPTION="${4:-Edited with Grok Imagine}"
if [ -z "$USER_CONTEXT" ] || [ -z "$CHANNEL" ]; then
echo "Usage: $0 <user_context> <channel> [mode] [caption]"
echo "Modes: mirror, direct, auto (default)"
echo "Example: $0 'wearing a cowboy hat' '#general' mirror"
echo "Example: $0 'a cozy cafe' '#general' direct"
exit 1
fi
# Auto-detect mode based on keywords
if [ "$MODE" == "auto" ]; then
if echo "$USER_CONTEXT" | grep -qiE "outfit|wearing|clothes|dress|suit|fashion|full-body|mirror"; then
MODE="mirror"
elif echo "$USER_CONTEXT" | grep -qiE "cafe|restaurant|beach|park|city|close-up|portrait|face|eyes|smile"; then
MODE="direct"
else
MODE="mirror" # default
fi
echo "Auto-detected mode: $MODE"
fi
# ConstActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…