Files
Manage the source library
Browse watched roots, inspect linked entities, upload, create folders, rename, move, rescan, exclude, and delete from one focused file manager.
PrismediaVideos, comics, books, audio, galleries, and files — organized, searchable, and playable from any device on your network. One Docker image. No cloud. No configuration.

Manages
Documentation
Pick the section that matches what you are trying to do.
Install with Docker, mount your media directories, run a scan, and start browsing. Library organization, settings, and operations live here.
Quick start→02 · Extend itBuild a metadata pluginWrite providers in TypeScript or Python to identify videos, books, people, audio, and more. Stash-compatible scraper packages can be adapted.
Build plugins→03 · Understand itExplore the architectureSvelte, the .NET worker, Postgres, and the shared packages. How code moves from the UI all the way to the database and job queue.
Architecture→What it does
Built for a single trusted user on a private network. All processing happens locally — no internet access required, no external services.
Files
Browse watched roots, inspect linked entities, upload, create folders, rename, move, rescan, exclude, and delete from one focused file manager.
Streaming
Videos transcode to HLS via ffmpeg as they are needed. Cached renditions are served directly from the app — no separate media server, no manual format conversion.
Audio
Albums, tracks, cover art, waveforms, people and studio linking. The same metadata pipeline as every other media type, with shuffle and a built-in player.
Metadata
A durable Identify queue lets you run providers, compare proposals, choose artwork, walk child records, and accept only what belongs in your library.
Jobs
Scan, probe, thumbnail, sprite, waveform, HLS, subtitle, and import jobs run in the background. The Jobs dashboard mirrors every queue in real time — so you always know what the system is doing.
Reading
Comic archives, EPUBs, and PDFs are first-class entities with a built-in reader — paged and webtoon comics, reflowable EPUBs, and a full PDF reader with search, zoom, and resume.
Jellyfin
An experimental Jellyfin-compatible API lets clients like Infuse and Manet sign in and stream your video and audio, with per-profile NSFW filtering and two-way resume sync.
Library
Create manual, dynamic, or hybrid collections as organizational views over movies, series, galleries, images, books, and audio tracks.
Deploy
PostgreSQL, ffmpeg, the web server, and the worker ship as a single image. Mount /data and /media, expose port 8008, and you are running. Nothing else required.
The interface
The whole UI follows one design language. Read the Design Language doc for the full spec.
Every media type at a glance — recent activity, library totals, scan state, and job status. Dense, dark, and purposeful.

HLS adaptive streaming, trickplay frame strip, multi-language subtitles with a dockable transcript panel, and inline metadata editing — all in one page.

Move between watched folders, linked entities, scan exclusions, and catalog metadata without leaving the app.

Browse, search, read, and play from any phone on your network. Every view is designed for touch before it scales up to desktop.

Mount your media, expose one port, and you are running. No cloud accounts and no external dependencies.