abhi245y/PS5LM-Plus

★ 383⑂ 46

llama.cpp on a jailbroken PS5: run any GGUF model natively on the console, starting with Qwen 3.8

About abhi245y/PS5LM-Plus

abhi245y/PS5LM-Plus is an open-source project on GitHub, mainly written in C++. llama.cpp on a jailbroken PS5: run any GGUF model natively on the console, starting with Qwen 3.8 It currently holds 383 stars and 46 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository abhi245y/PS5LM-Plus · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/abhi245y/PS5LM-Plus/blob/HEAD/PS5LM Plus app icon

PS5LM Plus

llama.cpp on a jailbroken PlayStation 5, on its GPU. A native app that runs GGUF language models on the console itself, with a dashboard on the TV, a model store, and a chat and OpenAI-compatible API for every device on your network.

PS5LM Plus started as a fork of PS5LM by Mert Cobanov (cobanov/PS5LM): the llama.cpp port to the PS5, the payload and the early research come from there, and the project stays GPL-3.0 like the original. Since then it has grown separately around the native GPU app. The original payload's README is kept in docs/PAYLOAD.md.

https://github.com/abhi245y/PS5LM-Plus/blob/HEAD/The PS5LM Plus dashboard on the TV while Qwen 3.8 27B generates at 20.9 tok/s

What it does

A payload gets about 6 GiB of memory and no GPU. A native app (a title) gets the console's 12 GiB of direct memory and the GPU, so PS5LM Plus runs as one: llama-server with ggml's Vulkan backend on Mihawk-99's RADV port, in one 12 GiB device heap.

| Model (on the PS5 GPU) | Context | Generation | |---|---|---| | Qwen3.8-27B UD-Q2_K_XL (9.2 GiB) | 32k, q4_0 cache | 20.3 tok/s; a 7,775-token answer at 19.7 tok/s | | Qwen3.8-27B UD-IQ2_XXS (6.8 GiB) | 64k, q8_0 cache | 20.7 tok/s | | Gemma 4 E4B QAT q4_0 (4.8 GiB), from USB | 64k, q4_0 cache | 61 tok/s | | Llama 3.2 3B Instruct Q4_K_M (1.9 GiB), from USB | 64k, q8_0 cache | 124 tok/s |

For comparison, the 27B on the CPU as a payload, streamed from disk, made about one token a minute.

https://github.com/abhi245y/PS5LM-Plus/blob/HEAD/The model library: internal storage and USB drive sections, each with its fit plan https://github.com/abhi245y/PS5LM-Plus/blob/HEAD/The loaded-model panel for Qwen 3.8 27B UD-IQ2_XXS: its plan and llama-server arguments
The model library at launch Qwen 3.8 27B loaded: the plan and the arguments it runs with

Features

Safety checks On your network

https://github.com/abhi245y/PS5LM-Plus/blob/HEAD/llama.cpp's web UI served by the PS5, answering with Llama 3.2 3B
The chat in a PC's browser, served by the PS5: Llama 3.2 3B on the console's GPU at 105 tok/s

Under the hood

What you need

A jailbroken PS5, with these payloads loaded before you start the app:

| Payload | Needed for | | |---|---|---| | kstuff-lite | the kernel patches homebrew titles run on | required | | etaHEN | homebrew support (see the note below) | required | | ShadowMountPlus | registers PS5LM Plus from /data/homebrew on the home screen | required | | elfldr (port 9021) | lets the app start ps5-exporter: thermals, fan, power and real free space | strongly recommended | | ftpsrv (port 2121) | installing and updating the app, copying models from a PC | recommended |

ps5-exporter comes inside the app; you do not load it yourself.

Install

1. Download ps5lm-plus-vX.Y.Z.zip from the releases and check it against its .sha256. 2. Unzip it and copy the PPSA99581 folder to /data/homebrew/PPSA99581 over FTP. ShadowMountPlus adds PS5LM Plus to the home screen. 3. Start PS5LM. Pick a model in Get models, or copy a .gguf to /data/PS5LM/models, to /data/homebrew/PPSA99581/models, or to PS5LM/models on a USB drive (exFAT) or the M.2 drive. 4. Choose the model in the library. Once the dashboard says Ready, open http://:8081 on a phone or computer.

To update, close the app and copy the new PPSA99581 folder over the old one. Settings, models and downloads stay in /data/PS5LM.

A title sees only its own folder unless something opens the console's storage to it. On the console PS5LM is developed on (13.00), ShadowMountPlus v1.7-beta5fix1 does so before the title starts, with or without a HEN: its debug.log shows [FAKELIB] directory mounted for PPSA99581: /data (and /mnt/usb0). OnionHEN does so on request: PS5LM asks when it starts (/download0/etahen_jailbreak), which OnionHEN honours for a title on its app jailbreak allowlist, so add PPSA99581 to app_jailbreak.exact_title_ids in /data/OnionHEN/config.ini.

When storage stays closed, the first start says so, with the firmware, and asks which way to go: get full storage (a current ShadowMountPlus, or the OnionHEN allowlist) and open the app again, or go on in the app's own space. Then settings, the log and downloads stay in the app's own space, /download0 (over FTP: /mnt/sandbox/PPSA99581_000/download0/PS5LM), whose size is downloadDataSize in sce_sys/param.json; models copied to /data/homebrew/PPSA99581/models load too. USB and M.2 drives stay out of reach. An update that raises downloadDataSize grows the space at the next start and keeps what is in it; lowering it frees nothing (tested on 13.00). Uninstalling the app deletes the models in both places, so update by copying the new folder over the old one.

If something goes wrong, open Settings > App > Debug report and press Cross (the first time, a popup says what the report holds before it is saved). The app saves one text file with its logs, settings, firmware, storage route, drives, models and which payloads are listening, and shows where it went: /data/PS5LM/debug/ over FTP, or /mnt/sandbox/PPSA99581_000/download0/PS5LM/debug/ when the app runs in its own space. Attach it to an issue. It holds no prompts or tokens, but it does include the end of ShadowMountPlus's log, which lists the games and images it mounts. Read it before posting, or paste it into an LLM and ask it to point out anything personal, and remove what you would rather not share.

Kernel log in reports (Settings > App, off by default) has the app collect the kernel log from the klogsrv payload (port 3232) from launch, keeping the last 1 MiB, and adds it to reports. klogsrv sends nothing from before a client connects, so turn it on, reproduce the problem, then save the report. The kernel log names other apps and services and can show network addresses and account IDs: turn it on only when asked for it; switching it on shows a popup that says so first. klogsrv sends every line to every client, so captures on a PC keep working while it is on.

Which models fit is in docs/MODELS.md; anything llama.cpp runs works if the library shows LOAD.

Controls

| Where | Button | Does | |---|---|---| | Everywhere | L1 / R1 | previous / next page | | Dashboard | D-pad, Cross | move between cards, expand one; Cross on MODEL opens the library | | Library | Cross | load the model under the cursor (the app restarts into it) | | Get models | L2 / R2 | change the search (Popular, Qwen, Gemma, ...) | | Get models | Square | check whether the file fits | | Get models | Cross | open a repository; on a file, download it | | Downloads | Cross | pause, resume, or try a failed one again | | Downloads | Square | cancel (press twice; the partial file is deleted), or clear a finished one | | Logs | Square, Triangle | switch log, errors only |

How it was built

The full notes are in docs/CONSOLE.md. In short:

Building the app

The app links llama.cpp with ggml-vulkan against PS5_Vulkan's RADV build. Set up PS5_Vulkan and its forks in .deps/src (PS5_Vulkan, PS5_Mesa and PS5_PayloadSDK at the revisions PS5_Vulkan pins), then:

git clone --recursive https://github.com/abhi245y/PS5LM-Plus
cd PS5LM
(cd .deps/src/PS5_Vulkan && tools/setup-native-dependencies.sh && tools/build-radv.sh release && make app)
scripts/build-app.sh             # build/app-ps5/title/PPSA99581
scripts/release-app.sh           # build/release/ps5lm-plus-vX.Y.Z.zip and its .sha256

From the PC, with the app on the console:

scripts/preview-app-ui.sh                       # render every screen to build/app-preview/*.png (Mesa, no console)
PS5_HOST= scripts/ps5lm-app.sh cycle # close, deploy, launch; also close|deploy|launch
PS5_HOST= scripts/ps5lm-app.sh press r1        # press a button on the console
PS5_HOST= scripts/ps5lm-app.sh screenshot out.bmp

The app closes itself on request (/data/PS5LM/quit), so nothing is killed while it draws. Launching uses ps5-homebrew-dev-protocol's launch payload, cloned into .deps/src. /data/PS5LM/app-args.txt (one argument per line) overrides the planner.

| Path | What | |---|---| | ps5/app | the native app: dashboard, planner, store, downloads, llama-server on the GPU | | third_party/llama.cpp | upstream llama.cpp, pinned as a submodule | | third_party/ps5-homebrew-ui | the UI toolkit | | patches/ | PS5 changes to llama.cpp, kept small (tool confinement, Anthropic system messages, ...) | | ps5/compat, probes/ | the payload build's libc additions and memory probes (see docs/PAYLOAD.md) | | scripts/ | build, release, deploy and console tools | | docs/ | coding tools, models that fit, console notes, porting, research, plans |

Versions and branches

Why llama.cpp

Earlier PS5 LLM work hand-writes GPU kernels for one model at a time. PS5LM ports llama.cpp itself, so every architecture and every quantization llama.cpp supports comes along: Qwen, Llama, Mistral, Gemma, from 1-bit to 8-bit.

Credits

Licence

GPL-3.0-or-later, see LICENSE. llama.cpp keeps its MIT licence. No Sony SDK files, keys, firmware or model weights are in this repository.

PS5LM Plus is not affiliated with Sony Interactive Entertainment or Alibaba. "PlayStation" and "PS5" are trademarks of Sony Interactive Entertainment.

GitHub Stars & Activity

383Stars
46Forks
0Open issues
C++Language

GitHub Popularity

GitHub stars383
Forks46
Open issues0
Primary languageC++
License-
Stars gained today0
Created-
Last pushed-

Trending History

Weekly boardrank #98 · ▲ 0 stars

Related AI Projects

1

tensorflow / tensorflow

C++★ 201,078⑂ 79,638▲ 35 stars
→
2

ggml-org / llama.cpp

C++★ 131,513⑂ 24,494▲ 126 stars
→
3

mozilla-ai / llamafile

C++★ 26,393⑂ 1,739▲ 59 stars
→
4

obra / superpowers

Shell★ 301,134⑂ 26,883▲ 663 stars
→
5

affaan-m / ECC

JavaScript★ 282,295⑂ 41,960▲ 1,145 stars
→
6

anomalyco / opencode

TypeScript★ 215,031⑂ 28,847▲ 576 stars
→
7

ollama / ollama

Go★ 183,617⑂ 18,358▲ 166 stars
→
8

DietrichGebert / ponytail

JavaScript★ 166,055⑂ 8,978▲ 704 stars
→

More AI Rankings