c3ll256/dsh-toy
Toy Control Protocol for DSH
dsh-toy connects Bluetooth intimate devices to the DSH agent. At connection time the agent asks for brand and model, then selects the protocol automatically: unknown hardware on macOS triggers read-only CoreBluetooth advertisement discovery; most Bluetooth/serial/USB devices route through Buttplug/Intiface (started automatically, with a SHA-256-verified binary downloaded if absent); sharing-link models from Ankni, MizzZee, and Zuiqingfeng use MonsterParty. Safety guardrails enforce a 30-second auto-stop, maximum intensity and duration caps, and zero-duration hold disabled by default. Sharing tokens never appear in model-visible tool arguments.
Install
npx -y @deepseek-ai/dsh plugin --profile web add github:c3ll256/dsh-toyRequires Node.js 22.19+ and pnpm on PATH. Install pnpm once with: npm install --global pnpm@10. Raw macOS BLE discovery additionally requires the Swift compiler from Xcode Command Line Tools. Remove: dsh plugin --profile web remove dsh-toy
Compatibility
DSH 0.1.0+. macOS (CoreBluetooth BLE), Windows/Linux (Buttplug/Intiface). Node.js 22.19+. MIT license.
Details
- Repo: c3ll256/dsh-toy
- Category: Other
- Stars: 58
- Version: Latest from main branch (GitHub source install; build artifacts committed)
- Last push: 2026-09-08
- First seen: 2026-08-14
FAQ
- What Bluetooth toy brands and protocols are supported?
- Any device supported by Buttplug/Intiface Engine, sharing-link models from Ankni, MizzZee, and Zuiqingfeng via MonsterParty, and RoomFun Cannon via a built-in compatibility mapping. Unknown models trigger hardware discovery.
- Does it require Intiface Central to be running beforehand?
- No. The plugin checks for an existing Intiface server at 127.0.0.1:12345; if absent, it downloads a pinned Intiface Engine build (SHA-256 verified), caches it, and starts it automatically.
- What safety limits are built in?
- Output stops automatically after 30 seconds by default. maxIntensityPercent and maxDurationSeconds are enforced before backend dispatch. Zero-duration holds are disabled unless allowHold: true is configured.
Alternatives
Anionex/dsh-vision-toolkit · vlln/dsh-navbar