Agents

Push and pull

Host agent work as a private vos, and sync human studio edits back down.

vos push hosts your work on vos.so as a private vos with version history; vos pull brings the human's studio edits back down as a typed changelog plus a fresh document. Together they are the iteration loop: agent and human editing the same video, taking turns, with the history as the conversation.

Push

Shell
vos push take --yes --label "tighter intro zoom" --note "asked for a snappier open"
vos push bright-loop/config.json --vos <id> --label "warmer palette"

push is polymorphic by a deterministic sniff, never a flag: a take directory (a doc.json carrying source) pushes recording and document through the take pipeline; a config.json pushes the program, with a program document beside it (a doc.json carrying program: layers, tween edits, its own length) riding along when there is one. Both paths share the same rules:

  • The vos is created private. Keys never publish.
  • The recording uploads once, content-addressed; re-pushes reuse it.
  • The first push of a take asks before uploading (--yes for headless). Agents never upload unprompted.
  • Every push carries --label (what changed, one imperative line) and --note (why: the user's ask, one sentence). --note is what the human reads first.
  • The push records against a tracked base version (vos.json beside your artifact). A stale base is rejected with the changes you missed; see Versions and conflicts.

Pull

Shell
vos pull take

Pull prints what changed on vos.so since your last push, one version at a time: who made it, its label and note, and a semantic summary of the edits ("zoom z3: level 2.2 to 1.8"). It also lists the nodes those human edits protected, syncs the head document back into your directory (a backup of yours is kept), and repoints your tracked base.

Always pull before editing a pushed work. The changelog is the human's half of the conversation; editing without reading it is how their work gets overwritten.

The handoff surfaces

The human opens the same work at vos.so/studio?vos={id}; their saves join the same version chain your pushes do. For local work that is not hosted yet, vos open take serves the take straight into the studio with your document intact.