Communitygithub.com

vos-remix

将 vos.so 画廊程序复制并改造为你自己的版本:本地获取其配置、编辑声明的旋钮或代码,通过 vos check 验证,并以带有版本迭代谱系的私有副本推回。遵循 params/Looks 规范与 GLB 3D 展示配方。

vos-remix 是什么?

vos-remix 是一个 AI 智能体技能,专门用于从 vos.so 画廊翻录(复制)一个程序,并将其改造为属于你自己的私有版本。该技能强调了可追溯的谱系(lineage)管理,确保每次修改都形成版本迭代。它支持通过 CLI 工具(npm 包 @vosjs/cli)或纯 HTTP 接口操作。核心工作流程包括:使用 `vos fetch` 获取源程序、编辑 JSON 配置文件中的 JavaScript 代码字符串或旋钮参数、通过 `vos check` 和 `vos still` 进行本地验证、使用 `vos push` 推送私有副本,并通过 `vos pull` 同步用户后续的调整。技能还详细说明了三种凭证方式(临时授权、持久密钥、可认领推送),并强调了私有性和配额限制。适用于任何需要自定义、个性化画廊动画、替换 3D 模型或在已获取程序上进行版本迭代的场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vosjs/skills/tree/main/skills/vos-remix

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

翻录一个 vos 程序

vos.so/gallery 上的每个视频都是一个程序: 输入 + 一个确定性函数 → 视频。翻录就是编辑该程序的 JSON 配置,并将结果作为一个私有的 vos 推送到用户的帐户上, 并带有谱系。你在本地编辑;平台负责验证、 编译和渲染预览。

设置

npm i -D @vosjs/cli   # fetch/check/push/pull 循环

此循环无需浏览器(渲染预览发生在平台上)。 如果 CLI 不可用,一切也可以通过纯 HTTP 完成: references/remix-contract.md 记录了每个端点。

凭证(切勿打印)

两种形式,均用作 Authorization: Bearer:

  1. 翻录授权 (vos_rg_…) — 如果用户的提示中包含此授权,请使用它。 有效期 24 小时,绑定到一个源 vos,最多推送 5 次。
  2. 持久密钥 (vos_sk_…) — 在询问用户之前的解析顺序: VOS_API_KEY 环境变量,然后是 ~/.config/vos/credentials 的第一行。 人类可在 https://vos.so/app/api 创建密钥。
  3. 没有任何凭证 — 可认领推送(仅限程序):
    vos push my-remix.json --claimable --title "My remix"
    # → claim: https://vos.so/claim/…   expires: <72h from now>
    
    # 没有 CLI,或 CLI 版本较旧?通过纯 HTTP 实现相同操作:
    curl -s -X POST https://vos.so/api/claim \
      -H 'content-type: application/json' \
      -d '{"title": "My remix", "config": <the VosConfigJson>}'
    # → { "claimUrl": "https://vos.so/claim/…", "expiresAt": "…" }
    
    将 claimUrl 交给用户且仅交给用户——它是唯一的引用 和唯一的凭证。链接有效期 72 小时;未认领的作品在此之后 将被删除(有意清理,并非数据丢失——如果链接过期,重新推送即可)。 认领操作会将 vos 移入用户的库并启动其托管预览; 认领后的迭代将使用用户的密钥(详见下方循环)。 限制:配置 ≤200KB,每个网络每天 5 次推送。

CLI 会自动解析授权和密钥(export VOS_API_KEY=…)。 任何凭证形式都无法发布:推送的 vos 保持私有,直到人类在 vos.so 上手动发布。

