Agent skill

Decky Dev

by jinzhongjia in jinzhongjia/decky-music

Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep…

MITAuto-check: notesDevelopment

Install Decky Dev

skills CLI
$ npx skills add jinzhongjia/decky-music --skill decky-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jinzhongjia/decky-music decky-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jinzhongjia/decky-music.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/decky-dev .claude/skills/decky-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
decky-dev
GitHub stars
122
Token cost
~1.3k tokens
SKILL.md length
538 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep…

  • Debugging any Decky plugin against a real Steam Deck
  • SKILL.md covers Target environment, Plugin anatomy, Deploy loop (sideload) and Logs, plus 4 more sections
  • Calls ssh, curl and jq
  • Tasks that involve Debugging

What it does

Decky Dev is an agent skill from jinzhongjia/decky-music. Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep inhibition, and on-device verification. Use when developing, deploying, or debugging any Decky plugin against a real Steam Deck.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Debugging. The repository describes itself as: Steam decky plugin for music(QQ Music and NetEase Cloud Music). The licence is MIT.

When your agent uses it

  • Debugging any Decky plugin against a real Steam Deck
  • Tasks that involve Debugging

Example prompts

  • “/decky-dev”

What it can do on your machine

Read from SKILL.md and the folder at commit 3e64d7c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ssh
    • curl
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use ssh and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Decky Dev loads about 1.3k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 538 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:16
    `sudo systemctl restart plugin_loader`.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jinzhongjia/decky-music at commit 3e64d7c, republished under its MIT licence (© jinzhongjia). 538 words, ~1,304 tokens.

