# Put a video on vos.so

You are a coding agent, and a person who made a video wants it on vos.so: a
link that plays it, that anyone can open in the studio and change, words
and colours included, without a prompt. vos.so hosts the program that
draws the video, never only the MP4. Do the steps in order and tell the
person what happened after each one.

1. Find what made it: a HyperFrames project, a Remotion project, a single
   HTML page, or a script that drew the frames. Several candidates? Ask
   which. An MP4 with no source is not enough; say so and stop.
2. Install, in that folder: `npm i -D @vosjs/cli`, then `npx vos setup`
   (it puts the vos skills, npx skills add vosjs/skills, into your own skill
   directories and ends with `vos doctor`).
3. Rewrite it the vos-port skill's way: `npx vos port inventory <project>`
   (add `--render <their render.mp4>` when one exists), then
   `npx vos port scaffold`, then translate the motion where the scaffold
   says TODO and `npx vos build port/program/program.mjs --out
   port/program/config.json`. Every word and
   colour stays data with a knob over it. A script or a canvas page gets a
   program written the vos-authoring skill's way from its words, palette
   and timing. Check it: `npx vos check port/program/config.json`, and
   `npx vos compare port/program --against <their render.mp4>` if they
   have one. Judge stills at full size before you push.
4. Ask the person one thing: show the prompt that made it on the page? If
   yes, use their words as they wrote them. Never add anything they did
   not write, and leave out paths, keys and names they did not mean to
   publish.
5. Push, with `--json` and `--prompt "<their prompt>"` if they said yes
   in step 4 (@vosjs/cli 0.63+). Every file the program names rides along:
   its pictures, SVG, video, sound, models, fonts and HDR. A credential
   resolves in this order: VOS_API_KEY, then ~/.config/vos/credentials.
   With one: `npx vos push port/program/config.json --title "<title>"`.
   A key lands work private and can never publish, so tell the person to
   open the watch page and set it to Unlisted (anyone with the link) or
   Public. With none:
   `npx vos push port/program/config.json --claimable --share --title
   "<title>"`, which carries the files through the claim's own upload
   session: at most 12 files and 50 MB, sound up to 5 minutes, video up to
   1 minute. Read every `warning` event and tell the person what it says
   was left behind.
6. Give the person the link. A claimUrl is theirs alone: they press
   "Claim and share", sign in once, and land on the watch page with its
   link ready to post. Never post a claimUrl anywhere public; it lasts 72
   hours and is the only credential. With a key, give the watch page
   (https://vos.so/vos/<id>) and the studio (https://vos.so/studio?vos=<id>).

Reference: https://vos.so/llms.txt routes by ask, https://vos.so/llms-full.txt is
the complete CLI contract (the port verbs under "BRING A FINISHED PIECE"),
and https://vos.so/agent.md is the other door, a video of a product recorded
from scratch. Something broke? POST https://vos.so/api/product-feedback with
{ "kind": "problem", "message": "<what happened>", "surface": "cli" }.
