Communitygithub.com

vos-remix

Reutiliza un programa de la galería vos.so para crear tu propia versión: obtén su configuración, edita los parámetros o el código localmente, valida con vos check y envía una copia privada con historial de versiones. Sigue la doctrina de parámetros/Looks y la receta de exhibición 3D GLB. Úsalo cuando te pidan reutilizar, personalizar o adaptar una animación de la galería, intercambiar un modelo 3D en una exhibición, o iterar un programa obtenido como versiones.

¿Qué es vos-remix?

El skill vos-remix permite a un agente de IA tomar cualquier programa (animación) de la galería pública de vos.so y crear una versión propia privada. El flujo de trabajo consiste en obtener el programa original, editar su configuración JSON localmente (modificando parámetros, colores, movimiento o incluso el código JavaScript), validar la configuración con el comando `vos check`, y luego enviarla como un nuevo vos privado en la cuenta del usuario, manteniendo un registro de linaje. Es útil para tareas como personalizar animaciones, cambiar modelos 3D en exhibiciones, o iterar sobre una animación existente creando nuevas versiones sin afectar el original. Soporta tanto el uso mediante CLI (`@vosjs/cli`) como mediante HTTP directo, y maneja diferentes tipos de credenciales (grants temporales, claves duraderas y enlaces reclamables) para garantizar la seguridad y la privacidad. El skill enfatiza la edición cuidadosa de parámetros (2-4 params y 2-3 presets), la validación rigurosa antes de cada envío, y la iteración responsable creando versiones en lugar de múltiples voses nuevos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vosjs/skills/tree/main/skills/vos-remix

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Reutilizar un programa de vos

Cada video en vos.so/gallery es un programa: entradas + una función determinista → video. Reutilizar (remix) es editar la configuración JSON de ese programa y enviar el resultado de vuelta como un vos privado en la cuenta del usuario, con linaje. Editas localmente; la plataforma valida, compila y genera una vista previa.

Configuración

npm i -D @vosjs/cli   # el ciclo fetch/check/push/pull

No se necesita navegador para este ciclo (la generación de vistas previas ocure en la plataforma). Todo funciona también como HTTP plano si la CLI no está disponible: references/remix-contract.md documenta cada endpoint.

Credenciales (nunca imprimirlas)

Dos formatos, ambos usados como Authorization: Bearer:

  1. Grant de remix (vos_rg_…) — si el prompt del usuario contiene uno, úsalo. Duración 24 h, vinculado a UN programa fuente, máximo 5 envíos (pushes).
  2. Clave duradera (vos_sk_…) — orden de resolución antes de preguntar: la variable de entorno VOS_API_KEY, luego la primera línea de ~/.config/vos/credentials. Los humanos crean claves en https://vos.so/app/api.
  3. Sin credencial alguna — el envío reclamable (solo programas):
    vos push my-remix.json --claimable --title "Mi remix"
    # → claim: https://vos.so/claim/…   expires: <72h desde ahora>
    
    # ¿Sin CLI o con una antigua? Lo mismo mediante HTTP plano:
    curl -s -X POST https://vos.so/api/claim \
      -H 'content-type: application/json' \
      -d '{"title": "Mi remix", "config": <el VosConfigJson>}'
    # → { "claimUrl": "https://vos.so/claim/…", "expiresAt": "…" }
    
    Entrega claimUrl al usuario y a nadie más: es la única referencia y la única credencial. El enlace dura 72 horas; el trabajo no reclamado se elimina después de ese tiempo (limpieza deliberada, no pérdida de datos: vuelve a enviar si caduca). Reclamar mueve el vos a la biblioteca del usuario e inicia su vista previa alojada; la iteración posterior a la reclamación utiliza su clave (el ciclo de abajo). Límites: configuración ≤200KB, 5 envíos por día por red.

La CLI resuelve grants y claves automáticamente (export VOS_API_KEY=…). Ningún formato puede publicar: los voses enviados permanecen privados hasta que un humano publique en vos.so.

