End of life — September 2026. SolarFlare is no longer maintained and this site is kept for reference only. No further releases, updates, bug fixes, or security patches will be published. Users are encouraged to migrate to Slipstream, the successor project, which remains actively maintained.

On this page
ConfigurationApps

App & Game Examples

Launch commands, working directory setups, detached commands, and per-app encoder presets.

5 min readUpdated August 2026

Application Management in apps.json#

Applications and game shortcuts are stored in ~/.config/sunshine/apps.json. You can manage apps through the Web UI Application tab or edit the JSON file directly.

SolarFlare Web UI applications editor
Manage launch commands and per-app overrides in the Applications tab.

Launcher examples#

apps.json lives in ~/.config/sunshine/apps.json. Use the tabs for common launchers.

json
{
  "name": "Steam Big Picture",
  "cmd": "",
  "detached": ["setsid steam steam://open/bigpicture"],
  "prep-cmd": [{ "do": "", "undo": "setsid steam steam://close/bigpicture" }],
  "image-path": "steam.png"
}

Per-Application Encoder Tuning Preset#

SolarFlare allows setting an NVENC encoder preset on a per-game basis via encoder-preset:

  • -1: Inherit host default configuration (nvenc_tuning_preset)
  • 0: Latency (fastest encoding, zero B-frames)
  • 1: Balanced (balanced performance/quality)
  • 2: Quality (2-pass high visual fidelity)
json
{
  "name": "Competitive Fast FPS",
  "cmd": "gamelauncher",
  "encoder-preset": 0,
  "image-path": "shooter.png"
}

Sandboxed Gamescope Session#

Run a game inside Valve Gamescope micro-compositor for sandboxed resolution control and integer scaling:

json
{
  "name": "Cyberpunk 2077 (Gamescope)",
  "cmd": "gamescope -W 2560 -H 1440 -r 120 -- steam steam://rungameid/1091500",
  "image-path": "cyberpunk.png"
}

apps.json field reference#

Every entry supports: name, cmd, working-dir (required by some games), output (null path appends vs discards), env (top-level map with $(VAR) expansion plus injected SUNSHINE_APP_* and SUNSHINE_CLIENT_*), auto-detach (default true, exit-0 heuristic), wait-all (default true, process-group wait), exit-timeout (default 5 s), exclude-global-prep-cmd alongside global prep_cmds, elevated on the app and on each prep-cmd, prep-cmd [{do, undo}] where empty do is skipped and undo runs on terminate, detached [cmds] that are never tracked, image-path (must be valid PNG, relative or absolute, default box.png; id is CRC32 of name+image), and encoder-preset (-1 inherit, 0 latency, 1 balanced, 2 quality; out-of-range values are silently ignored and the host default is kept, restored on terminate).

Epic, Heroic and Flatpak launches#

The built-in game scanner (Web UI Applications tab, GET /api/games/scan) finds Steam, Lutris, and Heroic titles: Lutris entries store a directly-pasteable lutris lutris:<slug> path. Heroic scan results need manual cmd translation. Flatpak games launch through flatpak run (note the Flatpak Steam data path ~/.var/app/... when setting working-dir). Manage the catalog through the Web UI Applications tab, by editing ~/.config/sunshine/apps.json directly, or via GET/POST /api/apps.

json
{
  "name": "Flatpak Steam game",
  "cmd": "flatpak run com.valvesoftware.Steam steam://rungameid/1091500",
  "working-dir": "/home/user/.var/app/com.valvesoftware.Steam",
  "image-path": "cyberpunk.png"
}

Prep commands and elevated launches#

Use prep-cmd do/undo pairs for resolution or refresh-rate switches around a game. Mark elevated true on the app or individual prep steps when anti-cheat or drivers demand it. Prefer detached for fire-and-forget launchers such as Steam Big Picture via setsid so the tracked process tree stays clean.

json
{
  "name": "High-refresh session",
  "cmd": "steam steam://rungameid/730",
  "prep-cmd": [{ "do": "xrandr --output DP-1 --mode 2560x1440 --rate 120", "undo": "xrandr --output DP-1 --mode 3840x2160 --rate 60" }],
  "encoder-preset": 0
}