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.
S
Description
Terminal TUI for Immich photo library
Readme
6.4 MiB
Languages
C 97.5%
Python 1%
Dockerfile 0.7%
CMake 0.6%
Shell 0.2%