OpenClaw as your boyfriend - Generate and send AI-powered selfies with your own reference image
Unlike other selfie skills that use a fixed avatar, with-him lets you use your own reference image via environment variable configuration.
Before using with-him, you need two things:
- Volcano Engine API Key - for image generation
- Your Reference Image URL - for consistent avatar appearance
npx with-him@latestThis will:
- Check OpenClaw is installed
- Guide you to get a Volcano Engine API key
- Install the skill to
~/.openclaw/skills/with-him/ - Configure OpenClaw to use the skill
- Add selfie capabilities to your agent's SOUL.md
Add both required environment variables to your OpenClaw configuration:
# ~/.openclaw/openclaw.json
{
"skills": {
"entries": {
"with-him": {
"enabled": true,
"env": {
"VOLCENGINE_API_KEY": "your_volcengine_key_here",
"REFERENCE_IMAGE_URL": "https://your-cdn.com/your-avatar.png"
}
}
}
}
}with-him enables your OpenClaw agent to:
- Generate selfies using your own reference image
- Send photos across all messaging platforms (Discord, Telegram, WhatsApp, Feishu, Wechat, etc.)
- Respond visually to "what are you doing?" and "send a pic" requests
| Mode | Best For | Keywords |
|---|---|---|
| Mirror | Full-body shots, outfits | wearing, outfit, fashion, suit |
| Direct | Close-ups, locations | office, penthouse, portrait, confident |
| Variable | Description | Example |
|---|---|---|
VOLCENGINE_API_KEY |
Your Volcano Engine API key | abc123... |
REFERENCE_IMAGE_URL |
URL to your reference image | https://cdn.example.com/you.png |
| Variable | Description | Default |
|---|---|---|
OPENCLAW_GATEWAY_URL |
OpenClaw gateway URL | http://localhost:18789 |
OPENCLAW_GATEWAY_TOKEN |
Gateway auth token | (none) |
- OpenClaw installed and configured
- Volcano Engine account (free tier available)
- Your own reference image hosted on a CDN
If you prefer manual setup:
Visit Volcano Engine Console and create an API key.
Upload your avatar image to a reliable CDN and get the direct URL.
git clone https://github.com/KevinConqueror/with-him ~/.openclaw/skills/with-himAdd to ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"with-him": {
"enabled": true,
"env": {
"VOLCENGINE_API_KEY": "your_volcengine_key_here",
"REFERENCE_IMAGE_URL": "https://your-cdn.com/your-avatar.png"
}
}
}
}
}Add the selfie persona to ~/.openclaw/workspace/SOUL.md:
## Kai Selfie Capability
You have a physical appearance and can take selfies!
When users ask for pictures, use the with-him skill.
Your appearance is defined by the reference image configured in REFERENCE_IMAGE_URL.Once installed, your agent responds to:
"Send me a selfie"
"Send a pic wearing a tailored suit"
"What are you doing right now?"
"Show me you at your office"
- Quality: Use a clear, high-resolution frontal portrait
- Lighting: Consistent lighting helps with better generations
- Format: PNG or JPG works best
- Hosting: Use a reliable CDN with global access
- Privacy: Make sure you're comfortable with the image being sent to Volcano Engine's API
To update your avatar:
- Upload your new reference image to your CDN
- Update the
REFERENCE_IMAGE_URLin~/.openclaw/openclaw.json - Restart OpenClaw gateway if needed
No code changes required!
- Image Generation: ByteDance Jiemeng AI (Seedream 4.0) via Volcano Engine
- Image-to-Image: Uses your reference image as the base for all edits
- Messaging: OpenClaw Gateway API
- Supported Platforms: Discord, Telegram, WhatsApp, Slack, Signal, MS Teams, Feishu, Wechat
with-him/
├── bin/
│ └── cli.js # npx installer
├── skill/
│ ├── SKILL.md # Skill definition
│ ├── scripts/ # Generation scripts
│ └── assets/ # Documentation assets
├── templates/
│ └── soul-injection.md # Persona template
└── package.json
Make sure you've set the REFERENCE_IMAGE_URL environment variable in your OpenClaw configuration.
- Check your
VOLCENGINE_API_KEYis valid - Ensure your reference image URL is accessible (try opening it in a browser)
- Verify you have quota available on Volcano Engine
- Make sure the URL is a direct link to the image (not a webpage)
- Try using a different CDN if the current one blocks requests
- Ensure the image is publicly accessible