{"id":50203546,"url":"https://github.com/paulcombal/samrewritten-legacy","last_synced_at":"2026-05-26T00:03:36.885Z","repository":{"id":35435394,"uuid":"121801410","full_name":"PaulCombal/SamRewritten-legacy","owner":"PaulCombal","description":"Steam Achievement Manager For Linux. Rewritten in C++.","archived":false,"fork":false,"pushed_at":"2025-06-26T05:07:34.000Z","size":27060,"stargazers_count":400,"open_issues_count":29,"forks_count":37,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-26T06:20:53.956Z","etag":null,"topics":["achievement-unlocker","achievements","linux","steam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaulCombal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2018-02-16T21:13:48.000Z","updated_at":"2025-06-26T05:07:37.000Z","dependencies_parsed_at":"2023-01-15T21:10:38.799Z","dependency_job_id":"1d4629e1-9bc0-47b0-b955-a5d849ff0bcf","html_url":"https://github.com/PaulCombal/SamRewritten-legacy","commit_stats":null,"previous_names":["paulcombal/samrewritten-legacy"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/PaulCombal/SamRewritten-legacy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulCombal%2FSamRewritten-legacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulCombal%2FSamRewritten-legacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulCombal%2FSamRewritten-legacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulCombal%2FSamRewritten-legacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaulCombal","download_url":"https://codeload.github.com/PaulCombal/SamRewritten-legacy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulCombal%2FSamRewritten-legacy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33497930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["achievement-unlocker","achievements","linux","steam"],"created_at":"2026-05-26T00:03:32.118Z","updated_at":"2026-05-26T00:03:36.879Z","avatar_url":"https://github.com/PaulCombal.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SamRewritten\n\nLegacy\n---\n\nThis is the legacy version of SamRewritten. It stood the test of time and should still work with modern Linux environments.\n\nNew developments and features are being developed on the new rewritten version: [SamRewritten](https://github.com/PaulCombal/SamRewritten)\n\nThe new version aims to:\n* Have a similar or wider support of Linux distributions\n* Have additional features\n* Display in a modern, revamped interface\n\nIf there is something this version can do the new can't, please let us know!\n\nA Steam Achievements Manager for Linux\n---\n\n\u003cp align=center\u003e\n\t\u003cimg src=\"assets/icon_256.png\" alt=\"SamRewritten logo\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n\t\u003cimg src=\"assets/screenshot.png\" alt=\"SamRewritten screenshot\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n\t\u003cimg src=\"assets/screenshot2.png\" alt=\"SamRewritten screenshot\"/\u003e\n\u003c/p\u003e\n\n# Introduction\n\nSamRewritten is an open-source desktop application that allows you to unlock and relock your Steam achievements. It is named after the famous Steam Achievement Manager [written by Gibbed](https://github.com/gibbed/SteamAchievementManager), and implements its functionalities on Linux, and more!\n\nSamRewritten is always evolving, we would be thrilled to listen to your feedback, ideas, and contributions!\n\n### ⚠️ SamRewritten only works if Steam has been installed through your package manager (apt, pacman, ...). \n### ⚠️ Flatpak is *not* supported but contributions are welcome!\n\n# Installation\n\nAppImage downloads are readily available from [the releases tab](https://github.com/PaulCombal/SamRewritten-legacy/releases).\n\nArch users can install SamRewritten from the AUR by installing the `samrewritten-git` package.\nRun SamRewritten by opening the corresponding desktop entry, or by using the `samrewritten` command.\n\nOn Gentoo, SamRewritten is available as `games-util/samrewritten` through [the GURU overlay](https://wiki.gentoo.org/wiki/Project:GURU).\n\n# Building\n\nTo build this project from source, clone and enter this repository, and run `make`.\nFor Arch users, there is also a PKGBUILD within the `package` folder if you wish to build it using `makepkg`.\n\nIf you're encountering issues building SamRewritten, make sure you have installed the required packages on your machine. You'll most likely need Steam, curl, yajl, GTK 3, and GLib.\n\n* **Ubuntu 18.04** and above: `$ sudo apt install libgtkmm-3.0-dev libcurl4-gnutls-dev libyajl-dev`\n\n* **Arch** and variants: `$ sudo pacman -S gtkmm3 glibc gnutls yajl`\n\n* **openSUSE** Tumbleweed, Leap 15.2+: `$ sudo zypper install gtkmm3 gcc-c++ gnutls libcurl-devel libyajl-devel-static`\n\n* **Fedora 32+**: `$ sudo dnf install gtkmm30 gtkmm30-devel yajl-devel curl-devel g++`\n\n\nTo run your SamRewritten build, use `$ ./bin/launch.sh`\n\nTo build your own AppImage, build SamRewritten normally, then execute `build_appimage.sh` from the `package` folder. A new AppImage will be generated with libraries from your system.\n\n# Features\n\nSamRewritten's features match and exceed the original SAM:\n\n* Ability to unlock/relock achievements and change stats\n* Asynchronous and cached icon downloads for games and achievements\n* Ability to select/deselect all achievements for locking/unlocking\n* Ability to search games, achievements, and stats and filter achievements by locked/unlocked\n* Ability to launch another SamRewritten instance for a game in a new window\n* Protected achievements and stats are detected\n* Ability to show percent of players who achieved an achievement\n* Ability to time achievement modifications\n\nThis last one warrants some explanation. SamRewritten allows you to specify across what time period, with what spacing, and in what order to lock/unlock achievements. For example, you can unlock 10 achievements of your choice in a random order across 4 hours with random spacing between them. This is a powerful tool to allow you to make achievement management look more natural, rather than unlocking them all at once. This option can be accessed in the GUI by starting a game, selecting the  achievement modifications, click the menu icon, then selcting Start Timed Modifications. The same functionality can be used with the CLI as well via the `--timed` parameter - an example is given in the next section.\n\n# Command line options\n\nAs linux geeks we love to use command line options! SamRewritten's commandline can do all the operations its GUI can! Given no arguments, SamRewritten will launch graphically.\n\n```\nUsage:\n  samrewritten [AppId] [OPTION...]\n\n      --apps                 \tGet the list of your owned apps.\n  -h, --help                 \tShow CLI help.\n  -a, --app arg              \tSet which AppId you want to use. Same as using\n                             \tpositional 'AppId'.\n  -i, --idle                 \tSet your Steam profile as 'ingame'. Ctrl+c to\n                             \tstop.\n      --ls                   \tDisplay achievements and stats for selected app.\n      --sort arg             \tSort option for --ls. You can leave empty or set\n                             \tto 'unlock_rate'.\n      --filter-achieved arg  \tFilter option for --ls. You can use with 'yes'/'y'\n                             \tor 'no'/'n' to only filter achived or not achieved ones.\n\t\t\t\tDefault is all.\n      --filter-protected arg \tFilter option for --ls. You can use with 'yes'/'y'\n                             \tor 'no'/'n' to only filter protected or not protected ones.\n\t\t\t\tDefault is all.\n      --nostats              \tDo not displays stats after achievements.\n      --unlock arg           \tUnlock achievements for an AppId. Separate\n                             \tachievement names by a comma.\n      --lock arg             \tLock achievements for an AppId. Separate\n                             \tachievement names by a comma.\n      --timed                \tDo a timed achievement modification. Arguments\n                             \tthat affect this are --amount, --units, --spacing,\n                             \tand --order\n      --amount arg           \tControl the amount of time spent for --timed\n                             \tmodifications. Specify units with --units. Default\n                             \tis 1000\n      --units arg            \tControl the units of time spent for --timed\n                             \tmodifications. Set to 'seconds', 'minutes', 'hours',\n                             \tor 'days'. Default is seconds\n      --spacing arg          \tControl the spacing between appying each\n                             \tmodification for --timed modifications. Set to 'even' or\n                             \t'random'. Default is even.\n      --order arg            \tControl the order --timed achievement\n                             \tmodifications are applied in. Set to 'selection' or\n                             \t'random'. Default is selection.\n      --timestamps           \tDisplays timestamps before time related information.\n      --statnames arg        \tChange stats for an AppId. Separate stat names\n                             \tby a comma. Use with statvalues to name the values\n                             \tin order.\n      --statvalues arg       \tChange stats for an AppId. Separate stat values\n                             \tby a comma. Use with statnames to name the values\n                             \tin order.\n  -p, --launch_achievements  \tLaunch SamRewritten GUI and immediately switch\n                             \tto achievements page for the app.\n      --launch               \tActually just launch the app.\n```\n\n## Example Usage\n\nChange an achievement or stat value:\n\n```\n# Find what you want from the --ls command for app id 54 (you can retrieve app ids from the store page URL).\nsamrewritten 54 --ls\n\n# Say we found achievements with IDs ach_500_kills and ach_found_something and stats stat_num_kills, stat_num_deaths\n# Modify them like this\nsamrewritten 54 --unlock ach_500_kills,ach_found_something\nsamrewritten 54 --statnames stat_num_kills,stat_num_deaths --statvalues 10,1\n```\n\nUse the timed unlock on the commandline\n\n```\n# Using the same achievements from the previous example\nsamrewritten 54 --timed --unlock ach_500_kills,ach_found_something --amount 4 --units hours --spacing random --order random\n```\n\n---\n\n## Third-party apps integration\n\nSamRewritten uses JSON to communicate between the interface and the \"backend logic\" via sockets. If you plan to make an app using some of SamRewritten's features, feel free to ask for help, for support, for features, or to contribute.\n\n## I want to contribute, where to start?\n\nYou can find an overview of SamRewritten's internal logic and more [in the doc folder](doc/OVERVIEW.md). If you need more help getting started, feel free to ask questions and open issues. The more feedback we collect, the better we can make the documentation!\n\n## Footnotes\n\nThis software is licensed under the GNU GPL v3 and comes with no warranty. Use it at your own risk. We believe you should not get any Steam ban using it, but we do not take any responsibility over your user experience.\n\nSamRewritten includes third party libraries such as the Steam Steamworks SDK, which are subject to licensing by Valve Software. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulcombal%2Fsamrewritten-legacy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulcombal%2Fsamrewritten-legacy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulcombal%2Fsamrewritten-legacy/lists"}