-
Notifications
You must be signed in to change notification settings - Fork 0
SaveTracker IPC API Reference
KrachDev edited this page Feb 14, 2026
·
1 revision
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.
- 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.
All commands must be sent as a single line JSON string terminated by a newline (\n).
{
"cmd": "command_name",
"params": {
"key": "value"
}
}The server will respond with a JSON object indicating success or failure.
Success:
{
"ok": true,
"data": { ... }
}failure:
{
"ok": false,
"error": "Error message details"
}| 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 |
| 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) |
| 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) |
| 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
|
| 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 |
| Command | Description | Params |
|---|---|---|
showmainwindow |
Bring app to foreground | None |
showlibrary |
Open Library view | None |
showblacklist |
Open Blacklist editor | None |
showsettings |
Open Settings view | None |
# 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()