Persona's first-party Elgato Stream Deck plugin puts the Plugin API on physical keys: switch models, activate scenes, trigger hotkeys and global shortcuts, toggle expressions, play motions, and move or scale the avatar on stage
It speaks the same API as the web console, so the desktop application needs nothing special for it — turn the API on, make a key, and that is the setup
Prerequisites
| You need | Notes |
|---|---|
| Stream Deck | 6.9 or later, on macOS 12+ or Windows 10+ |
| LAPLACE Persona | Running, with the Plugin API enabled |
| An API key | Create one under Settings → Plugin API |
Installing
The page's Install button hands the rest to the Stream Deck application; searching LAPLACE Persona in the application's own Marketplace gets you the same plugin. A LAPLACE Persona category then appears in the Stream Deck application's action list
Connecting
Drop any action on a key, and the bottom of its property inspector carries two fields:
| Field | What goes in it |
|---|---|
| Persona Address | Empty means 127.0.0.1:25034. It also takes host, host:port, or a full ws:// URL |
| API Key | The token of the key you created in Persona |
Both are global — fill them in on any one action and every action is connected
Once connected, Persona lists a row called Elgato Stream Deck, by LAPLACE, under Connected Clients
Driving Persona on another machine needs Allow Access on Local Network
turned on over there, and its host:port as the address. The connection is
plain ws:// — Persona does not terminate TLS itself — so on an untrusted
network put a TLS proxy in front of it and paste the proxy's full wss:// URL
as the address instead
Actions
Every action except Activate Scene and Run Shortcut targets the current scene's primary model
| Action | Effect |
|---|---|
| Switch Model | Swap the primary avatar to the chosen model. With no model in the scene, it adds one instead |
| Activate Scene | Apply one of your saved scenes |
| Trigger Hotkey | Run one of the active model's shortcuts. Hotkeys belong to the model, as in VTube Studio |
| Run Shortcut | Fire one app shortcut — its whole action list runs, even with no key combination bound |
| Toggle Expression | Toggle one of the active model's expressions |
| Play Motion | Play one of the active model's motions |
| Move Model | Nudge the avatar one direction. Hold to keep moving |
| Scale Model | Grow or shrink the avatar. Hold to keep scaling |
| Reset Transform | Restore the avatar's position, scale and rotation |
The model, scene, hotkey, global shortcut, expression and motion dropdowns are filled live from the running Persona. When nothing is connected, the dropdown holds one row explaining why rather than nothing at all
Run Shortcut is the cheapest way to put a whole set of stage changes on one key: build the shortcut in Persona, bind no combination to it, and let the Stream Deck do the rest
Moving and Scaling
Both actions take a step of their own. Holding a key starts repeating after about a third of a second, then steps every 100 ms; a step that fails ends the hold and flashes the key's alert
| Action | Settings |
|---|---|
| Move Model | Direction (up, down, left, right), 2D Step in pixels and 3D Step in world units |
| Scale Model | Direction (increase, decrease) and Factor, 1.1 by default |
The two steps cover Live2D's screen space and VRM's world space, so one key suits either format. Scaling is clamped to the panel's own range, so holding the key cannot push the avatar out of sight. A Factor below 1 always shrinks by that ratio, whichever direction the key is set to
Keys
A key's art is the Persona mark plus the action's icon, with the action name in whatever language the Stream Deck application runs in. A title you set is drawn over it; a custom image replaces the art entirely
A successful action flashes the checkmark, a failure flashes the alert icon and writes a line to the plugin log. Holds skip the checkmark, so a held key does not flash on every step
The plugin ships English and Simplified Chinese, following the Stream Deck application's language. The property inspector's own field names are English only for now
Last updated on September 3, 2026