pastilhas 869cbce8ed AGENTS.md, so both harnesses find the same guidance
opencode discovers AGENTS.md and nothing else; claude code discovers CLAUDE.md.
this repo had neither, so an agent sent to change something here arrived with no
guidance at all under either.

it deliberately does NOT repeat README.md. that file says what the plugin is,
for someone deciding whether to install it. this one answers the other question:
i have to change something in here, what will i break.

the facts in it are read from the repository rather than recalled — the panel
keys from web/panels.ts, the tables from db/schema.ts, the permission keys, the
host binaries and the route claims from manifest.ts. presence is the declaration
everywhere in this system, so the file says what the platform will actually
conclude from these files existing.

CLAUDE.md beside it is a pointer, not a copy: two copies drift and the stale one
is the one somebody reads.
2026-08-27 07:24:12 +00:00

Video (Jellyfin)

Films and shows from your own Jellyfin server, inside Officer — with a player that handles direct play, HLS and progressive, and an access token that never leaves the server.

What you get

  • Home — resume, next up, recently added
  • Libraries — browse films, shows, seasons and episodes
  • Search across the library
  • A real player — direct play where the file allows it, HLS where it doesn't, progressive as the fallback, with playback reported back to Jellyfin so resume works everywhere
  • Multiple servers — add several and switch between them

Requirements

A running Jellyfin server Officer can reach, and an access token.

Setup

Install the plugin, open /jellyfin, and add a server: a label, the URL, and the token. The token is encrypted at rest and never sent to the browser.

Unlike Transmission and Soulseek, this plugin keeps its own registry — jellyfin_servers — because having more than one Jellyfin is a real thing (a home server and a friend's). One is marked active.

The plugin does not install or supervise Jellyfin. Point it at one you already run.

Permissions

One permission, jellyfin, grantable per role like any other app permission.

Notes

  • web/vendor/hls.mjs is a checked-in third-party build (~1.3 MB), deliberately excluded from formatting so the diff against upstream stays readable.
  • Transcoding is the Jellyfin server's job. This plugin asks for a stream and plays what it gets.
S
Description
No description provided
Readme
751 KiB
Languages
TypeScript 100%