El ciclo

  1. Obtener el programa fuente (los programas públicos no necesitan autenticación):

    vos fetch https://vos.so/vos/<id>        # o el id solo
    # → <slug>/config.json (parámetros preservados) + <slug>/vos.json (seguimiento)
    
  2. Editar config.json localmente. Los campos de función (setup, createContent, createTimeline, onFrame) son JavaScript como cadenas de texto — sin sintaxis TypeScript, sin interpolación ${}. Cambia 1–2 ejes de forma decisiva (paleta, gramática de movimiento, densidad) — nunca un duplicado de un ajuste del 10%. Si el programa declara params, prefiere reajustar o extender esos parámetros antes que modificar las cadenas de función.

  3. Declarar parámetros y Looks — la superficie de control del remix. 2–4 parámetros con nombres que reflejen su intención más 2–3 preajustes. Esto es un arte con reglas: references/params-knobs.md.

  4. Validar localmente antes de enviar:

    vos check <slug>/config.json     # migrar → esquema → sintaxis → compilar → lints
    vos still <slug>/config.json probe.webp --time 2   # EJECUTARLO — check compila
                                     # pero nunca ejecuta el módulo; un error
                                     # en tiempo de ejecución (un TDZ contra las declaraciones
                                     # de la propia función) se envía de forma invisible solo con
                                     # check. Renderiza un still después de cada edición
                                     # de código, antes de cada envío.
    

    Corrige cada error; trata las advertencias de determinismo con seriedad (una configuración que se renderiza diferente en cada ejecución está rota por definición).

  5. Enviar como un vos privado con linaje (la CLI lee vos.json junto a la configuración para el crédito remixOfId):

    vos push <slug>/config.json --title "Cintas de aurora — atardecer"
    # → Creado vos privado <id>
    #   ver:  https://vos.so/vos/<id>
    #   estudio: https://vos.so/studio?vos=<id>
    
  6. Iterar — las ediciones posteriores se convierten en versiones del mismo vos:

    vos push <slug>/config.json --vos <id> --note "paleta más fría, deriva más lenta"
    

    El directorio HACE SEGUIMIENTO de su vos mediante vos.json, por lo que la versión base se transporta automáticamente: si el humano editó en el estudio desde tu último envío, el envío es RECHAZADO con su registro de cambios escrito. --note es tu línea de entrega: es lo primero que lee el humano; --label nombra la versión.

  7. Obtener (pull) antes de cada ronda de edición — el humano puede haber ajustado:

    vos pull <slug>          # qué cambió desde tu base, luego sincronizar
    

    Imprime cada versión atribuida (v3 (studio · warmer): knob hue 0.2→0.35 más sus notas), sincroniza config.json a la cabeza (tu copia anterior se conserva como config.backup.json), y reasigna la base. Los nodos editados por humanos están protegidos: un envío que los toque es rechazado a menos que pases --override <id> — haz eso SOLO cuando la instrucción del usuario apunte explícitamente a ese nodo. Sus ajustes de tus parámetros son datos de preferencia: lee el registro de cambios antes de decidir qué hacer a continuación.

  8. Entregar AMBOS enlaces — la página de visualización (vista previa, parámetros, código) y el estudio (https://vos.so/studio?vos=<id>) donde el usuario ajusta tus parámetros en vivo. Publicar es su acción, en vos.so.

Reglas que mantienen los envíos honestos

  • Privado es el contrato. Nunca intentes visibility: "public" — se fuerza a privado, y publicar mediante clave está rechazado por diseño.
  • Consciente de cuotas: las claves duraderas crean ≤50 voses/24h; los grants envían ≤5. Itera versiones en un mismo vos en lugar de crear muchos voses.
  • Restricciones de renderizado del servidor (la flota de vistas previas usa GL por software): no usar THREE.DoubleSide en materiales de transmisión, no usar dispersion, y cada recurso obtenido debe ser una URL https absoluta que la flota pueda alcanzar.
  • Cada parámetro debe actuar. Un parámetro que el código nunca lee es peor que no tener parámetro — consulta la sección de honestidad en references/params-knobs.md.
  • Intercambio de modelos 3D (GLB en un programa de exhibición): references/3d-recipe.md.
  • Referencia completa de endpoints, cuotas y tabla de errores: 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.

Skills relacionados