Deploy Unity builds to Steam Deck over SSH/rsync. Auto-discovers devices on the network via mDNS and registers games as Steam shortcuts.
- Unity 6+ (uses
BuildProfileAPI) - Linux or macOS host with
ssh,rsync, andavahi-browse - Steam Deck with Developer Mode enabled
- SSH key from the SteamOS Devkit Client (auto-detected)
Add to your manifest.json:
"com.api-haus.steamdeck-deploy": "https://github.com/api-haus/com.api-haus.steamdeck-deploy.git"Or use the Unity Package Manager window: Add package from git URL.
- Build > Deploy to Steam Deck -- rsyncs the last build to the deck
- Build > Build and Deploy to Steam Deck -- builds the active profile, then deploys
Project Settings > Steam Deck Deploy to configure:
- IP address (auto-discovered if left empty)
- Username (default:
deck) - SSH key path (auto-detected from SteamOS Devkit Client)
- Remote base path, launch args, auto-launch toggle
using ApiHaus.SteamDeckDeploy.Editor;
// Deploy an existing build
await SteamDeckDeploy.Deploy("Builds/Linux");
// Deploy without launching
await SteamDeckDeploy.Deploy("Builds/Linux", launch: false);
// Test connection
await SteamDeckDeploy.TestConnection();- Discover -- finds Steam Deck on the LAN via
avahi-browse _steamos-devkit._tcp - Upload scripts -- rsyncs
unity-run-gamehelper to~/unity-scripts/on the device - Rsync build -- transfers the build to
~/devkit-game/{productName}_Linux/, excluding*_DoNotShip,*_BackUpThisFolder_*,*.pdb, andSaved/ - Register shortcut -- calls
steam-client-create-shortcutvia SSH to add the game to Steam - Launch -- runs the game through the Steam client IPC
MIT