flux
Skill2 starsChanged 22 days agoMITView on GitHub
Work with a flux media server (a self-hosted film, TV and home-video library). Use when the user asks about their flux library, wants it organised, fixed, filled in, searched or browsed differently, or mentions flux. Covers connecting (the flux CLI or MCP), how flux's library and changesets work, and the rules every edit follows. The flux-metadata, flux-artwork, flux-organize and flux-lens skills build on this one.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- AnthonyPoschen/agent-skillstheir own version, first seen Nov 1, 2026
- simota/agent-skillstheir own version, first seen Oct 23, 2026
- brentmercado/flux-skill-evolutiontheir own version, first seen May 30, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- simota/agent-skills★ 96same name
- AnthonyPoschen/agent-skills★ 2same name
- brentmercado/flux-skill-evolution★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- flux-artworkSkill
- flux-lensSkill
- flux-metadataSkill
- flux-organizeSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Use whichever is available:
- Very specific: line 58
Cite: Every value you set needs the pages that support it (--source).
- Very specific: line 64
Files move only by plan: Never rename, move or delete media yourself.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
flux
flux is a self-hosted media server. It scans folders of films, shows and home videos, names them from their files, and serves a web app. It has no AI of its own: you are how a library gets identified, described, illustrated and reshaped. Everything you change is a changeset the user can see in the app (Changes) and undo.
Connecting
Use whichever is available:
- The
fluxcommand line (flux --help). It finds the server on this machine by itself; elsewhere pass--server https://host:portor setFLUX_SERVER. Output is JSON. Runflux statusfirst. - MCP: the server's
/mcpendpoint (toolsstatus,items_find,item_get,items_edit, …), orflux mcpover stdio. - HTTP:
POST /api/v1/ops/{name}with a JSON body and the headersX-Flux-Request: 1andX-Flux-Agent: <your name>.GET /api/v1/agentlists every operation with its JSON Schemas.
Your role comes from where you connect: on the server's own machine you act as its Owner; over the tailnet, as the user's Tailscale identity. flux status says what you may do (you.may).
How the library works
- Items: films (
movie), shows → seasons → episodes, extras, and videos (avideoslibrary: one item per file, home videos and clips, never matched). Ids are integers. - Every field says where its value came from (
item.get→sources): the file (its name, folder, container tags), a provider (TMDB), a person, or an agent (with its links). What a person or an agent set is locked: flux's scanner and matcher leave it alone. - Gaps are what an item lacks:
identity(nobody confirmed what it is),year,overview,poster,backdrop,episode_titles,offline.flux gapscounts them;flux find --gap posterlists them. - Withheld: TMDB's terms forbid using its content with AI, so flux never shows you TMDB's text or images.
item.getlists such fields underwithheld({"overview": "tmdb"}): they have a value you can't see. Don't try to get it another way; write your own from the open web if the user wants it replaced. Text flux read from.nfofiles is withheld the same way ("nfo"): scrapers usually copy it from TMDB. - Files:
item.getlists an item's files, each with itsid, itspathinside its library folder (root), what flux read from the name (parsed), the metadata files beside it (sidecars) and itsfixif it has one. A fix (flux fix) says what a file is when its name is wrong; a plan (flux plan) renames and moves files once the user applies it (flux-organize). - Collections: titles picked by hand or taken by a rule, shown in the app beside the libraries (flux-organize).
- Changesets: each
flux edit(one or many items) is one changeset with your summary. The user reviews them in the app;flux changes undo IDreverts one field by field, keeping fields changed since.
Commands
flux status # the server, its libraries, your role, the rules
flux gaps # what's missing, per library
flux find --gap identity --limit 20
flux find -q "ghibli" # text in titles and file paths
flux find --parent 42 --kind episode --gap episode_titles
flux get 42 # one item: fields, sources, files' evidence, art, children
flux edit 42 title="Spirited Away" year=2001 directors="Hayao Miyazaki" \
--source https://en.wikipedia.org/wiki/Spirited_Away --summary "Identified from the Japanese file name"
flux edit 42 --clear tags # hand a field back to flux
flux edit --file edits.json # many items at once (an items.edit input)
flux art view 1234 -o poster.jpg # look at an image
flux art add 42 poster https://example.org/p.jpg --credit "Studio Ghibli" --from https://example.org/press
flux changes # newest first; flux changes show 17; flux changes undo 17
flux lens check board.json && flux lens add board.json
flux collections put Ghibli --pick 40 --pick 41 # see flux-organize
flux fix 812 season=2 episodes=5 # what a file is
flux plan 40 --summary "Name its files the standard way" # a proposal; nothing moves until applied
flux ops # every operation and its schemas
flux call items.find '{"gap": "year", "limit": 5}'Values: text as is; lists comma-separated (genres="Animation, Fantasy"); JSON with := (cast:='[{"name": "Rumi Hiiragi", "role": "Chihiro"}]'); ids as ids.tmdb=129, ids.wikidata=Q155653.
Rules
- Cite. Every value you set needs the pages that support it (
--source). Write descriptions in your own words; never paste a provider's text. - Start from the files.
flux getshows each file's path, size, modified time, duration, tracks and their languages, the title stored inside the file, chapter names, subtitle files and what flux read from the name. They usually say what a file is; a duration within a few minutes of a film's runtime is strong evidence. - Don't overrule people. A field a person set (
sources.<field>.source = "user") is refused unless you pass--force, which you do only when they asked for that change. - Small, clear changesets. One topic per changeset (for example "Years for 12 films"), a summary a person understands, at most 100 items. Use
--dry-runto see what would change. - Propose when unsure (
--propose): the user applies or rejects it in the app. - Honest images. Credit what you add; make an image with AI only when the user asks, and name the model (see flux-artwork).
- Files move only by plan. Never rename, move or delete media yourself;
flux planproposes renames and moves, the user approves, flux carries them out (and can put them back). flux never deletes media. - Private libraries stay private. Home videos are personal: describe them only as much as the user asks, and never send their details to a web service without asking.
When something fails
Errors are JSON with a code: invalid (fix the input, the message says how), not_found, forbidden (your role: see flux status), conflict, unavailable (try later), too_large. Exit codes: 1 error, 2 usage, 3 not found, 4 conflict, 5 forbidden, 6 server unreachable.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

