Files
vitaImmich/README.md
T
SadsandClaude Fable 5 b7ac3768a8 Initial commit: Immich client PoC for PS Vita
Scrollable chronological photo grid with full-screen viewer, fetching
previews from an Immich server via its REST API. Thumbnails stream in
on a background thread over a keep-alive connection. JPEG decoding is
done with libjpeg directly (vita2d's loader rejects Immich's
APP2-first JPEGs). JSON parsed with vendored jsmn (the vitasdk jansson
package is built as PIC, which vita-elf-create can't handle).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 23:34:27 +02:00

2.3 KiB

vitaImmich

Minimal proof-of-concept Immich client for the PS Vita. It connects to your Immich server and shows your photo library as a scrollable chronological grid (newest first), with a full-screen viewer.

Requirements

  • A PS Vita with HENkaku/h-encore and VitaShell
  • An Immich server reachable from the Vita's Wi-Fi (recent Immich version — it uses POST /api/search/random and GET /api/assets/{id}/thumbnail)
  • An Immich API key (web UI → Account Settings → API Keys)

Building

Needs VitaSDK with the libvita2d, curl, openssl, zstd, zlib, libpng, libjpeg-turbo and freetype packages installed (via vdpm).

export VITASDK=$HOME/vitasdk
export PATH=$VITASDK/bin:$PATH
cmake -B build -S .
cmake --build build

This produces build/vitaImmich.vpk.

Installing & configuring

  1. Copy vitaImmich.vpk to the Vita and install it with VitaShell.

  2. Launch it once — it creates ux0:data/vitaimmich/config.txt.

  3. Edit that file (VitaShell → SELECT for FTP makes this easy):

    server=http://192.168.1.100:2283
    apikey=your-immich-api-key
    
  4. Relaunch the app.

Controls

Grid view:

Button Action
D-pad Move selection (hold to repeat)
L / R Jump two rows up / down
X Open photo full screen
START Exit

Full-screen view:

Button Action
Left / Right Previous / next photo
X Retry a failed photo
O Back to grid
START Exit

More of the library is fetched automatically (100 photos at a time, newest first) as you scroll toward the end. Errors are shown on screen and logged to ux0:data/vitaimmich/log.txt.

PoC limitations

  • TLS certificate verification is disabled (no CA bundle is shipped), so prefer plain HTTP on a trusted LAN or treat HTTPS as unverified.
  • Thumbnails stream in on a background thread (one at a time over a keep-alive connection); cells show a grey placeholder until loaded.
  • Caps at 1000 photos per launch; no albums, search, video or upload.