Download SKILL.mdSave it as .claude/skills/decky-dev/SKILL.md (or your agent's skills folder).
name
decky-dev
description
Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep inhibition, and on-device verification. Use when developing, deploying, or debugging any Decky plugin against a real Steam Deck.

Decky Plugin Development & Debugging (generic)

Everything here is generic Decky knowledge. Repo-specific policy (deploy consent, log content rules, commit rules) lives in the project's AGENTS.md and always wins.

Target environment

  • SteamOS in a gamescope session, user deck, reachable over SSH (DECK_HOST=deck@<ip> — no default; a hardcoded one goes stale and silently targets the wrong host).
  • Decky Loader = plugin_loader systemd unit (root). Restart to reload plugins: sudo systemctl restart plugin_loader.
  • Homebrew tree: ~/homebrew/{plugins,logs,settings,data}/<plugin name> — directory names use plugin.json's name field, spaces included.

Plugin anatomy

  • main.py Plugin class: async methods are the RPC surface for the frontend (@decky/api callable); decky.emit pushes events to the UI. Backend runs in Decky's frozen CPython — stdlib only, compiled extensions will break on Decky upgrades.
  • py_modules/ is the only extra dir added to sys.path and packaged by the CLI.
  • Frontend ships as dist/index.js (built from @decky/api + @decky/ui).
  • package.json remote_binary: assets downloaded at install time into bin/<name> — saved verbatim, never unpacked. Archives (e.g. Nuitka standalone tar.gz) must be self-extracted by plugin code on first use. Pin URLs to a release tag: releases/latest/... 404s for prereleases.
  • Installed permissions: plugin root dir is root:root (read-only for deck), but bin/ and py_modules/ are deck:deck (writable) — the remote_binary downloader itself writes bin/.

Deploy loop (sideload)

Sideload = build → rsync the plugin subset → restart plugin_loader. Keep it in a repo script (this repo: scripts/deploy.sh; target is required: DECK_HOST=deck@ip). Two rules that bite:

  • Deploy scripts copy prebuilt artifacts, they don't build. Rebuild changed binaries first, or you ship stale ones.
  • A sideload dev_mode marker file (touched by the deploy script, absent from release zips) is a clean way to switch log verbosity; release zips must not contain it.

Logs

  • Backend logging goes through decky.logger → DECKY_PLUGIN_LOG_DIR → ~/homebrew/logs/<plugin name>/, one file per plugin_loader restart; newest = current session.
  • Pull the live log:
bash
ssh "$DECK_HOST" 'f=$(ls -t "$HOME/homebrew/logs/<plugin name>/"*.log | head -1); tail -n 200 "$f"'

Keep the Deck awake while debugging

The Deck auto-suspends on idle and kills SSH/CDP mid-verification. Hang a blocker before long debug sessions, release it when done (don't leave the screen on overnight):

bash
# nohup & dies with the ssh session — use a user systemd unit instead
ssh "$DECK_HOST" 'systemd-run --user --unit decky-dev-nosleep --collect \
  systemd-inhibit --what=idle:sleep --who=decky-dev --why="debugging" sleep infinity'
ssh "$DECK_HOST" 'systemd-inhibit --list --mode=block | grep decky'   # verify
ssh "$DECK_HOST" 'systemctl --user stop decky-dev-nosleep'            # release
Show full SKILL.md (213 more words)Show less

CDP: drive the running Steam UI

Steam's CEF exposes remote debugging on port 8080 in Decky environments. The tunnel belongs to Steam and survives plugin_loader restarts:

bash
ssh -N -L 8080:localhost:8080 "$DECK_HOST" &
curl -s localhost:8080/json | jq '.[].title'

Use the steam-cdp skill at .agents/skills/steam-cdp/ for target aliases, bundled drivers, probes, screenshots, and key input. The visible gamepad window is the screenshot target; SharedJSContext has no pixels and is for module/backend probes.

For UI verification, navigate to the route, exercise the actual flow, capture the visible window, and sample changing state twice when proving liveness or playback. Re-navigating to the current route does not remount it; reset through another tab/home first.

The autonomous verification loop

rebuild (if binaries changed) → deploy → pull log (clean startup?)
→ CDP: navigate to plugin route → drive the flow (clicks/keys)
→ screenshot + assert → pull log again (no errors?) → iterate

For long waits (a song finishing, a background job), poll the log for the expected marker over SSH in a background task instead of sleeping blind.

On-device gotchas

  • Audio: child processes need XDG_RUNTIME_DIR=/run/user/<uid> to reach PipeWire in the gamescope session; a Rust audio binary should dynamically link only libasound (check ldd).
  • Verifying "it plays" without ears: position advancing at exactly 1.0× across two timed screenshots is strong evidence the pipeline is alive.
  • The release install path (zip + remote_binary download + sha256) differs from sideload — archives arrive unextracted, dev_mode is absent, and the plugin root is root-owned. Test it by installing the CI zip via Decky developer mode at least once per release.

© jinzhongjia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/decky-dev of jinzhongjia/decky-music.

Open the folder on GitHubat commit 3e64d7c

Compare with similar skills

Decky Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Decky Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Decky Dev this skilljinzhongjia/decky-music122—~1.3kAutomated safety check: NotesMIT
Trellis Session Insightmindfold-ai/Trellis15k4 repos~1.7kAutomated safety check: PassAGPL-3.0
Native Data FetchingCherryHQ/cherry-studio-app4k6 repos~2.9kAutomated safety check: NotesMIT
Debugging Executionsn8n-io/n8n207k—~2.6kAutomated safety check: PassCustom licence
Aoti Debugpytorch/pytorch104k1 repos~1.7kAutomated safety check: PassCustom licence
Herdr Throwaway Reproductionherdrdev/herdr43k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Trellis Session Insight

    mindfold-ai/Trellis

    Reach into past AI conversation history through the trellis mem CLI.

    15k GitHub starsUsed in 4 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Native Data Fetching

    CherryHQ/cherry-studio-app

    A skill your agent uses when implementing or debugging ANY network request, API call, or data fetching.

    4k GitHub starsUsed in 6 repos~2.9k tokens
    DevelopmentAuto-check: notes
  • Official

    Debug failed or wrong-output workflow executions using executions tools.

    207k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Aoti Debug

    pytorch/pytorch

    Debug AOTInductor (AOTI) errors and crashes. An agent skill from pytorch/pytorch.

    104k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Runs a disposable, uniquely named Herdr session inside an existing one so runtime, pane, terminal or API bugs can be reproduced without touching the main session.

    43k GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Systematic Debugging

    ultralisp/ultralisp

    A skill your agent uses when encountering any bug, test failure, or unexpected behavior, before proposing fixes

    258 GitHub starsUsed in 51 repos~2.4k tokens
    DevelopmentAuto-check passed

More from jinzhongjia/decky-music

  • Steam Cdp

    jinzhongjia/decky-music

    Drive and inspect the running Steam client UI over the Chrome DevTools Protocol (CEF remote debugging, port 8080) — list targets, evaluate JS probes, navigate routes, click elements, dispatch keys…

    122 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Steamdeck UI Design

    jinzhongjia/decky-music

    Project-specific Steam Deck Game Mode UI rules for decky-music.

    122 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Release

    jinzhongjia/decky-music

    发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remotebinary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。

    122 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Pending Verify Issue

    jinzhongjia/decky-music

    把"已提交但尚未真机验证"的改动登记成 GitHub issue,避免未验收当已完成。当改动触碰 AGENTS.md 要求真机验收的运行时/UI 行为,但验证被阻塞(没拿到部署授权、或用户选择先提交后验证)时使用。

    122 GitHub stars~334 tokensUpdated today
    Auto-check passed

Categories

Questions about Decky Dev

What does Decky Dev do?

Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep…. Decky Dev is an agent skill from jinzhongjia/decky-music. Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep inhibition, and on-device verification.

When should I use Decky Dev?

Decky Dev fits situations like: debugging any Decky plugin against a real Steam Deck; tasks that involve Debugging.

How do I install Decky Dev in Claude Code?

Run `npx skills add jinzhongjia/decky-music --skill decky-dev -a claude-code`. Or copy the skill folder (.agents/skills/decky-dev in jinzhongjia/decky-music) into .claude/skills/decky-dev in your project. Claude Code loads it when a task matches its description.

How do I install Decky Dev in Codex?

Run `npx skills add jinzhongjia/decky-music --skill decky-dev -a codex`. Or copy the skill folder (.agents/skills/decky-dev in jinzhongjia/decky-music) into .agents/skills/decky-dev in your project. Codex loads it when a task matches its description.

Can I use Decky Dev in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jinzhongjia/decky-music --skill decky-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/decky-dev, .gemini/skills/decky-dev, .github/skills/decky-dev and .opencode/skills/decky-dev in your project.

What does Decky Dev need to run?

Going by SKILL.md and its folder, Decky Dev needs the command-line tools its instructions call (ssh, curl and jq).

Does Decky Dev access the network?

SKILL.md contains no URLs. Its commands use ssh and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Decky Dev safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Decky Dev use?

Decky Dev is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Decky Dev use?

About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Decky Dev?

Skills that share tags, products or a category with Decky Dev: Trellis Session Insight (mindfold-ai/Trellis, 15k stars), Native Data Fetching (CherryHQ/cherry-studio-app, 4k stars), Debugging Executions (n8n-io/n8n, 207k stars) and Aoti Debug (pytorch/pytorch, 104k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Decky Dev?

jinzhongjia (a GitHub user) maintains it in jinzhongjia/decky-music, which has 122 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.

Source: jinzhongjia/decky-music on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.