How much of a hardware plugin can an AI coding agent build without you touching the code directly? MiraboxPR ran that experiment with a Stream Dock controller, and the answer is: most of it, including the installer.
The target was deliberately small. A Coin Flip action: one key press flips 1 to 5 coins, the count is configurable in the Property Inspector, heads render as a gold H and tails as a silver T. Small enough to finish in a session, real enough to involve an SDK, device testing, and a packaged release.
Here is exactly how the workflow ran, including the friction points.
️ Step 1: Give the agent a skill, not a spec
The starting point was a skill repo: MiraboxSpace/StreamDock-Plugin-Builder on GitHub. Handing that link to an agent that can install skills and run local commands was enough. The agent handled its own setup.
Prerequisites on your machine: Node.js, npm, the Stream Dock app, and a physical device to test on. One gotcha: if the skill does not appear after the first install, restart the agent session and call the skill by name.
Step 2: Describe the plugin in one paragraph
The first prompt was a single paragraph. Coin Flip plugin, key press flips 1 to 5 coins, configurable in the Property Inspector, default of 1, gold H for heads and silver T for tails per coin. That was enough for a working first draft that included the action list entry, the Property Inspector field, and key rendering.

Step 3: Test on the device, not in the preview
Bind the action, set Coins per press to 2, press the key, confirm two results appear. Then set it to 5 and press again. Rendering bugs surface much faster on the physical device than in the app preview. Do not skip this step.
Step 4: Iterate with feedback, not with code
Once the count worked, the next prompt was: the count works, add a toss animation: coins rise, flip, land, then stay visible. The agent re-ran the dev build. Because the action hot-reloads, the feedback loop was press, test, fix, repeat.
The toss animation runs approximately 0.72 seconds, then the key holds the result of that toss.
Step 5: Package a release build
Once the device behavior was solid, the prompt was simply: ask for a release build. The agent runs the production build so runtime dependencies are bundled into the output.
Step 6: Make it double-clickable
This is where most of the friction lives. The process:
- ZIP the built
com.local.streamdock.coinflip.sdPluginfolder so the archive root contains exactly one folder. - Confirm that folder contains
manifest.json,plugin/, andpropertyInspector/. - Enable file extensions in your OS.
- Strip only the trailing
.zipso the file name matches the folder exactly, including the.sdPluginextension.
Double-clicking that file on a machine with Stream Dock installed triggers the installer directly.
⚠️ Gotchas worth knowing before you start
- Action did not appear after first dev install. A full quit and reopen of the Stream Dock app fixed it. If it still does not appear, check the installation folder before assuming the plugin is broken.
- Changing the coin count did not update the key immediately. The new value applies on the next toss. Make sure the Property Inspector is bound to the same key, then press the key again.
- The installer opened as a ZIP. That is a file association issue, not a packaging bug. Show file extensions and confirm the name does not still end in
.zip.
The bigger point
The Coin Flip itself is not the interesting part. What is interesting is that the entire loop ran through conversation and device testing, with the agent writing the code. Skill install, plugin scaffold, Property Inspector wiring, animation, packaging: all of it via prompts.
For any project with a local SDK and a testable surface, that is a reasonable way to get a first version out in an afternoon.

