Skip to content

Configuration

SISR can be configured via:

  1. CLI flags
    See CLI Reference
  2. Environment variables
  3. Config files (TOML/YAML/JSON)

Configuration merging

SISR merges defaults + any discovered config files + your explicit --config file + CLI overrides
(in that order)

Common options

Option Description Default
--config <FILE>
Path to an explicit configuration file (TOML/YAML/JSON)
--console (Windows only) Show console window false
--api.listen-address <host:port> API listen address; by default will pick a random free port and listen on localhost only localhost:0
--api.cors-origins <origins> CORS allowed origins https://steamloopback.host,http://steamloopback.host
--viiper.address <host:port> VIIPER server address; specify if VIIPER is run manually or on another machine localhost:3242
--viiper.password <password> VIIPER server password. Required for non-localhost connections none
--keyboard-mouse-emulation, --kbm Forward keyboard and mouse when running over a network false
--update-notify <CHANNEL> Update notification level (none, stable, prerelease, always) stable
--default-controller-type <type> Default controller type for emulation (xbox360, dualshock4, dualsense, dualsenseedge, ns2pro) xbox360
--gyro-passthrough, --gp Enable gyro passthrough for supported controllers true
--touchpad-passthrough, --tp Enable touchpad passthrough for supported controllers (e.g. DualShock 4, DualSense) true
--back-button-passthrough, --bbp Enable back button (paddle/grip button) passthrough for supported controllers (e.g. DualSense Edge, NS2 Pro) false
--allow-steam-desktop-layout Allow/use Steam's desktop configuration for emulated controllers false
--immediate-sensor-updates Immediately send sensor updates to VIIPER instead of waiting for the next input report true
--w
--window.show [true|false]
Shows window on startup; when used with fullscreen enabled, this will enable Steam Overlay false
--f
--window.fullscreen [true|false]
Create a transparent, borderless, always-on-top overlay window true
--window.max-fps <FPS> Maximim FPS for SteamOverlay/UI (Does not affect inputs) 60
--log.level <LEVEL> Log level (trace, debug, info, warn, error) info
--log.file <FILE> Write logs to a file none
--no-steam Run in no-Steam mode false
--steam.install-dir <PATH> Steam installation directory (optional, will attempt to auto-detect if not set) auto-detect
--steam.user-id <ID> Active Steam user ID (optional, will attempt to auto-detect if not set) auto-detect
--steam.cef-remote-debug-port <PORT> CEF remote debugging port (optional, will attempt to auto-detect if not set) auto-detect

Config file discovery

SISR looks for these names and extensions in the current working directory:

  • Names: SISR, config
  • Extensions: .toml, .yaml, .yml, .json

Search locations:

  • The current working directory

You can also explicitly provide a config file path via --config <FILE> or the SISR_CONFIG environment variable.

Discovery order and precedence

When multiple sources provide the same configuration option, the latest one in the following is picked:

  1. Defaults
  2. Discovered config files (in this exact order):
    1. github.com/Alia5/SISR.{json,yaml,yml,toml}
    2. SISR.{json,yaml,yml,toml}
    3. config.{json,yaml,yml,toml}
  3. Your explicit --config <FILE> (if provided)
  4. CLI flags and environment variables

Full example (default) configuration

All values are optional.

🪟 %APPDATA%\SISR\config\SISR.toml
🐧 $XDG_CONFIG_HOME/sisr/SISR.toml

# Windows only: show console window
# On other platforms this key is ignored
console = false

# API server address; 0 picks a random free port
[api]
listen-address = "localhost:0"

# Optional CORS origins
cors-origins = "https://steamloopback.host,http://steamloopback.host"

# VIIPER API server address
[viiper]
address = "localhost:3242"

# VIIPER API server password
password = ""

# Enable keyboard/mouse emulation.
# Will only work if the specified VIIPER server does not run on localhost
keyboard-mouse-emulation = false

# Update notification channel
# Allowed: "none", "stable", "prerelease", "always"
update-notify = "stable"

# Default controller type for emulation
default-controller-type = "xbox360"

# Allow/re-use Steam's desktop configuration for emulated controllers
allow-steam-desktop-layout = false

# Enable gyro passthrough for supported controllers
gyro-passthrough = true

# Enable touchpad passthrough for supported controllers (e.g. DualShock 4, DualSense)
touchpad-passthrough = true

# Enable back button (paddle/grip button) passthrough for supported controllers (e.g. DualSense Edge, NS2 Pro)
back-button-passthrough = false

# Send sensor updates immediately instead of waiting for the next input report
immediate-sensor-updates = true

# No-Steam mode
no-steam = false

# Window behavior
[window]
# Create/Show window at launch
show = false

# Create a transparent fullscreen (borderless) overlay window
fullscreen = true

# Maximum FPS for the Steam overlay/UI
max-fps = 60

# Logging
[log]
# Logging level
# Allowed: "trace", "debug", "info", "warn", "error"
level = "info"

# Write logs to a file.
# Default path:
#   Windows: %APPDATA%/SISR/data/SISR.log
#   Linux: ~/.config/SISR/data/SISR.log
file = "C:/Users/<UserName>/AppData/Roaming/SISR/data/SISR.log"

# Steam integration
[steam]
# Steam installation directory, normally auto-detected
install-dir = "C:/Program Files (x86)/Steam"

# Active Steam user ID (optional)
user-id = 0

# CEF remote debugging port (optional)
cef-remote-debug-port = 8080