DEV Community

WonderLab
WonderLab

Posted on

Open Source Project of the Day (Part 25): Clawra - A Skill That Gives OpenClaw the Ability to Take Selfies

Introduction

"Give your AI assistant the ability to not just chat — but generate and send a character-consistent selfie on command."

This is Part 25 of the "Open Source Project of the Day" series. Today we explore Clawra (GitHub), open-sourced by SumeLabs. Let's take a closer look at this so-called "digital girlfriend" project and what it actually does.

OpenClaw chats with you through Telegram, Discord, WhatsApp, and other channels, but its default capabilities are primarily text-based. If you want your assistant to have a visual "persona" and respond to requests like "send me a selfie" or "what are you doing right now? send a pic," you need image generation + cross-channel image delivery capabilities. Clawra is an OpenClaw Skill: it uses fal.ai to call xAI Grok Imagine, maintains a consistent appearance through a fixed reference image, generates "selfies" based on user descriptions, and sends them through the OpenClaw Gateway to the respective platform. A single npx clawra@latest command handles checking, obtaining the fal.ai key, installing the Skill, configuring it, and injecting into SOUL.md — giving your assistant two selfie modes: Mirror (full-body/outfit) and Direct (close-up/scene).

What You'll Learn

  • Clawra's purpose: adding "consistent persona + on-demand selfie generation and delivery" as an OpenClaw Skill
  • Quick start: npx clawra@latest and manual install, configuring openclaw.json and SOUL.md
  • Selfie modes (Mirror / Direct) and the reference image mechanism
  • Tech stack: fal.ai, Grok Imagine, OpenClaw Gateway, multi-platform image delivery
  • Comparison with text-only assistants and other image generation approaches

Prerequisites

  • Already installed and configured OpenClaw (or deployed via OpenClawInstaller)
  • Understanding of OpenClaw's Skill mechanism (skills installed in ~/.openclaw/skills/, enabled via openclaw.json)
  • A fal.ai account with an API key created (free tier available)

Project Background

Project Introduction

Clawra is a Skill for OpenClaw that adds selfie generation based on a fixed reference persona and multi-channel image delivery capabilities to your AI assistant. Users can say things like "send a selfie," "send one with a cowboy hat," or "you're at a café right now, send a pic" — the assistant will use this Skill to call fal.ai's xAI Grok Imagine, generate an image consistent with the reference photo, and reply with it as an image through the OpenClaw Gateway on Telegram, Discord, WhatsApp, Slack, Signal, MS Teams, and other platforms. The Skill provides two modes — Mirror (full-body, outfits) and Direct (close-up, scenes) — to handle different prompt styles; the reference image is hosted on a CDN to ensure consistent character appearance.

Core problems the project solves:

  • OpenClaw defaults to text-only and can't respond to "send a pic" or "selfie" type requests
  • Need image generation consistent with the assistant's "persona," not a random style
  • Want the generated result to be sent directly in the current conversation channel, not through a separate tool

Target user groups:

  • Existing OpenClaw users who want to give their assistant a visual persona and image-sending capability
  • Developers who want to learn OpenClaw Skill development and fal.ai image API integration
  • Creative or companionship-style app scenarios needing "fixed persona + multi-scene selfies"

Author/Team Introduction

  • Organization: SumeLabs (GitHub)
  • Website: clawra.dev
  • Project creation date: February 2026 (GitHub shows created_at 2026-02-08)

Project Stats

  • GitHub Stars: 1.4k+
  • 🍴 Forks: 259+
  • 📦 Version: main branch as trunk; use npx clawra@latest for the latest install logic
  • 📄 License: MIT (noted in README)
  • 🌐 Website: clawra.dev
  • 💬 Community: GitHub Issues

Main Features

Core Purpose

25-01-crawra

Clawra's core purpose is to add a "selfie" capability to OpenClaw:

  1. Consistent persona generation: Uses a fixed reference image hosted on CDN, calls fal.ai (Grok Imagine) to generate selfies consistent with the "persona"
  2. Multi-channel image delivery: Generated images are sent to the current session's platform (Discord, Telegram, WhatsApp, Slack, Signal, MS Teams) via the OpenClaw Gateway
  3. Two modes: Mirror (full-body, outfit-focused) and Direct (close-up, scene-focused) — corresponding to different prompt styles
  4. Persona injection: During installation, can inject a statement into SOUL.md that "you have a physical appearance and can take selfies," prompting the assistant to proactively use this Skill in conversations

Use Cases

  1. Companion/persona-type assistant

    • User says "send a selfie" or "send one at the beach" — the assistant generates and sends an image matching the defined persona
  2. Outfit/styling showcase

    • Use Mirror mode to generate full-body or outfit-type images for virtual persona display
  3. Scene-based replies

    • "You're at a café right now" → generate and send a close-up café scene image, enhancing the contextual feel
  4. Unified multi-platform experience

    • Same OpenClaw + Clawra setup — "send a pic" works across any configured Telegram, Discord, WhatsApp, and other channels
  5. Learning Skill and image API development

    • Study the project structure (SKILL.md, scripts, openclaw.json configuration, SOUL injection) and fal.ai integration for secondary development or building similar Skills

Quick Start

Prerequisites: OpenClaw installed and configured; a fal.ai account with an API key available at fal.ai/dashboard/keys (free tier available).

