{"id":13469398,"url":"https://github.com/mtkennerly/ludusavi","last_synced_at":"2025-05-12T13:09:51.362Z","repository":{"id":39715065,"uuid":"273743952","full_name":"mtkennerly/ludusavi","owner":"mtkennerly","description":"Backup tool for PC game saves","archived":false,"fork":false,"pushed_at":"2025-05-06T17:24:20.000Z","size":24512,"stargazers_count":3681,"open_issues_count":38,"forks_count":80,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-05-12T13:09:17.950Z","etag":null,"topics":["backup","cli","cross-platform","games","gui","saves","steam","steam-deck","steam-proton","steamdeck","videogames"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtkennerly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-20T16:26:46.000Z","updated_at":"2025-05-12T11:42:32.000Z","dependencies_parsed_at":"2023-12-29T08:25:47.969Z","dependency_job_id":"4171f670-2267-4153-8616-95f76564f9d0","html_url":"https://github.com/mtkennerly/ludusavi","commit_stats":{"total_commits":902,"total_committers":16,"mean_commits":56.375,"dds":0.07206208425720617,"last_synced_commit":"799dc782bb63fbe7fd90ef2448bccf24421bf9a1"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtkennerly","download_url":"https://codeload.github.com/mtkennerly/ludusavi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253745160,"owners_count":21957317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","cli","cross-platform","games","gui","saves","steam","steam-deck","steam-proton","steamdeck","videogames"],"created_at":"2024-07-31T15:01:37.695Z","updated_at":"2025-05-12T13:09:51.288Z","avatar_url":"https://github.com/mtkennerly.png","language":"Rust","funding_links":[],"categories":["Projects Using iced","Rust","Applications","cli","Games","Utility"],"sub_categories":["Games","Other"],"readme":"# ![Logo](assets/icon.svg) Ludusavi\nLudusavi is a tool for backing up your PC video game save data,\nwritten in [Rust](https://www.rust-lang.org).\nIt is cross-platform and supports multiple game stores.\n\n## Features\n* Ability to back up data from more than 19,000 games plus your own custom entries.\n* Backup and restore for Steam, GOG, Epic, Heroic, Lutris, and other game libraries.\n* Both a graphical interface and command line interface for scripting.\n  Tab completion is available for Bash, Fish, Zsh, PowerShell, and Elvish.\n* Support for:\n  * Saves that are stored as files and in the Windows registry.\n  * Proton saves with Steam.\n  * Steam screenshots.\n* Available as a [Playnite](https://playnite.link) extension:\n  https://github.com/mtkennerly/ludusavi-playnite\n* Works on the Steam Deck.\n\nThis tool uses the [Ludusavi Manifest](https://github.com/mtkennerly/ludusavi-manifest)\nfor info on what to back up for each game.\nThe data is primarily sourced from [PCGamingWiki](https://www.pcgamingwiki.com/wiki/Home),\nso please contribute any new or fixed data back to the wiki itself,\nand your improvements will be incorporated into Ludusavi's data as well.\n\nIf you'd like to help translate Ludusavi into other languages,\n[check out the Crowdin project](https://crowdin.com/project/ludusavi).\n\n## Demo\n\u003c!-- These anchors are kept for compatibility with old section headers. --\u003e\n\u003ca name=\"gui\"\u003e\u003c/a\u003e\n\n\u003e ![GUI demo of previewing a backup](docs/demo-gui.gif)\n\n## Installation\n\u003c!-- These anchors are kept for compatibility with old section headers. --\u003e\n\u003ca name=\"requirements\"\u003e\u003c/a\u003e\n\u003ca name=\"methods\"\u003e\u003c/a\u003e\n\nDownload the executable for Windows, Linux, or Mac from the\n[releases page](https://github.com/mtkennerly/ludusavi/releases).\nIt's portable, so you can simply download it and put it anywhere on your system.\n\nIf you prefer, Ludusavi is also available via\n[Winget, Scoop, Flatpak, and Cargo](docs/help/installation.md).\n\nNote:\n\n* Windows users may see a popup that says\n  \"Windows protected your PC\",\n  because Windows does not recognize the program's publisher.\n  Click \"more info\" and then \"run anyway\" to start the program.\n* Mac users may see a popup that says\n  \"Ludusavi can't be opened because it is from an unidentified developer\".\n  To allow Ludusavi to run, please refer to [this article](https://support.apple.com/en-us/102445),\n  specifically the section on `If you want to open an app [...] from an unidentified developer`.\n\n## Usage\n\u003c!-- These anchors are kept for compatibility with old section headers. --\u003e\n\u003ca name=\"backup-exclusions\"\u003e\u003c/a\u003e\n\u003ca name=\"backup-retention\"\u003e\u003c/a\u003e\n\u003ca name=\"backup-structure\"\u003e\u003c/a\u003e\n\u003ca name=\"backup-validation\"\u003e\u003c/a\u003e\n\u003ca name=\"cli-api\"\u003e\u003c/a\u003e\n\u003ca name=\"cloud-backup\"\u003e\u003c/a\u003e\n\u003ca name=\"command-line\"\u003e\u003c/a\u003e\n\u003ca name=\"configuration\"\u003e\u003c/a\u003e\n\u003ca name=\"configuration-file\"\u003e\u003c/a\u003e\n\u003ca name=\"custom-games\"\u003e\u003c/a\u003e\n\u003ca name=\"duplicates\"\u003e\u003c/a\u003e\n\u003ca name=\"environment-variables\"\u003e\u003c/a\u003e\n\u003ca name=\"filter\"\u003e\u003c/a\u003e\n\u003ca name=\"game-launch-wrapping\"\u003e\u003c/a\u003e\n\u003ca name=\"logging\"\u003e\u003c/a\u003e\n\u003ca name=\"redirects\"\u003e\u003c/a\u003e\n\u003ca name=\"roots\"\u003e\u003c/a\u003e\n\u003ca name=\"selective-scanning\"\u003e\u003c/a\u003e\n\u003ca name=\"troubleshooting\"\u003e\u003c/a\u003e\n\nDetailed help documentation is available for several topics.\n\n### General\n* [Backup automation](/docs/help/backup-automation.md)\n* [Backup exclusions](/docs/help/backup-exclusions.md)\n* [Backup retention](/docs/help/backup-retention.md)\n* [Backup validation](/docs/help/backup-validation.md)\n* [Cloud backup](/docs/help/cloud-backup.md)\n* [Custom games](/docs/help/custom-games.md)\n* [Duplicates](/docs/help/duplicates.md)\n* [Filter](/docs/help/filter.md)\n* [Game launch wrapping](/docs/help/game-launch-wrapping.md)\n* [Redirects](/docs/help/redirects.md)\n* [Roots](/docs/help/roots.md)\n* [Selective scanning](/docs/help/selective-scanning.md)\n\n### Interfaces\n* [Application folder](/docs/help/application-folder.md)\n* [Backup structure](/docs/help/backup-structure.md)\n* [Command line](/docs/help/command-line.md)\n* [Configuration file](/docs/help/configuration-file.md)\n* [Environment variables](/docs/help/environment-variables.md)\n* [Logging](/docs/help/logging.md)\n\n### Other\n* [Troubleshooting](/docs/help/troubleshooting.md)\n* [What if my saves aren't found?](/docs/help/missing-saves.md)\n\n## Community\n\nThe community has created some additional resources you may find useful.\nPlease note that this is not an exhaustive list\nand that these projects are not officially affiliated with Ludusavi itself:\n\n* Secondary manifests:\n  * https://github.com/BloodShed-Oni/ludusavi-extra-manifests\n  * https://github.com/hblamo/ludusavi-emudeck-manifest\n  * https://github.com/hvmzx/ludusavi-manifests\n    * This has an example of using a scheduled GitHub workflow\n      to generate a manifest that adds more paths to the primary manifest's entries.\n* Plugins for Decky Loader on Steam Deck:\n  * https://github.com/GedasFX/decky-ludusavi\n* Plugins for VS Code:\n  * https://marketplace.visualstudio.com/items?itemName=claui.ludusavi\n* Tools:\n  * https://github.com/jose-l-martins/GSM-to-Ludusavi-converter\n\n## Comparison with other tools\nThere are other excellent backup tools available, but not a singular\ncross-platform and cross-store solution:\n\n* [GameSave Manager](https://www.gamesave-manager.com) (as of v3.1.512.0):\n  * Only supports Windows.\n  * Much slower than Ludusavi. On the same hardware and with default settings,\n    an initial scan of the whole system takes 2 minutes in GSM versus 10 seconds in Ludusavi.\n    Performing a backup immediately after that scan takes 4 minutes 16 seconds in GSM versus 4.5 seconds in Ludusavi.\n    In this test, GSM found 257 games with 2.84 GB, and Ludusavi found 297 games with 2.95 GiB.\n  * Closed source, so the community cannot contribute improvements.\n  * Interface can be slow or unresponsive.\n    For example, when clicking \"select all / de-select all\", each checkbox has to individually toggle itself.\n    With 257 games, this means you end up having to wait around 42 seconds.\n  * Minimal command line interface.\n  * Can create symlinks for games and game data.\n    Ludusavi does not support this.\n* [Game Backup Monitor](https://mikemaximus.github.io/gbm-web) (as of v1.2.2):\n  * Does not support Mac.\n  * Database only covers 577 games (as of 2022-11-16), although it can also import\n    the Ludusavi manifest starting in 1.3.1.\n  * No command line interface.\n  * Can automatically back up saves for a game after you play it.\n    Ludusavi can only do that in conjunction with a launcher like Playnite.\n* [Gaming Backup Multitool for Linux](https://supremesonicbrazil.gitlab.io/gbml-web) (as of v1.4.0.0):\n  * Only supports Linux and Steam.\n  * Database is not actively updated. As of 2022-11-16, the last update was 2018-06-05.\n  * No command line interface.\n\n## Development\nPlease refer to [CONTRIBUTING.md](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fludusavi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtkennerly%2Fludusavi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fludusavi/lists"}