Install
openclaw skills install xtoys-appControl xtoys.app devices via webhook. Supports precise control of various body parts for remote intimate device control.
openclaw skills install xtoys-appRemote control xtoys.app connected devices via webhook API.
Three configuration methods supported (priority from high to low):
export XTOYS_WEBHOOK_ID="your-webhook-id-here"
python3 scripts/xtoys_control.py --webhook-id xxx --action left_nipple --level 50
Set in config.json:
{
"webhook_id": "your-webhook-id-here"
}
Get your Webhook ID:
# Control specific body part
python3 scripts/xtoys_control.py --action left_nipple --level 50
# Stop current stimulation
python3 scripts/xtoys_control.py --action stop
# List supported actions
python3 scripts/xtoys_control.py --list
# Test connection
python3 scripts/xtoys_control.py --test
# Use environment variable
XTOYS_WEBHOOK_ID=xxx python3 scripts/xtoys_control.py --action clitoris --level 80
# Show verbose logs
python3 scripts/xtoys_control.py --action left_nipple --level 30 --verbose
from scripts.xtoys_control import XtoysController
# Method 1: Using context manager (recommended)
with XtoysController("your-webhook-id") as controller:
controller.send_command("left_nipple", 50) # 50% intensity
controller.send_command("clitoris", 80) # 80% intensity
controller.stop() # Stop current
# Method 2: Manual management
controller = XtoysController("your-webhook-id")
try:
controller.send_command("both_nipples", 50)
finally:
controller.close()
# Method 3: Using environment variable
import os
os.environ["XTOYS_WEBHOOK_ID"] = "your-webhook-id"
with XtoysController() as controller:
controller.send_command("vagina", 50)
# Batch operations
commands = [
{"action": "left_nipple", "level": 30},
{"action": "right_nipple", "level": 30},
{"action": "clitoris", "level": 50},
]
results = controller.send_batch(commands)
Note: xtoys can only operate one body part at a time. When switching parts, the previous part will automatically be set to 0.
left_nipple - Left nippleright_nipple - Right nippleboth_nipples - Both nipplesleft_breast - Left breastright_breast - Right breastboth_breasts - Both breastsclitoris - Clitorisvagina - Vaginaanus - Anusstop - Stop current stimulationpause - Pause current stimulation (same as stop)stop or set any part's level to 0| Variable | Description | Example |
|---|---|---|
XTOYS_WEBHOOK_ID | Webhook ID | abc123 |
XTOYS_LOG_LEVEL | Log level | DEBUG, INFO, WARNING, ERROR |
# Gradual increase
for i in 10 30 50 70 100; do
python3 scripts/xtoys_control.py --action left_nipple --level $i
sleep 2
done
# Random fluctuation
python3 scripts/xtoys_control.py --action clitoris --level $((RANDOM % 100))
# Use in scripts
export XTOYS_WEBHOOK_ID="your-webhook-id"
python3 scripts/xtoys_control.py --action left_nipple --level 30
python3 scripts/xtoys_control.py --action clitoris --level 50
python3 scripts/xtoys_control.py --stop
pip install requests urllib3
XTOYS_WEBHOOK_ID)with statement) support