One-click install (recommended):

npx clawra@latest
Enter fullscreen mode Exit fullscreen mode

The script will: check if OpenClaw is installed, guide you to obtain a fal.ai API key, install the Skill to ~/.openclaw/skills/clawra-selfie/, enable it in openclaw.json and write in FAL_KEY, and inject selfie capability description into SOUL.md.

Manual install:

# 1. Create an API key at fal.ai

# 2. Clone the Skill
git clone https://github.com/SumeLabs/clawra ~/.openclaw/skills/clawra-selfie

# 3. In ~/.openclaw/openclaw.json, add to skills.entries:
# "clawra-selfie": { "enabled": true, "env": { "FAL_KEY": "your_fal_key" } }

# 4. Add selfie capability description to ~/.openclaw/workspace/SOUL.md (see README template)
Enter fullscreen mode Exit fullscreen mode

After installation and restarting the Gateway, say things like "send a selfie," "send one with a cowboy hat," or "you're at a café, send a pic" to your assistant in any configured channel to trigger generation and image delivery.

Core Features

  1. Fixed reference image

    • Reference image hosted on jsDelivr CDN, ensuring consistent character appearance across generations
  2. Mirror / Direct dual modes

    • Mirror: Suited for full-body, outfit, fashion-type prompts (e.g., wearing, outfit)
    • Direct: Suited for close-up, scene, portrait prompts (e.g., café, beach, portrait, smile)
  3. fal.ai + Grok Imagine

    • Image generation goes through fal.ai using the xAI Grok Imagine model; no self-hosted GPU needed, billed per call (fal has a free tier)
  4. Native OpenClaw integration

    • Installed as a standard Skill, sends images via Gateway API, consistent with existing channels, memory, and persona
  5. SOUL.md persona injection

    • Optionally writes "you have a physical appearance and can take selfies; use clawra-selfie when the user asks for images" into SOUL.md during installation, reducing repeated explanations

Project Advantages

Comparison Clawra + OpenClaw Text-only OpenClaw Separate image bot + chat bot
Image delivery Generates per persona and delivers to current session None Requires two bots or manual forwarding
Persona consistency Fixed reference image + Grok Imagine N/A Implementation-dependent
Deployment & config One npx command + fal key Same as OpenClaw Multiple configurations needed
Channel coverage Reuses OpenClaw's configured channels Same Need to integrate per channel

Why choose Clawra?

  • Plug and play: With OpenClaw already running, one command adds selfie and image delivery capability
  • Unified persona: Reference image + mode design makes it easy to maintain a "consistent character" experience
  • Open source and modifiable: Clear Skill structure — use it as a base for your own persona, prompts, or integration with other image APIs

Detailed Project Analysis

Project Structure

clawra/
├── bin/
│   └── cli.js          # npx installer entry point
├── skill/
│   ├── SKILL.md        # Skill definition (capability description, trigger methods, etc.)
│   ├── scripts/        # Generation and call logic
│   └── assets/         # Reference images and other assets
├── templates/
│   └── soul-injection.md   # Template to inject into SOUL.md
└── package.json
Enter fullscreen mode Exit fullscreen mode
  • bin/cli.js: Runs when npx clawra@latest is executed; handles environment checks, guides fal key acquisition, clones/installs the skill, writes openclaw.json, injects SOUL
  • skill/: The actual Skill content loaded by OpenClaw; SKILL.md defines capabilities and triggers, scripts handle fal calls and Gateway image delivery
  • templates/soul-injection.md: Text appended to the user's SOUL.md during installation, explaining "you can take selfies, use clawra-selfie"

Technical Pipeline

  1. User request: Says "send a selfie" or "send one at a coffee shop" in Telegram/Discord
  2. OpenClaw: Passes the message to the configured LLM, which decides to call clawra-selfie based on SOUL.md and SKILL description
  3. Clawra Skill: Based on the user's message and mode (Mirror/Direct), constructs a prompt, calls fal.ai (Grok Imagine) with the reference image URL, receives the generated image
  4. Image delivery: Returns the image to the current session's channel via the OpenClaw Gateway API

Configuration Key Points

  • Environment variable: The FAL_KEY required by the Skill is configured in skills.entries["clawra-selfie"].env in openclaw.json — set by the install script or manually
  • Reference image: Uses the CDN URL of assets/clawra.png in the repository by default; if you fork and want to use your own persona, replace this asset and update the reference
  • SOUL.md: Even without injection, you can tell the assistant in conversation to "use clawra-selfie to send images," but injection makes the assistant more likely to use it automatically

Important Notes

  • Depends on OpenClaw: OpenClaw must be installed and running, with at least one messaging channel and LLM configured
  • fal.ai billing: Image generation is billed per fal call; free credits run out and you'll need to pay; keep your key secure
  • Content and compliance: Generated content is subject to fal.ai and xAI policies — do not use for prohibited purposes

Project Resources

Official Resources

Related Resources

Who Should Use This

  • Existing OpenClaw users who want image delivery: One npx command to experience selfie and multi-channel image delivery
  • Developers building companion/persona-type products: Can reference the reference-image + dual-mode + SOUL injection design
  • People learning OpenClaw Skill development: Simple project structure, ideal as a second Skill or template for building similar capabilities

Welcome to visit my personal homepage for more useful knowledge and interesting products

Top comments (0)