{"id":25926324,"url":"https://github.com/mcarlucci/decky-storage-cleaner","last_synced_at":"2025-03-03T20:02:33.623Z","repository":{"id":149900839,"uuid":"617724924","full_name":"mcarlucci/decky-storage-cleaner","owner":"mcarlucci","description":"A Decky Loader plugin for tidying up your Steam Deck's storage. Quickly visualize, select and clear shader cache and compatibility data.","archived":false,"fork":false,"pushed_at":"2024-02-13T19:21:49.000Z","size":6753,"stargazers_count":53,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-02-13T20:24:02.448Z","etag":null,"topics":["cache","cleaner","compat","compatibility","data","decky","decky-loader","plugin","shader","steam","steamdeck","storage","utility"],"latest_commit_sha":null,"homepage":"https://plugins.deckbrew.xyz/","language":"TypeScript","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/mcarlucci.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}},"created_at":"2023-03-23T01:17:13.000Z","updated_at":"2024-02-13T20:24:02.772Z","dependencies_parsed_at":"2023-06-01T04:00:38.424Z","dependency_job_id":null,"html_url":"https://github.com/mcarlucci/decky-storage-cleaner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"SteamDeckHomebrew/decky-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcarlucci%2Fdecky-storage-cleaner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcarlucci%2Fdecky-storage-cleaner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcarlucci%2Fdecky-storage-cleaner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcarlucci%2Fdecky-storage-cleaner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcarlucci","download_url":"https://codeload.github.com/mcarlucci/decky-storage-cleaner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241731744,"owners_count":20010781,"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":["cache","cleaner","compat","compatibility","data","decky","decky-loader","plugin","shader","steam","steamdeck","storage","utility"],"created_at":"2025-03-03T20:00:52.163Z","updated_at":"2025-03-03T20:02:33.595Z","avatar_url":"https://github.com/mcarlucci.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/mcarlucci"],"categories":["Storage Management","Software Setup"],"sub_categories":[],"readme":"# Storage Cleaner (Decky Loader Plugin)\n\nA [Decky Loader](https://github.com/SteamDeckHomebrew/decky-loader) plugin for tidying up your Steam Deck's storage (and getting rid of that pesky 'Other' storage eating it all up)! Quickly visualize, select and clear shader cache and compatibility data.\n\n## Features\n\n- Get disk usage data for your Steam Deck's shader cache and compatibility data\n- Identify Steam and Non-Steam games\n- Selectively clear the shader cache and compatibility data you don't want\n- Clear all the shader cache or compatibility data all at once\n\n![](assets/Screenshot-1.png)\n\n![](assets/Screenshot-2.png)\n\n## Installation\n\n1. If you haven't already, install [Decky Loader](https://deckbrew.xyz/) on your Steam Deck.\n2. With Decky Loader installed, press the Quick Access button on your Steam Deck.\n3. Navigate to the Plug icon (Decky) and press the Gear icon (settings).\n4. Find Storage Cleaner and press \"Install\".\n\n## Support My Work\n\nStorage Cleaner is completely free-to-use. It is built and maintained in my spare time. With your help I can remain caffeinated and awake - squashing bugs, adding features and creating more useful plugins.\n\n\u003ca href=\"https://www.buymeacoffee.com/mcarlucci\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\"\u003e\u003c/a\u003e\n\n## Possible Future Features\n\n- Support microsd storage (move/clear)...?\n- Clear depotcache...?\n- Small disk analyser/visualizer...?\n- Auto/scheduled cache cleanups...?\n- Identify games with games saves stored in compatdata...?\n- Empty Trash directory...?\n\n## Methodologies\n\n### Getting Shader Cache and Compat Data\n\n- Native Python file methods are used to get all of the subdirectories in the `home/deck/.steam/steam/steamapps/shadercache` and `home/deck/.steam/steam/steamapps/compatdata` parent directories\n- Each subdirectory name is a steam appid/gameid\n\n### Getting Steam and Non-Steam App Names/Types\n\n- Since each game directory name is an appid/gameid, it can be used to fetch the game name via the client side Steam `appStore.GetAppOverviewByGameID(game.appid)` method. This method returns an object with a `display_name` property, which is the name of the corresponding steam or non-steam game\n\n- `appStore.GetAppOverviewByGameID(game.appid)` also returns the `app_type` property, which is used to differentiate between Steam and Non-Steam games\n\n### Clearing Shader Cache and Compat Data\n\n- Game specific shader cache is deleted recursively by appid (directory name) using the `shutil.rmtree('home/deck/.steam/steam/steamapps/shadercache/\u003cappId\u003e')` native Python method\n  \n  \u003e Shader Cache will regerenerate either during gameplay or preemptively via OTA (over the air) updates via Steam\n\n### Detecting Games That Don't Support or Have Never Synced to Steam Cloud Saves\n\n- `appStore.GetAppOverviewByGameID(game.appid)` returns the `local_per_client_data.cloud_status` object/property, which is used to check if an installed game is/has ever synced to Steam Cloud Saves\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcarlucci%2Fdecky-storage-cleaner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcarlucci%2Fdecky-storage-cleaner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcarlucci%2Fdecky-storage-cleaner/lists"}