The native PS5 app store for homebrew.page
Browse, install, update and uninstall PS5 homebrew from your couch, with the controller or a keyboard.
Tip
By default, ProsperoStore uses homebrew.page, the community catalog of PS5 homebrew. Browse it on the web at homebrew.page, then install from the console with one button. The catalog is signed, and every download is checked against it before anything touches your console.
Important
ProsperoStore is an aggregator. It lists and installs apps; it doesn't build, maintain or support them. Each app belongs to its own developer. For a bug, a question or a feature request about an app, go to that app's GitHub repository (the QR code on its page in the store opens its page on homebrew.page, which links to the source) and contact its developer there. Issues here are for the store itself: browsing, installing, updating and uninstalling.
ProsperoStore is a homebrew app store that runs natively on the PS5. Title ID PPSA99000.
It is an alpha; the current version is the newest one on the
releases page.
Warning
ProsperoStore includes an exact-title one-shot helper built from upstream PS5-Lapy-JB-Daemon. The PS5 jailbreak environment must provide ShadowMountPlus (1.7beta4 or newer recommended) and a local ELF loader on TCP port 9021. If a resident Lapy service is already running, the store asks it first; otherwise it sends the packaged helper over that local connection, so no separate Lapy payload is needed. Installs, updates and uninstalls have run on firmware 6.02 and 12.70. Other firmware is experimental; the helper refuses runtime layouts it does not know instead of guessing.
- The whole homebrew.page catalog - Discover shows one app big over shelves (New and updated, Apps, Games, Tools, Coming soon, On this console); each section has its own grid, with search by name or developer and sorting by name, release or update.
- Likes and comments - switched on in Settings, every tile shows the app's likes and comments, Discover gains a Most liked shelf, the grids a "Most liked" order, and an app's page its latest comments; see Likes and comments.
- One-button installs - Cross on an app's page downloads it, checks it against the signed catalog, unpacks it and puts it in place. A ring, four steps (Download, Verify, Unpack, Finish) and the time left show the progress; Circle cancels, and nothing changes until the end.
- Updates - apps installed with the store are offered their newer versions (the Updates
section, or Update all). A running app is never touched until it is closed. An update replaces
the app's whole folder; the previous folder, with anything you had put inside it, is kept in
/data/prosperostore/previous/<TITLE ID>(orprosperostore/previouson the app's drive) until that app's next update, so files of yours are never lost. Move them back by FTP if you need them. - Clean uninstalls - hold the Uninstall button: the app's folder goes and so does its home-screen tile. Its saved data stays.
- Fast file work - unpacking and removing run in a helper started through the payload loader, which the console does not slow down: Kodi's 2,700 files unpack in about 25 seconds.
- Apps you installed by hand - an app the catalog lists can be handed over to the store (Manage with ProsperoStore) and is updated from then on.
- Any install location - the folders ShadowMountPlus scans on the internal drive, an extended drive or a USB drive, chosen in Settings.
- It updates itself - when a newer ProsperoStore is listed, its own page offers it; see Updating ProsperoStore.
- Looks and feel - each app's picture is made from its own icon's colours, with a soft opening animation, background music, interface sounds and springy motion. Reduce motion is in Settings.
- Keyboard support - a USB keyboard works as well as the controller; see Controls.
- A QR code on every app's page - opens the app's page on homebrew.page, with its release notes and source.
Tip
Use ShadowMountPlus 1.7beta4
or newer, especially on newer firmware. It mounts ProsperoStore from the folder (or drive) you
copy it to, and it also mounts /data and USB and extended storage drives into the app's
sandbox. Older versions may not register the store or give it access to /data, which shows
as "Read only" in the store.
- Make sure the console runs ShadowMountPlus 1.7beta4 or newer and a payload loader on port 9021 (see the warning above).
- Download
PPSA99000.zipfrom the release and unzip it. A release ZIP built by the workflow can be checked withgh attestation verify PPSA99000.zip -R blackbearreloaded/ProsperoStore(GitHub CLI); this covers releases built by GitHub Actions from now on, not earlier ones. - Copy the
PPSA99000folder into a folder ShadowMountPlus scans, for example/data/homebrew, so thateboot.binends up at/data/homebrew/PPSA99000/eboot.bin(not one folder deeper). - Wait a few seconds for ShadowMountPlus to add it to the home screen, then open ProsperoStore.
Note
"Can't start the game or app" (CE-107750-0) after copying the folder? The console only
starts an app whose files are open to every user (permissions 777), and what copies the files
decides their permissions. Some FTP servers and programs upload them as 755 or 644.
- Set
PPSA99000and everything inside it to777with your FTP program (often "File permissions", applied to subfolders and files), then open the store again. - To avoid it next time: the ftpsrv payload writes
uploads with the right permissions, and in WinSCP a transfer preset with "Set permissions"
0777does it for every upload. - Updates done from inside the store, and apps the store installs, are set to
777for you.
Important
Set the console's date and time correctly. The store reaches the catalog and downloads apps
over HTTPS, and a secure connection is refused when the console's clock is far off (the site's
certificate then looks expired or not yet valid). With a wrong date the store stays offline,
shows no apps or fails every download. Check Settings > System > Date and Time on the PS5;
a console kept offline often has the wrong date. The store's debug log shows the clock it saw
(console clock:).
The store keeps its own data in /data/prosperostore (settings, cache, install records and
logs), outside the app's folder, so updates keep it.
For ProsperoEden (PPSA99008) installations that still keep personal game files
inside assets/, Store moves the known legacy folders (roms, keys,
firmware, updates, mods, ryujinx, and save-import) to
/data/prosperoeden during an update. Saves and settings are left unchanged.
The migration resumes through the update journal if it is interrupted.
Store refuses the update before replacing the app if a destination holds files, a custom game-files folder is selected, settings cannot be read safely, or the migration would cross drives. Resolve the reported conflict or move the files to the chosen folder first.
An update made with ProsperoStore 1.000.050 or older left those folders in the
store's own prosperostore/previous/PPSA99008/assets, where ProsperoEden does
not look. The next update of ProsperoEden moves them to /data/prosperoeden by
the same rules, before that previous folder is replaced. If the same folder
holds files both there and in the installed app, the update is refused and
names both places: keep one of them, then update again.
See migration validation for automated checks, controlled testing on an original/phat PS5 with firmware 4.50, and the reproducible console test harness.
| Action | Controller | Keyboard |
|---|---|---|
| Move | D-pad or left stick | Arrows |
| Open, install, update | Cross | Enter or Space |
| Back, close | Circle | Escape or Backspace |
| Previous / next section (they go round) | L1 / R1 | Shift+Tab / Tab, or Page Up / Page Down |
| Close ProsperoStore | Hold Circle on the home page | Hold Escape |
| Search | Triangle | / or F3 |
| Downloads; hold to uninstall on an app's page | Square | Delete or F2 |
| Settings | Options | F10 or the Menu key |
| Sort | R3 | F5 |
| Like or comment, on an app's page | Touchpad | F6 |
| To an app's comments and back to the top, on its page | R2 (L2 also goes back) | F7 |
When homebrew.page lists a newer ProsperoStore, the store asks when it opens: Update now, What's new (the release notes) or Skip. The store's own page (Settings > ProsperoStore) offers the update too. It downloads and unpacks like any app; then the store closes, a small helper started through the payload loader puts the new files in place, and a notification says when to open it again. The next start runs the new version. Versions before 1.000.020 show a short notice at the top right instead of the question.
Updating from inside the store is the easy way. To update by hand, replace the PPSA99000 folder
with the one from the new release; if the console then says it can't start the app, see the note
about permissions under Install.
Every app in the catalog has a discussion on GitHub, the same one its page on homebrew.page shows: the replies are the app's comments, and the upvotes of the discussion are its likes.
They are on from the first start; Settings → Show likes and comments switches them off. While the switch is off the store asks GitHub for nothing and shows none of it. With it on:
- every tile shows the app's likes and comments, zero included;
- Discover has a Most liked shelf, the ten apps with the most likes in order (it is there when some app has a like), and each section's grid can be sorted by "Most liked";
- an app's page shows its likes and comments among its facts, and a Comments block after the release notes with the latest ten: who, when and what they wrote. R2 jumps straight to it, and R2 again or L2 goes back to the top;
- the Touchpad on an app's page shows a QR code for the app's discussion. Scan it with your phone to like the app or to write a comment there. Both happen on GitHub and need a GitHub account; the store itself never writes anything.
The store reads two kinds of file for this, from one address only:
https://raw.githubusercontent.com/blackbearreloaded/ps5-homebrew-catalog/comments-data/, the
counts of every app when the catalog is refreshed and one app's comments when its page opens.
These files are not part of the signed catalog and decide nothing about what is installed. What
they hold is shown as plain text, cut to length, and the only address taken from them is the
discussion's, which must be on github.com and is only ever shown as that code. When they can't
be read there are simply no likes and comments, and the rest of the store works as before.
If the store shows no apps, stays offline or can't install something, switch on Debug log in Settings (Options button) and repeat what failed. The log starts with what the store found when it opened (the access it was given, the catalog), then records each step it takes: the network requests and every install. The switch stays on the next time the store opens, wherever the store can keep its settings.
Send one of these with your report:
- a photo of About, where the Debug trace section lists the steps (scroll for all of it);
- the file
/data/prosperostore/debug-trace.txt, fetched by FTP; - if the store couldn't write to
/data:ProsperoStore-debug-trace.txton a USB drive that was plugged in before the store was opened.
Say which console and firmware you have, your ShadowMountPlus version and your payload loader. The log holds no account details or passwords. Switch Debug log off again afterwards: while it is on, the store starts a little slower.
Settings → Development options has two switches, one for each source:
- Official catalog - homebrew.page, always signature-checked. On by default.
- Custom catalog - your own feed. Switching it on asks for its address when none is set.
With both on, the custom catalog's apps are added to homebrew.page's and carry a "Custom catalog" mark on their page. Where both list the same title ID, the official app is the one shown, and the store says how many custom apps were hidden. With only the custom catalog on, it replaces the official one, which is what you want to test a new version of an app that is already listed. The store needs one catalog, so the official one can only be switched off while a custom one is in use.
Custom catalog URL is the HTTPS directory containing the feed, for example
https://example.com/api/v1/: the API directory, not the website homepage, a GitHub repository
URL or index.json. Restore official catalog goes back to homebrew.page alone. Changes are
saved at once and apply when you close and reopen ProsperoStore.
Verify custom catalog signatures is on by default and uses the official catalog's built-in public keys, so it suits a copy of the signed official feed. For an independently published feed you can turn it off after confirming the warning; the store then labels the catalog Signatures not checked. Only do this with a publisher you trust: hashes detect changed downloads, but an unchecked publisher controls both the download address and its expected hash.
Custom feeds must implement the catalog API:
schema-3 manifest.json, index.json, versions.json, and apps/<TITLEID>.json.
The manifest must list the SHA-256 of each API JSON file. manifest.sig is required
only while signature verification is on. API-file hashes, artifact hashes, ZIP
validation, HTTPS certificate checks, and the existing GitHub release download
policy remain enforced. Plain HTTP, self-signed TLS certificates, arbitrary JSON
lists, and downloads from non-GitHub artifact hosts are not supported.
Each API URL and signature mode has its own catalog cache. Re-enabling verification
never reuses an unchecked catalog; the official signed catalog retains its saved
rollback protection. Signature checks off also disables sequence rollback checks,
so development feeds can rebuild with a lower sequence. Store update notices use
the selected catalog, and app QR codes use its page URLs.
Ideas for what a solid app store should do, in no promised order. Some need changes to the catalog as well as to the store.
- Install an older version - pick a past release on an app's page and install it; an app held at a version is left alone by Update all.
- Roll back in one press - put back the previous version the store already keeps after an update, with the files you had inside it.
- Skip or hold updates - "don't offer this update" or "never update", for each app.
- What's new before updating - the release notes for every app in the Updates list, as the store already shows for itself.
- Automatic updates - optionally update apps when the store opens, all of them or only the ones you mark.
- Categories and tags - emulators, media, streaming, utilities, beyond App, Game and Tool.
- Collections - curated shelves such as "Start here" or "Emulators".
- Screenshots - pictures of the app on its page.
- Popularity - download counts, and sorting by them.
- Favourites - a list kept on the console.
- Search in descriptions - not only names and developers.
- What an app does outside its sandbox - a short list on its page, from the catalog's scan of each release.
- Firmware and requirements - which firmware an app was tested on and what it needs (ShadowMountPlus version, Lapy, extra files), checked before installing.
- Report a problem with an app - a QR code to the app's issue page, with the console's firmware and the app's version filled in.
- Storage view - the size of each app, the previous versions the store keeps and its caches, with a way to clear each.
- Move an app - between the console's storage, a USB drive and the extended drive.
- App data - show where an app keeps its data, and offer to remove it when uninstalling.
- Back up and restore app data - to a USB drive.
- Repair - check an installed app against the catalog and reinstall it when it differs.
- Export the installed list - and install everything again on another console.
- Resume interrupted downloads - large apps start again from zero today.
- Queue controls - reorder, pause and retry.
- Install from a USB drive or a local ZIP - checked against the catalog when the app is listed.
- A notification when a download finishes - through the PS5's own notifications.
- Beta channel - opt in to an app's pre-releases.
- Install a test build - from a pull request or an address, in Development options.
- Announcements - a short message from the catalog shown when the store opens.
- Other languages - follow the PS5's language, as ProsperoEden does.
- First-run check - a screen that tests elevation, ShadowMountPlus settings and the network, and says what to fix.
- Open after installing (investigation) - start an app from the store, if the console allows one title to launch another.
- ZIP apps only; image files (ffpfsc) are listed but can't be installed.
- The store installs, updates and removes apps; it does not start them.
- The store updates itself only when it was installed as a folder (not as an image).
- An update is only offered for apps whose catalog entry lists a content version.
- The home-screen name of an app does not change after an update.
- English only.
The store's source is in this repository: the app in src/, the file worker in helper/, the
host previews and checks in host/ and tests/. Build on Linux (WSL works) with
make DEVELOPMENT=1 app, or make app for a release build without development requests.
make test lint runs the host checks. Every pull request gets an installable build named by its
number and commit: see Pull-request builds. IMPLEMENTATION_NOTES.md records
what was built and how it was verified on consoles, and PLAN.md the design and
decisions. FOUNDATIONS.json pins the foundation sources, and third_party/STORE_SOURCES.json the
vendored libraries. The store reads the catalog API at https://homebrew.page/api/v1/, specified
in the catalog's docs/api.md.
Important
The catalog is homebrew.page, built from ps5-homebrew-catalog. Developers list their apps there, and ProsperoStore installs what it lists.
Important
Built on the PS5 Native App Boilerplate, the native foundation also used by ProsperoEden and ProsperoLight: application structure, runtime, packaging, sandbox elevation and the self-update helper.
Important
The interface is built with ps5-homebrew-ui and drawn with ps5-opengl.
- ShadowMountPlus by drakmor puts installed apps on the home screen.
- PS5-Lapy-JB-Daemon by mpereiraesaa gives
the store access to
/data. - Jones (X, GitHub), for helping with testing.
- szampan, for testing and feedback.
Built with the PS5 Payload SDK by John Törnblom (ps5-payload-dev). Third-party components, authors and licenses are listed in THIRD_PARTY_NOTICES.md.
Copyright © 2026 BlackBearReloaded. Licensed under GPL-3.0-or-later; see LICENSE. Third-party components keep their own licenses.
- No affiliation. This is an independent homebrew project. It is not affiliated with, endorsed by, or sponsored by Sony Interactive Entertainment. "PlayStation", "PS5" and related marks are trademarks of Sony Interactive Entertainment Inc.
- No proprietary material. No Sony SDK, firmware, encryption keys or decrypted system modules are included.
- No warranty. This project is provided "as is", without warranty of any kind, to the extent permitted by law. See sections 15 and 16 of the GPL.
- Use at your own risk. Running homebrew requires a modified console, which may void its warranty, breach the platform's terms of service, or cause data loss.
- Legal use only. Use it only with hardware, accounts and content you own. This project does not support or enable piracy.
This project was developed with AI assistance from OpenAI and/or Anthropic tools.
