Steamworks Documentation
How to load and run games on the Steam Deck Dev-Kit

Overview

To help developers work with Steam Deck, we are providing the SteamOS Devkit Client Tool and the SteamOS Devkit Service. These tools allow you to load game builds directly from your development machine to your Steam Deck Dev-kit (or Linux machine), as well as perform other development activities.
Important:
Before uploading and testing your own title using the instructions below, we recommend installing and running another title from Steam that uses Steam Play(Proton) on the Steam Deck dev-kit. This will ensure Proton and its dependencies are installed.

Install Tools

Client Setup (Dev PC side)

  • The SteamOS Devkit Client runs on your development PC and allows developers to connect to a Steam Deck or Linux system to deploy / debug software.
  • Install SteamOS Devkit Client from Steam. Check with your Valve contact for keys.
  • The tool can be started from the Steam Library, in the Software category. If you prefer to run it from the command line:
    • On Windows, run windows-client/devkit-gui.exe
    • On Linux, run python3.9 ./devkit-gui-cp39.pyz in the linux-client directory

Server Setup (Steam Deck side)

  • The SteamOS Devkit Service runs on the target Steam Deck / Linux system, and allows developers to connect from another PC and deploy / debug their software.
  • If you have a Steam Deck dev-kit, the SteamOS Devkit Service is pre-installed and running - no further action is needed.
  • If you do not have a Steam Deck and are testing from your own Linux system, you will need to install the SteamOS Devkit Service and launch it manually. Check with your Valve contact for keys.

Connecting to Deck

On your Dev PC, launch the SteamOS Dev-kit Client. The dev-kit needs to be on a local area network allowing Multicast DNS with the development host in order to be discovered and listed. This works over Wi-Fi or ethernet (via a USB-C hub).

  • On your Steam Deck: Go to Settings > System, and select Pair new host under the Development Kit section
  • On your Dev PC: In the Devkit tool, look for an item called callistoXXX - this is your dev-kit. Click the Register button to the right to register this devkit with the tool. (This sets up a ssh key on the device and grants full control.)
  • On your Steam Deck: Approve the pairing request from your PC.
  • If you don't see a dev-kit in the dev-kit tool UI, check to make sure your dev pc and dev-kit are on the same LAN. Depending on your environment, you may have to use the Add by IP field.

dev-kit_landing.png

In the screenshot above, callisto530 is a registered devkit.

Uploading a game build to Steam Deck

Click the Title Upload tab to configure a game for upload from your dev PC to the Steam Deck dev-kit. The screen looks something like this when filled out:

dev-kit_upload_2.png

This screenshot is an example of uploading a Windows build of a test game to the devkit.
  • Local Folder - The base directory that contains all the files necessary for your game to run.
  • Exclude patterns - The upload process uses rsync over ssh, so to prevent unneeded directories and files present in Local Folder from being transferred, populate the Exclude patterns field (space separated--see exclude patterns).
  • Clean upload - Enable this to delete any files on the devkit that are not present in the Local Folder once the exclude patterns are applied.
  • Devkit Start Command - Set this to game's binary executable (and any arguments you want to add).
  • Steam Play - Check this if you are uploading Windows binaries that need to be executed over Steam Play using Proton.
  • Steam Play debug = The debugger service checkbox allows you to step through your C++ build in Visual Studio.

If you have an appid for your game already and are using the Steamworks API, you'll want to include the steam_appid.txt file (which should just contain your appid) alongside your executable. You can read more about that in the Steamworks API Initialization and Shutdown article.

Running uploaded game builds

On your Steam Deck devkit, navigate the library to find a new title named 'Devkit Game: YourGameName' and select it to run.
As mentioned at the top of the article, before uploading and testing your own title directly, we recommend installing another title from Steam that uses Steam Play (Proton) on the Steam Deck devkit and running it first. This will ensure Proton and all its dependencies are properly installed.