工作循环

  1. 获取 源程序(公开程序无需认证):

    vos fetch https://vos.so/vos/<id>        # 或仅使用 id
    # → <slug>/config.json (参数已保留) + <slug>/vos.json (追踪数据)
    
  2. 编辑 本地的 config.json。函数字段(setup、 createContent、createTimeline、onFrame)是字符串形式的 JavaScript — 没有 TypeScript 语法,没有 ${} 模板插值。 果断更改 1–2 个主要方面(调色板、运动语法、密度)——绝不要 做一个只有 10% 微调的复制品。如果程序声明了 params, 优先调整或扩展这些旋钮,而不是修改函数字符串。

  3. 声明旋钮和外观 — 翻录的控制面。2–4 个 意图命名的参数加上 2–3 个预设。这是一种有规则的手艺: 参见 references/params-knobs.md。

  4. 推送前本地检查:

    vos check <slug>/config.json     # 迁移 → 校验架构 → 语法 → 编译 → 代码检查
    vos still <slug>/config.json probe.webp --time 2   # 运行它——检查编译是否通过
                                     # 但绝不执行模块;仅靠检查无法捕获
                                     # 运行时抛出(函数自身的声明中的暂时性死区)
                                     # 每次代码编辑后,每次推送前,渲染一个静态图。
    

    修复所有错误;认真对待确定性问题(一个每次运行 渲染结果不同的配置本身就有问题)。

  5. 推送 为带有谱系的私有 vos(CLI 会读取 config 旁边的 vos.json 以获取 remixOfId 归属):

    vos push <slug>/config.json --title "Aurora Ribbons — dusk"
    # → Created private vos <id>
    #   watch:  https://vos.so/vos/<id>
    #   studio: https://vos.so/studio?vos=<id>
    
  6. 迭代 — 进一步的编辑将成为同一个 vos 的版本:

    vos push <slug>/config.json --vos <id> --note "cooler palette, slower drift"
    

    目录通过 vos.json 追踪其 vos,因此基础版本是自动携带的: 如果人类自你上次推送后在工作室中进行过编辑,则此推送会被拒绝, 并附带人类输入的变更日志。--note 是你的交接说明行—— 它是人类最先阅读的内容;--label 为版本命名。

  7. 每轮编辑前先拉取 — 人类可能进行过微调:

    vos pull <slug>          # 显示自你的基础版本以来发生了什么变化,然后同步
    

    打印每个版本的归属(v3 (studio · warmer): knob hue 0.2→0.35 以及人类的注释),将 config.json 同步到最新版本(你之前的副本会 保存为 config.backup.json),并重新指向基础版本。人类编辑过的 节点受到保护:触及这些节点的推送会被拒绝,除非你传递 --override <id>——仅在用户的指令明确针对该节点时才这样做。 他们对你旋钮的调整是偏好数据:在决定下一步做什么之前, 先阅读变更日志。

  8. 交回两个链接 — 观看页面(预览、旋钮、代码)和 工作室(https://vos.so/studio?vos=<id>),用户可以在其中 实时微调你的旋钮。发布是他们的操作,在 vos.so 上完成。

确保推送诚实可靠的规则

  • 私有是契约。 切勿尝试 visibility: "public"——它会强制转为私有, 并且通过密钥发布会被设计性地拒绝。
  • 注意配额:持久密钥每 24 小时创建 ≤50 个 vos;授权最多推送 ≤5 次。 在一个 vos 上迭代版本,而不是创建许多个 vos。
  • 服务器渲染约束(预览集群使用软件 GL): 在透射材质上禁止使用 THREE.DoubleSide,禁止使用 dispersion, 并且每个获取的资源必须是集群可访问的绝对 https URL。
  • 每个旋钮必须起作用。 代码从未读取的参数比没有参数更糟—— 参见 references/params-knobs.md 的诚实性部分。
  • 3D 模型替换(将 GLB 放入展示程序):references/3d-recipe.md。
  • 完整端点参考、配额和错误表: references/remix-contract.md。

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

launch-kit

Ship the media with the release — one take of the real product becomes YouTube demo, Chrome Web Store screenshots/tiles, Product Hunt gallery, social cuts, and OG cards; verified kit.json manifest.

vos-authoring

Author a vos animation program (VosConfigJson) from scratch or debug one — declarative configs compiling into deterministic Three.js + GSAP-dialect animations on the MIT vos engine (@vosjs/core), validated locally with compileVosConfig. Covers the schema, dialect rules, 2D overlay elements, shaders, and params/presets knobs. Use when asked to write a vos animation program, create a VosConfigJson, make a programmatic motion graphic or logo animation, or fix a config that fails to compile or lint.

vos-create

Create vos programs in the user

vosjs/product-video

Record and produce the demo video of a website, app, or feature with the vos CLI — the agent scripts the click path (actions.json), the recording auto-plans zooms, and every editing decision is data in doc.json, so fixes are edits and re-renders, never re-recordings. Renders are deterministic; export is free up to 4K with no watermark. Use when asked to make a product video, demo video, screen recording of a URL or feature, or a marketing clip, including a product behind a login (the session ladder: mint one from the project's own test auth before asking anyone), or when a feature was verified in agent-browser and that walk should become a take. A whole release's asset set (store listing, Product Hunt gallery, social cuts) is the launch-kit skill, which records through this one.

vosjs/vos-cut

Cut a screen recording (a vosso take) into the product video it was recorded for, from its evidence, with the vos CLI — read the take's digest (the moments the cursor track says mattered, each with a footage frame and a crop), narrate beats, edit doc.json by exception over the planners, verify with stills, and push an attributed version the human fine-tunes at vos.so; every edit is a data patch, so a re-cut never re-records. Use when asked to edit or cut a recording, make a product video or what's-new clip from a take, cut it like the last one, or cut a series of recordings in one style.

vosjs/vos-footage

Hand a Remotion, HyperFrames, or any video composition a clean captured clip of the real product — recorded and auto-zoomed with the vos CLI, delivered as full-bleed footage with no chrome, and always backed by an editable take on the maker's shelf, which the handoff says. Use when a composition needs real product footage, app or site b-roll, "capture our app for the video", or a screen-recorded segment to drop into another tool's timeline.

vosjs/vos-migrate

Turn an existing Loom, Screen Studio, Cap, or plain mp4/webm screen demo into an editable vosso take — re-encode the file, synthesize the take's metadata, plan, and push, so the old demo becomes a living document you re-cut instead of a file you re-record. Use when asked to "convert this Loom", "migrate our old demos", "re-edit this mp4", "make our Screen Studio recording editable", or to bring any already-recorded demo into vosso.

相关技能