Skip to content

SaveTracker IPC API Reference

KrachDev edited this page Feb 14, 2026 · 1 revision

SaveTracker IPC API Reference

SaveTracker exposes a powerful internal API via Named Pipes (JSON-RPC), allowing external applications (like Playnite extensions, custom scripts, or game launchers) to control the application programmatically.

πŸ”Œ Connection Details

  • Protocol: JSON-RPC over Named Pipe
  • Pipe Name: SaveTracker_Command_Pipe
  • Security: The pipe is secured with ACLs allowing the current user and Administrators.

To connect, simply open a standard NamedPipeClientStream to the pipe name.


πŸ“‘ Request Format

All commands must be sent as a single line JSON string terminated by a newline (\n).

{
  "cmd": "command_name",
  "params": {
    "key": "value"
  }
}

πŸ“© Response Format

The server will respond with a JSON object indicating success or failure.

Success:

{
  "ok": true,
  "data": { ... }
}

failure:

{
  "ok": false,
  "error": "Error message details"
}

πŸ“š Command Categories

1. Status & System

Command Description Params
ping Check if service is alive None
istracking Returns true if a game is currently being tracked None
getsyncstatus Returns upload/download state None
version Returns API/App version None

2. Game Management

Command Description Params
getgamelist Returns array of all configured games None
getgame Get details for specific game name (string)
addgame Register a new game Game Object (JSON)
deletegame Remove a game configuration name (string)
checkcloudpresence Check if saves exist in cloud name (string)

3. Session Control

Command Description Params
startsession Manually begin tracking a game name (string)
endsession Stop tracking and trigger upload name (string)
triggersync Force a cloud sync check name (string)

4. Profiles

Command Description Params
getprofiles List available save profiles name (string)
getactiveprofile Get currently active profile ID name (string)
changeprofile Switch active save profile name, profileId

5. Settings & Cloud

Command Description Params
getproviders List supported cloud providers None
setprovider Change active cloud provider provider (int)
installrclone Trigger Rclone download/install None
checkrclone Verify Rclone installation None

6. UI Control (Desktop Only)

Command Description Params
showmainwindow Bring app to foreground None
showlibrary Open Library view None
showblacklist Open Blacklist editor None
showsettings Open Settings view None

πŸ’‘ Example Usage (PowerShell)

# Check if SaveTracker is running
$pipe = New-Object System.IO.Pipes.NamedPipeClientStream(".", "SaveTracker_Command_Pipe", [System.IO.Pipes.PipeDirection]::InOut)
$pipe.Connect()
$writer = New-Object System.IO.StreamWriter($pipe)
$reader = New-Object System.IO.StreamReader($pipe)

# Send Ping
$json = '{"cmd": "ping"}'
$writer.WriteLine($json)
$writer.Flush()

# Read Response
$response = $reader.ReadLine()
Write-Host "Response: $response"

$pipe.Close()