Skip to content

CLI reference

SaveVault ships a full command-line interface — savevault-cli (savevault-cli.exe on Windows) — alongside the desktop app. Anything the GUI does, you can script. The CLI and GUI share the same config, database, and backup folder, so you can mix them freely.

Detect installed games by matching your system against the PCGamingWiki / Ludusavi database, plus any custom games you’ve added.

Terminal window
# Scan for installed games
savevault-cli scan
# Machine-readable output for scripting
savevault-cli scan --json
# Only games new since the last scan (or last acknowledge)
savevault-cli scan --new-only
# Dismiss "new" labels using the current on-disk scan cache (no manifest walk)
savevault-cli scan --acknowledge-new
Terminal window
# Back up all detected games
savevault-cli backup
# Back up specific games (repeat --games)
savevault-cli backup --games "Dark Souls III" --games "Elden Ring"

Backups are standard compressed archives (zip, tar.gz, or tar.zst) and each one carries a plain-text README.txt and a savevault-manifest.json, so they can be restored by hand if you ever stop using SaveVault. Set your default format and other options with savevault-cli config or in the GUI.

Restores are safe to preview first. Portable paths mean a same-OS restore “just works”; cross-machine and cross-OS restores remap paths automatically.

Terminal window
# Restore from a backup (same machine / same OS)
savevault-cli restore path/to/backup.zip
# Preview what would happen — writes nothing
savevault-cli restore path/to/backup.zip --dry-run
# Restore only saves, only configs, or both
savevault-cli restore path/to/backup.zip --include saves
savevault-cli restore path/to/backup.zip --include both
# Override one root's destination for a single restore
savevault-cli restore path/to/backup.zip --remap-root 0=D:/Games/Skyrim
# Preview the resolution plan and the embedded README — no writes
savevault-cli explain path/to/backup.zip
# Restore every archive in a directory (new-machine flow)
savevault-cli restore-batch path/to/backups/

Opt-in restore behaviors, off by default:

Terminal window
# Cross-platform restore (remap between Windows / Linux / macOS layouts)
savevault-cli restore path/to/backup.zip --cross-platform
# Materialize saves into a Wine / Proton prefix at restore
savevault-cli restore path/to/backup.zip --redirect-wine

Persistent path-prefix rewrites applied during backup, restore, or both — useful when your library has moved drives or folders.

Terminal window
# Rewrite C:/OldSaves → D:/NewSaves on restore
savevault-cli redirects add restore C:/OldSaves D:/NewSaves
# Two-way mapping, applied to both backup and restore
savevault-cli redirects add bidirectional D:/Games C:/Canonical/Games
# Inspect / clear
savevault-cli redirects show
savevault-cli redirects clear
# Share between machines
savevault-cli redirects export -o savevault-redirects.toml
savevault-cli redirects import savevault-redirects.toml --dry-run

Export portable preferences — schedule (including on/off), live-protection options, notifications, manual install roots, cloud-sync preferences, and built-in theme selection — to a TOML file, optionally bundling custom games and redirects. Machine-local state (backup folder, sign-ins, live/cloud on-off) is never exported.

Terminal window
# Export
savevault-cli settings export -o savevault-settings.toml
savevault-cli settings export --include-custom-games --include-redirects
# Preview a file's contents before importing
savevault-cli settings preview savevault-settings.toml
# Plan how custom games would merge (Add / Replace / Skip)
savevault-cli settings custom-games-plan savevault-settings.toml -o plan.toml
# Import — always dry-run first
savevault-cli settings import savevault-settings.toml --dry-run
savevault-cli settings import savevault-settings.toml --custom-games-use-defaults
savevault-cli settings import savevault-settings.toml --no-redirects --no-custom-games
savevault-cli settings import savevault-settings.toml --custom-games-decisions plan.toml

Importing with schedule.enabled = true re-registers the OS scheduler on the new machine.

Non-Steam install folders (the Ludusavi <base>), stored in config.toml as additional_roots. Steam libraries are discovered separately.

Terminal window
# List configured roots
savevault-cli roots list
# Read-only: what auto-discovery finds on this machine
savevault-cli roots discover
# Merge discovered roots, sort, dedupe, and save
savevault-cli roots rescan
# Preview a rescan without writing config
savevault-cli roots rescan --dry-run

Run roots rescan after installing a new launcher (GOG, Epic, Heroic, Lutris, Legendary, Battle.net, EA App, LaunchBox, Microsoft Store…).

Terminal window
# Run one scheduled pass now (backs up only changed games)
savevault-cli schedule-run
# Enable / disable OS-level scheduling
savevault-cli schedule enable
savevault-cli schedule disable
# Inspect the schedule and recent runs
savevault-cli schedule status
savevault-cli schedule history

schedule enable registers the backup with your OS scheduler — Task Scheduler on Windows, a systemd timer on Linux, launchd on macOS — so passes run even when the app is closed.

Terminal window
# Start Live Protection (auto-detects running games)
savevault-cli live start

Live Protection takes rolling snapshots while you play, triggered by filesystem changes or the global hotkey (default Ctrl+Shift+S; hotkey snapshots are pinned by default).

Add user-defined save locations without re-walking the whole game database — only the affected entry’s scan cache is patched.

Terminal window
# Add a folder (all files within it)
savevault-cli add "My Game" --path "C:\Users\Me\Saves\MyGame"
# Add specific files or globs — repeat --path for multiple patterns
savevault-cli add "My Game" --path "C:\Users\Me\Saves\MyGame\*.sav" --path "C:\Users\Me\Saves\MyGame\*.cfg"

The savevault-cli games add / games remove subcommands manage custom-game entries incrementally (the same operation the GUI’s Custom Games panel performs), and custom games can also be shared as TOML via the settings export above.

Terminal window
# View current config
savevault-cli config
# List all backups
savevault-cli list
# Verify a backup's integrity (BLAKE3 checksums)
savevault-cli verify path/to/backup.zip
# Fetch the latest game database
savevault-cli update-manifest