{"id":51680360,"url":"https://github.com/emerytech/couchside-decky","last_synced_at":"2026-07-15T12:39:55.539Z","repository":{"id":369184285,"uuid":"1288729283","full_name":"emerytech/couchside-decky","owner":"emerytech","description":"Decky Loader plugin: install \u0026 manage the Couchside agent on your Steam Deck / SteamOS box, with the phone pairing QR in Game Mode.","archived":false,"fork":false,"pushed_at":"2026-07-11T02:04:41.000Z","size":193,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-07-11T04:05:42.667Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://couchside.tv","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emerytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-03T22:54:21.000Z","updated_at":"2026-07-11T02:04:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/emerytech/couchside-decky","commit_stats":null,"previous_names":["emerytech/couchside-decky"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/emerytech/couchside-decky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emerytech%2Fcouchside-decky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emerytech%2Fcouchside-decky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emerytech%2Fcouchside-decky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emerytech%2Fcouchside-decky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emerytech","download_url":"https://codeload.github.com/emerytech/couchside-decky/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emerytech%2Fcouchside-decky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35505612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-15T02:00:06.706Z","response_time":131,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-15T12:39:50.740Z","updated_at":"2026-07-15T12:39:55.533Z","avatar_url":"https://github.com/emerytech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Couchside: Decky Loader plugin\n\nInstall and manage the [Couchside](https://couchside.tv) agent on your Steam Deck\nor SteamOS / Bazzite box without leaving Game Mode. The plugin also shows the\nphone pairing QR right in the Quick Access Menu.\n\nCouchside turns your phone into your box's dashboard, remote console, and game\ncontroller ([App Store](https://apps.apple.com/app/id6786884115) ·\n[Google Play](https://play.google.com/store/apps/details?id=com.ets3d.rescueremote)).\nThe box side is a tiny, dependency-free Python agent; this plugin installs and\nsupervises it for you.\n\n## What it does\n\n- One-tap install / update of the agent. It ships bundled with the plugin, so\n  nothing is downloaded. The install writes it to `~/.local/opt/couchside`,\n  enables `couchside.service`, and installs the scoped, `visudo`-validated\n  sudoers rule plus the `/dev/uinput` udev rule the virtual gamepad needs.\n  It is a faithful port of the box installer (`install.sh`), minus the terminal.\n- Pairing QR in Game Mode: scan it with your phone. Host, port, and token are\n  shown alongside it.\n- Status: running state, agent version, port.\n- Manage: restart the agent, regenerate the token, uninstall.\n\nThe plugin backend runs as root (`\"flags\": [\"root\"]` in `plugin.json`) so it can\nplace the systemd unit and sudoers rule. The agent itself runs as your desktop\nuser (`deck` / `bazzite`).\n\n## Status\n\nTested on device and ready to submit. The structure, backend (`main.py`), and\npanel (`src/index.tsx`) are in place; the bundled agent lives in `defaults/`.\nOn a Bazzite box running Decky Loader v3.2.6-pre1 the plugin loaded cleanly in\nGame Mode: the panel detected the running agent, reported its status, and\nrendered the pairing QR, which paired with both an Android phone and an iPhone.\nNext step is submission to the Decky plugin store.\n\n## Build\n\nRequires Node ≥ 16.14 and pnpm v9.\n\n```sh\npnpm install\npnpm run build     # -\u003e dist/index.js\n```\n\nCopy the plugin folder (or symlink) into `~/homebrew/plugins/Couchside` on the\ndevice to test, or use Decky's developer mode.\n\n## Repo layout\n\n```\nplugin.json        Decky manifest (name, root flag, store metadata)\nmain.py            Python backend: install / status / pairing / restart / uninstall\nsrc/index.tsx      Quick Access panel (React, @decky/ui)\ndefaults/          bundled agent: couchsided.py + couchside.service\npackage.json        build config (@decky/rollup)\n```\n\n## Submitting to the Decky store\n\nPR this repo as a submodule to\n[`decky-plugin-database`](https://github.com/SteamDeckHomebrew/decky-plugin-database),\nbumping `version` in `package.json`. The `LICENSE` (MIT) is included as required.\n\n## License\n\nMIT © 2026 Taylor Emery (ETS3D LLC). The bundled agent is MIT; see the main\n[couchside](https://github.com/emerytech/couchside) repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femerytech%2Fcouchside-decky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femerytech%2Fcouchside-decky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femerytech%2Fcouchside-decky/lists"}