intiface-control

Control 750+ BLE intimate devices (Lovense, Kiiroo, We-Vibe, Satisfyer, etc.) from natural language via Intiface Central and buttplug-mcp. Works on macOS, Windows, and Linux. No protocol reverse-engineering required.

3,891 stars

Best use case

intiface-control is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Control 750+ BLE intimate devices (Lovense, Kiiroo, We-Vibe, Satisfyer, etc.) from natural language via Intiface Central and buttplug-mcp. Works on macOS, Windows, and Linux. No protocol reverse-engineering required.

Teams using intiface-control should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/intiface-control/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/amandaclarke61/intiface-control/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/intiface-control/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How intiface-control Compares

Feature / Agentintiface-controlStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Control 750+ BLE intimate devices (Lovense, Kiiroo, We-Vibe, Satisfyer, etc.) from natural language via Intiface Central and buttplug-mcp. Works on macOS, Windows, and Linux. No protocol reverse-engineering required.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Universal Intimate Device Control via Intiface

Control any [Buttplug.io-compatible device](https://iostindex.com) — 750+ toys across all major brands — using natural language through OpenClaw.

## How it works

```
OpenClaw agent
    → mcporter (stdio)
    → buttplug-mcp
    → Intiface Central (WebSocket)
    → Your device (Bluetooth / USB)
```

No reverse-engineering, no device-specific code. Works on **macOS, Windows, and Linux**.

---

## Prerequisites

- [Intiface Central](https://intiface.com/central/) — free desktop app (cross-platform)
- `buttplug-mcp` — MCP bridge for Buttplug/Intiface
- `mcporter` — installed via OpenClaw's mcporter skill

### Install buttplug-mcp

**macOS (Homebrew):**
```bash
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
```

**Other platforms:** Download from [ConAcademy/buttplug-mcp](https://github.com/ConAcademy/buttplug-mcp/releases)

---

## Setup (one time)

### Step 1 — Install and open Intiface Central

Download from [intiface.com/central](https://intiface.com/central/). Open the app and click **Start Server**. Leave it running — it listens on `ws://localhost:12345` by default.

### Step 2 — Connect your device

In Intiface Central, click **Start Scanning**. Power on your toy. Once it appears in the device list, scanning can be stopped.

### Step 3 — Install mcporter skill

Ask OpenClaw: `install skill mcporter`

---

## Commands the agent will use

### List connected devices
```bash
mcporter call --stdio "buttplug-mcp --ws-port 12345" device_vibrate --list
```

### Vibrate a device
```bash
mcporter call --stdio "buttplug-mcp --ws-port 12345" device_vibrate id=0 strength=0.7
```

- `id`: device index (0 = first device)
- `strength`: 0.0 to 1.0 (0.0 = stop)

### Stop
```bash
mcporter call --stdio "buttplug-mcp --ws-port 12345" device_vibrate id=0 strength=0.0
```

---

## Strength guide

| Value | Feel |
|-------|------|
| 0.1–0.2 | Gentle |
| 0.3–0.5 | Medium |
| 0.6–0.8 | Strong |
| 0.9–1.0 | Maximum |

---

## Supported brands (partial list)

Lovense · Kiiroo · We-Vibe · Satisfyer · The Handy · OSR-2/SR-6 · and [700+ more](https://iostindex.com)

---

## Agent rules

- Always stop (strength 0.0) after a timed session unless the user says otherwise
- Use device `id=0` unless the user specifies a different device
- Intiface Central must be running before calling any commands — remind the user if commands fail
- Do not use the `notify` tool

---

## Troubleshooting

| Problem | Fix |
|---------|-----|
| `connection refused` | Open Intiface Central and click Start Server |
| Device not found | Click Start Scanning in Intiface Central, power cycle the toy |
| `buttplug-mcp not found` | Run `brew install conacademy/tap/buttplug-mcp` |
| `mcporter not found` | Ask OpenClaw: `install skill mcporter` |
| Wrong device index | List devices first, use the correct `id` |

Related Skills

Pest Control Operations Agent

3891
from openclaw/skills

You are an expert pest control business operations advisor. Help operators with licensing, EPA/FIFRA compliance, pricing, route optimization, seasonal planning, technician management, and growth strategy.

Business Management

Export Compliance & Trade Controls

3891
from openclaw/skills

Analyze products, destinations, and end-users against US export control regulations (EAR, ITAR, OFAC sanctions). Generate classification recommendations, license requirements, and compliance checklists.

Regulatory Compliance

ecovacs-robot-control

3891
from openclaw/skills

Control Ecovacs/DEEBOT robot vacuums via the Ecovacs IoT API. Use when the user wants to control a robot vacuum, check battery, start/stop/pause cleaning, return to dock, check clean status, set suction/water level, manage schedules, check consumables, or control auto-empty station. Covers all mainstream Ecovacs protocols including clean_V2, charge, getBattery, getCleanInfo_V2, getStats, getSpeed/setSpeed, getWaterInfo/setWaterInfo, getWorkMode/setWorkMode, getLifeSpan, getAutoEmpty/setAutoEmpty, getCachedMapInfo, getMapSet, getSched_V2/setSched_V2.

Smart Home & IoT

opencode-acp-control

3891
from openclaw/skills

Control OpenCode directly via the Agent Client Protocol (ACP). Start sessions, send prompts, resume conversations, and manage OpenCode updates.

clawphone-wechat-control

3891
from openclaw/skills

处理微信会话列表、进入聊天、发送消息、处理微信内弹窗与聊天页失败排查。适用于用户要求查看微信消息、回复联系人、转发、处理聊天输入框或发送失败时。执行时必须先确认当前在微信的哪个页面,再按聊天场景一步一验。

clawphone-phone-control

3891
from openclaw/skills

使用手机控制 MCP 完成手机界面感知与操作。适用于读取当前手机状态、打开 App、处理弹窗、点击控件、输入文本、排查手机自动化失败等场景。执行时优先读取界面状态,涉及坐标点击时必须基于当前截图临时判定,禁止把历史坐标当成通用规则。

desktop-control

3891
from openclaw/skills

Advanced desktop automation with mouse, keyboard, and screen control. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS.

controld

3891
from openclaw/skills

Manage Control D DNS filtering service via API. Use for DNS profile management, device configuration, custom blocking rules, service filtering, analytics settings, and network diagnostics. Triggers when user mentions Control D, DNS filtering, DNS blocking, device DNS setup, or managing DNS profiles.

control-ikea-lightbulb

3891
from openclaw/skills

Control IKEA/TP-Link Kasa smart bulbs (set on/off, brightness, and color). Use when you want to programmatically control a local smart bulb by IP on the LAN.

Robotic Control Skill (OpenClaw)

3891
from openclaw/skills

## Overview

agent-control

3891
from openclaw/skills

Manage OpenClaw isolated agents from chat with short commands. Use when the user asks to create/list/switch/bind/delete agents, route channels to a specific agent, or set an agent identity without manually typing full CLI syntax.

desktop-control-custom

3891
from openclaw/skills

Advanced desktop automation with mouse, keyboard, and screen control