Succubid: A Unix Daemon for syncing NSFW videos with The Handy
Most existing solutions for syncing The Handy on Linux are either bloated Electron apps or heavy Python scripts. I wanted something clean and minimal, so I built Succubid in C++.
It’s a fast, lightweight background daemon designed specifically for Linux, macOS and BSD users.
How it works
Succubid connects to mpv via an IPC socket (default: --input-ipc-server=/tmp/mpv.sock) to sync video playback directly with your Handy.
- Firmware support:
- FW3: Fully supported.
- FW4: Implemented (needs testing on a physical FW4 device).
- In-MPV Script Selector: Built-in menu selector inside MPV, which you can toggle on with
-g.
Installation
- Arch Linux: Run
makepkg -si inside the source directory.
- macOS: Check the build instructions in the README.
PRs and contributions are welcome!
Links & Info
For details and full flag documentation, check the GitHub README or run man ./succubid.1.
Update!
Added ability to recover from device disconnections.
6 Likes
This will be a bit more complex to make a nixpkg but

1 Like
I have a nixpkg that builds. It was easier than I thought it would be. Need to test FW4 on my handy 2 pro. unsure how the MPV socket activity detection works?
Hi! after the daemon is already running you can simply launch mpv with --input-ipc-server=/tmp/mpv.sock and it auto connects, if you dont want to manually pass the argument each time you can also just configure .config/mpv/mpv.conf with “input-ipc-server=/tmp/mpv.sock”, the socket path isnt mandatory so you can also use another path, but make sure you pass the same socket to both mpv and succubid
1 Like
I’ve never even tried syncing scripts from my linux server as like you said, most support is windows or rarely mac. Thanks for building this, i’ll experiment with it later!
I just made a pull request to add a home-manager module as well.
There’s also some ease of use nixpkgs like succubid-gui to have a small window instead of opening a terminal for it.
merged it, also added the LICENSE and the man pages to be installed in nix too!
1 Like
Found a bug. idk how to fix it but onplaypausechanged() doesn’t detect a play when MPV is going to the next video in a playlist.
I think MPV doesn’t send a play signal. You may have to also detect a new video signal and trigger a play automatically.
yep it appears that on play/pause is only sent on initial start and manual plays/pauses, ill publish a fix in around 1-2 hours.
Fixed! just pushed a bugfix.
1 Like
Added a update fixing a crash if curl failed to upload, along with support for gzip compressed scripts.
1 Like
btw if you don’t know nix, You can install it on your distro (it works on basically all distros)
and you can test if the flake build works by running nix build .# while in the git tree
build works: