# PS5LM turns a jailbroken PS5 into a local OpenAI compatible model server

> PS5LM ports llama.cpp to the console's RDNA 2 GPU and serves a GGUF model over OpenAI and Anthropic compatible endpoints, with a TV interface for watching requests stream. It needs a jailbroken console between firmware 7.00 and 13.60, and nothing else runs on a PC while it works.

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

- Repository: https://github.com/cobanov/PS5LM
- Website: https://ps5lm.cobanov.dev
- Stars: 662 · Forks: 56
- Language: C++
- License: GPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/cobanov-ps5lm

## A model server that outlives the laptop that started it

PS5LM is llama.cpp running on the GPU of a jailbroken PlayStation 5, presented as a small server application with a screen interface built for a television. The pitch is a private model server at home. It loads a GGUF model onto the console's RDNA 2 GPU, with 11.4 GB of the shared memory available for the model and its context, and it serves that model to anything on the network without needing a PC to stay on, a cloud account, or a subscription. The architecture behind the port is llama.cpp's Vulkan backend, which is why the README says every architecture and quantization llama.cpp knows comes along, and why the supported models are not a curated list but a consequence of the upstream project. The audience is narrow and self-selecting: someone with a jailbroken console who wants local inference to be a household appliance rather than something that shuts down when a laptop lid closes.

## OpenAI and Anthropic endpoints on port 8081

The network surface is what makes the project usable by other tools. PS5LM answers OpenAI's `/v1/chat/completions` and Anthropic's `/v1/messages`, and the README states that Claude Code works against it. There is also a chat page reachable in any browser. The address is `http://<console>:8081`, and the detail that catches people out is that you can use any model name in the request, because whatever model is loaded is the one that answers. That removes a whole class of client configuration, and it also means the endpoint will happily accept a model name your client would otherwise refuse to send. For a coding assistant or an agent harness, the practical effect is that the console looks like an ordinary local inference server sitting on the LAN, with a physical address you can bookmark.

## The TV shows every request as it arrives

The console is not just a compute box with a headless service on it. Each request streams across the television as a chat, showing which device asked, what it asked and the reply as it is written. The controller maps onto this: Square sends a demo request, Triangle opens a keyboard, and L1 and R1 move between the Home, Models, API, Console and Settings pages. On the Models page, the D-pad and Cross choose a section and a model and can load, unload or download one. There is a Console page that charts temperature, power, GPU load and CPU load over the last two minutes or the last hour, next to a table of every reading, and an API page that lists the endpoints with an example. Screenshots in the documentation show Home listing the model, its speed and live requests. The interface is genuinely usable from a couch, which is a differentiator from a headless llama.cpp server on a mini PC.

## The planner fits the model to the memory you have

Memory is the binding constraint on a console with shared RAM, so PS5LM adds a planner that reads each GGUF file and gives it the longest context and the best cache that fit the free memory. A Suggested list holds models measured on the console itself, and the app downloads from Hugging Face by itself, into internal storage, the M.2 drive or a USB drive. The measured speeds on a PS5 Slim are given for four entries: Qwen 3.5 0.8B at Q4_K_M, 0.5 GB, at 207 tokens a second; Qwen 3.5 9B at Q4_K_M, 5.3 GB, at 55 tokens a second; Qwen 3.8 27B at UD-Q2_K_XL, 9.2 GB, at about 20 tokens a second with 64k context; and the d1 Omni 600M decision model, 1.1 GB, which answers 3 questions in 0.3 seconds and a 720p image with 7 questions in 2.9 seconds. Those numbers are the console's own measurements, and they are what the planner is trying to reproduce on your unit.

## Decision models add a second API shape

The newest direction in the project is decision models, powered by Ollaya, which runs open decision models on a PC the way Ollama runs language models. On the console, a decision model reads a state and answers typed questions in a single forward pass, with no text generated, and PS5LM serves it on the same `/v1/systemone` API that Ollaya serves. The questions are typed, either a choice with criteria or a yes-or-no. The call looks like this, with the console address standing in for its IP.

```sh
curl http://<console>:8081/v1/systemone -H 'Content-Type: application/json' -d '{
  "state": "I was charged twice this month. Refund me or I cancel.",
  "questions": {
    "intent": {"type": "choice", "instructions": "What does the customer want?",
               "criteria": {"refund": null, "information": null, "cancel": null}},
    "angry":  {"type": "noul", "instructions": "Is the customer angry?"}
  }
}'
```

The Suggested list includes d1 Omni 600M, d1 3B and Clef Flash, and any GGUF carrying llama.cpp's decision metadata loads the same way, with the app labelling it a decision model. Models with an image projector, and the README names Gemma 4, MiniCPM-V and d1, take pictures in chat and in decisions.

## Installing it means jailbreaking first, then FTP

The setup path is the price of admission. You need a PS5 on firmware 7.00 to 13.60, jailbroken, with a set of payloads loaded: kstuff-lite for the kernel patches homebrew runs on, etaHEN for homebrew support, and ShadowMountPlus to put PS5LM on the home screen from `/data/homebrew`, all required. Two more are recommended: elfldr on port 9021 for temperature, power and real free space through ps5-exporter, and ftpsrv on port 2121 for installing the app and copying models from a PC. Then the install itself: download `ps5lm-app-vX.Y.Z.zip` from the latest release and unzip it, copy the `PPSA99575` folder to `/data/homebrew` over FTP, open PS5LM and get a model from Models > Suggested or copy a `.gguf` to `/data/PS5LM/models` or to `PS5LM/models` on a USB drive, then load it. Once Home says Ready, the server answers at `http://<console>:8081`. Updates copy the new folder over the old one, and settings, models and downloads stay in `/data/PS5LM`.

## The storage permission failure and the licensing reality

One failure mode is documented in enough detail to be worth knowing before you start. If PS5LM reports that it cannot write to `/data/PS5LM/models`, the HEN has not opened the console's storage to the application. On OnionHEN the fix is to add `PPSA99575` to `exact_title_ids` in the `[app_jailbreak]` section of `/data/OnionHEN/config.ini` and start PS5LM again. That is a sign of how much of the setup lives in the platform's homebrew layer rather than in this project. The licence is GPL-3.0, which matters more here than usual: a jailbroken console with a homebrew ecosystem tends to be a personal device, but anyone distributing a modified build inherits the copyleft obligations. The repository structure shows the shape of the work, with `ps5` for the app, `third_party` and `patches` for the llama.cpp port, `probes`, `scripts`, `docs` and a `site` directory for the website. The last push was on 2026-10-20, with v0.9.1 published the same day, after v0.9.0 on 2026-10-16.

## Conclusion

Adopt PS5LM if you already have a jailbroken PS5 on firmware 7.00 to 13.60 and want a private model server that keeps running with no PC attached, especially if you want the OpenAI or Anthropic endpoint shape rather than a chat window. Do not adopt it to avoid hardware or because you need a supported device, since the console must be jailbroken with several payloads loaded first, and the documentation makes clear that a failed write to `/data/PS5LM` means the HEN has not opened storage to the app. Before starting, confirm your firmware falls in that range and decide whether the FTP-based install path through port 2121 suits your network.

## FAQ

### What firmware does PS5LM need?

The console needs to run firmware 7.00 to 13.60 and be jailbroken, with the kstuff-lite, etaHEN and ShadowMountPlus payloads loaded, plus elfldr and ftpsrv recommended for telemetry and file transfer.

### Can I point Claude Code at PS5LM?

Yes. PS5LM serves Anthropic's `/v1/messages` endpoint, and the README states that Claude Code works against it. The base address is `http://<console>:8081`.

### How do I install a GGUF model on PS5LM?

Use Models > Suggested and let the app download from Hugging Face into internal storage, the M.2 drive or a USB drive, or copy a `.gguf` file to `/data/PS5LM/models` or to `PS5LM/models` on a USB drive, then load it.

### What does PS5LM do when it cannot write to /data/PS5LM/models?

It means the HEN has not opened the console's storage to the app. On OnionHEN, add `PPSA99575` to `exact_title_ids` in the `[app_jailbreak]` section of `/data/OnionHEN/config.ini`, then start PS5LM again.

## Sources

- [cobanov/PS5LM on GitHub](https://github.com/cobanov/PS5LM)
- [License: GPL-3.0](https://github.com/cobanov/PS5LM/blob/main/LICENSE)
- [Project website](https://ps5lm.cobanov.dev)
- [README](https://github.com/cobanov/PS5LM/blob/main/README.md)
- [Releases](https://github.com/cobanov/PS5LM/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/cobanov-ps5lm
