Decky Plugin Studio
Provides tools for deploying Decky Loader plugins to a Steam Deck, capturing composited screenshots and recordings, and managing debugging tunnels.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Decky Plugin Studiobuild my plugin and deploy it to the Deck, then capture a screenshot of the QAM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Decky Plugin Studio
VS Code / Cursor extension for Decky Loader plugin development: MCP tools that build, deploy and test your plugin on a real Steam Deck, composited screenshots and screen recordings, and an agent pack for your plugin repo.
The in-IDE preview was retired on 2026-10-24. UI checks run on the Deck, or on a stand-in.
What you get
Feature | What it does |
MCP tools | 44 tools for agents: build, deploy, logs, capture, and driving the Deck (see the list below) |
Composited capture | Screenshots and recordings that include QAM + your plugin UI (not raw game-only kmsgrab) |
Init Pack | Drops |
Create New Plugin | Clones decky-plugin-template, renames boilerplate, runs Init Pack |
What the tools cover:
Bridge and focus tools. An ESP32 board plugged into the Deck acts as a real gamepad. Agents press buttons (the triggers
LTandRTtoo), walk the D-pad, run sequences and sweeps, and read where the focus ring is and whether a person could see it.Killswitch.
deck.stopAutomationstops every press at once. Only a human re-arms it.Launch and exit a game by pressing buttons, with a read before every A.
deck.listGameslists what can be started.Run hygiene. Check the Deck is ready before a run, keep it awake, snapshot and restore the plugin's settings, and replay saved checks after a deploy.
Stand-in machines. Drive a Bazzite VM or a Windows PC running Big Picture as well as the Deck. Every result names the machine, and only one session drives a machine at a time.
Focus lint.
plugin.lintFocuschecks D-pad wiring from source.Doctor.
studio.doctor(and Decky: Doctor) checks DPS's own setup.
Related MCP server: DevServer MCP
Install
Download the latest
.vsixfrom GitHub ReleasesExtensions → … → Install from VSIX…
Reload the editor
The status bar (bottom-right) shows the installed version, tunnel state, ingest count, and whether Deck automation is armed.
Quick start
1. Open a plugin workspace
Any folder with plugin.json and main.py. This repo includes example-plugin/ for smoke testing.
2. Configure your Deck (remote dev)
Use MCP deck.configure or copy .env.example → .env in your plugin repo:
cp .env.example .env # Linux / macOSCopy-Item .env.example .env # WindowsDECK_IP=192.168.x.x
DECK_USER=deckDeck credentials are also stored under ~/.config/decky-plugin-studio/deck.env when using MCP configure.
Run scripts/setup-dev.ps1 (Windows) or scripts/setup-dev.sh (Linux) once per Deck to install SSH keys and passwordless sudo for deploy (dev-only — use revert-dev when finished).
3. Init Pack
Command Palette → Decky: Init Pack
Copies agent guidance, MCP config, skills, .env.example, and the full scripts/ toolkit (build, setup-dev, capture, tunnel, watch-deploy).
4. Day-to-day loop
build/deploy → on-device QAIf setup looks wrong, run Decky: Doctor first.
Task | MCP (agents) | Shell (human fallback) |
First-time Deck SSH/sudo | — |
|
Build + deploy |
|
|
Deploy on same SteamOS machine |
|
|
Watch + auto-deploy | — |
|
Screenshot (QAM + plugin) |
|
|
Screen recording |
|
|
Debug logs from Deck |
|
|
Undo dev setup | — |
|
Release zip |
|
|
Artifacts: screenshots/, recordings/.
5. Shell scripts reference
After Init Pack (or in example-plugin/), scripts live under scripts/ in your plugin repo. Source templates: templates/scripts/ in this repo.
Purpose | Windows | Linux / macOS |
Environment template |
|
|
Dev SSH + sudo setup |
|
|
Build + deploy |
|
|
Watch + deploy |
|
|
Screenshot Deck → PC |
|
|
Record Deck → PC |
|
|
Reverse tunnel (ingest) |
|
|
Revert dev setup |
|
|
Verify release zip | — |
|
Security: setup-dev grants broad passwordless sudo on the Deck (dev-only). Run revert-dev before handing the Deck back. Re-run setup-dev after SteamOS/client updates.
Init Pack skips existing script files — delete old scripts/build.* or choose Overwrite all to pick up template updates.
6. MCP in Cursor / VS Code / Claude Code
After Init Pack, your plugin repo’s MCP config points at the extension’s MCP server — mcp.json and .vscode/mcp.json for Cursor/VS Code, .mcp.json for Claude Code. The server speaks the standard MCP protocol, so all 44 tools appear in any MCP client’s tool list. Tools are documented in docs/MCP_TOOLS.md.
MCP tool names use underscores (deck_deploy, deck_runSequence); the dotted forms in prose refer to the same tools.
Example agent flows:
deck.configure→plugin.build→deck.deploy→deck.captureScreenshotdeck.checkReady→deck.openPlugin→deck.sweepfor a focus check on the Deckdeck.recordwith{ seconds: 15, mode: "game", quality: "compressed" }
Capture prerequisites
For game mode screenshots and recordings:
Deploy your plugin (
deck.deploy)Open QAM on the Deck
Open your plugin panel and keep it visible during capture
Recordings use composited pipewire-gamescope (game) or wf-recorder (desktop). They fail closed if only game-plane capture would succeed — unless you pass allowNonPluginUi: true.
Optional: deck.installCaptureHelper installs studio-record / studio-capture to ~/.local/bin on the Deck.
Developing this extension
Branch model: feature work on a branch → merge to
mainwith a version bump inextension/package.json→ CI publishes a GitHub Release + VSIXBuild locally: docs/DEVELOPMENT.md
More documentation
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Official Duck Framework MCP server for AI-assisted development and project scaffolding.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Vencord plugin that provides MCP server capabilities for inspecting Discord's internal state, executing JavaScript code, accessing Flux stores, discovering webpack modules, and inspecting DOM elements within Discord's context.3,386 npmMIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.1MIT
- AlicenseAqualityBmaintenanceMCP server for Deckrun — generate presentation PDFs, narrated videos, and audio from Markdown. Built for AI agents and IDEs. Free tier: no API key required — generate PDFs instantly. Paid tier: set DECKRUN_API_KEY to unlock video, audio, and account tools.218 PyPI2MIT
- AlicenseAqualityAmaintenanceThis MCP server drives Defold games through an in-game debug bridge, allowing MCP clients to build, launch, playtest, and interact with real game builds via tools for input, screen reading, state, and logs.91MIT