HyperFrames Video Entry Point
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
Crea un video 16:9 con tu avatar HeyGen (tu cara + tu voz) presentando contenido, con montaje dinamico que alterna entre avatar a pantalla completa, avatar en esquina sobre un fondo, y solo fondo…
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Upload-Post/avatar-mix avatar-mix --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/avatar-mix .claude/skills/avatar-mix && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .claude/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mixType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Upload-Post/avatar-mix avatar-mix --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/avatar-mix .agents/skills/avatar-mix && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .agents/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Upload-Post/avatar-mix avatar-mix --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/avatar-mix .cursor/skills/avatar-mix && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .cursor/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Upload-Post/avatar-mix.git --path .claude/skills/avatar-mix--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Upload-Post/avatar-mix avatar-mix --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/avatar-mix .gemini/skills/avatar-mix && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .gemini/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Upload-Post/avatar-mix avatar-mixInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/avatar-mix .github/skills/avatar-mix && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .github/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Upload-Post/avatar-mix --skill avatar-mix -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Upload-Post/avatar-mix avatar-mix --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Upload-Post/avatar-mix.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/avatar-mix .opencode/skills/avatar-mix && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "avatar-mix" agent skill from https://github.com/Upload-Post/avatar-mix/tree/main/.claude/skills/avatar-mix into .opencode/skills/avatar-mix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "avatar-mix", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
avatar-mixCrea un video 16:9 con tu avatar HeyGen (tu cara + tu voz) presentando contenido, con montaje dinamico que alterna entre avatar a pantalla completa, avatar en esquina sobre un fondo, y solo fondo…
Avatar Mix is an agent skill from Upload-Post/avatar-mix. Crea un video 16:9 con tu avatar HeyGen (tu cara + tu voz) presentando contenido, con montaje dinamico que alterna entre avatar a pantalla completa, avatar en esquina sobre un fondo, y solo fondo, con transiciones, musica y SFX. Acepta una URL o un guion. Usa cuando el usuario quiera generar un video de avatar a partir de una web o un guion.
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Media & Creative, covering Motion graphics and AI video generation. It works with HeyGen, Model Context Protocol and FFmpeg. The repository describes itself as: Generate 16:9 & 9:16 videos with your HeyGen avatar, animated backgrounds (HyperFrames), music, SFX and Hormozi captions — then publish them to every social network. Reusable… The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 01f91ad. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3bashnpxffmpegnodeffprobecurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
mcp.heygen.comapi.upload-post.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
UPLOAD_POST_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Avatar Mix loads about 4.9k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 2,432 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
`X-Api-Key` del `.env`) hasta `completed`; coger `video_url`.`UPLOAD_POST_API_KEY` (.env) y su propio perfil.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Upload-Post/avatar-mix at commit 01f91ad, republished under its MIT licence (© Upload-Post). 2,432 words, ~4,939 tokens.
.claude/skills/avatar-mix/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Pipeline para producir un video 16:9 (1920x1080) donde el avatar HeyGen del usuario presenta contenido sobre fondos generados, con un montaje que va alternando 3 modos.
https://mcp.heygen.com/mcp/v1/, OAuth) → avatar hablando + audio/SFX.npx hyperframes) o tarjetas PIL → video de fondo.scripts/composite.py) → montaje, chroma-key, transiciones, mezcla de audio.config/avatar.example.json a config/avatar.json y rellena avatar_id + voice_id
(descúbrelos con list_avatar_looks / list_voices del MCP; get_current_user para la cuenta).config/avatar.json está en .gitignore (es personal). Engine por defecto: Avatar V.config/avatar.json → multicam.looks: varios looks del MISMO avatar y fondo con encuadres
distintos (plano medio / primer plano, en horizontal y vertical). Intercalarlos por escena =
multicámara real (mucho mejor que cualquier zoom fake). Cada look lleva aspect y framing.
Plan de cámaras (obligatorio al escribir el guion): asignar a cada escena un look del set:
fullscreen en proyectos 16:9 o doble formato → SOLO looks 16:9, alternando wide/close
entre escenas fullscreen consecutivas (los verticales recortarían fatal a pantalla completa en 16:9).side y corner → cualquier look (el recuadro recorta); los verticales encajan de lujo aquí
y así se intercalan también en videos horizontales. En corner favorece un close.fullscreen (encuadre nativo, más real).side, cuántos enter…). Nunca repetir el plan del video anterior.fullscreen → avatar a pantalla completa (arranque siempre en este modo).corner → fondo a pantalla completa + avatar en recuadro PiP (webcam). NO se borra el fondo
(borde + esquinas redondeadas). En 16:9 va abajo-derecha (corner en config, ~28%).
En 9:16 va centrado abajo y más grande (corner_9x16 en config: ~58%, position: bottom-center).side → split-screen: fondo full + avatar en panel lateral a toda altura (~42%, side en
config, derecha por defecto). El bg_visual de estas escenas debe componer su contenido en la
mitad IZQUIERDA (el panel tapa la derecha). En 9:16 cae automáticamente a corner.bg_only → solo el fondo; la voz del avatar sigue como locucion.enter: "slide" (opcional, en corner/side): el avatar entra deslizándose desde su borde
(0.6s ease-out). Usar 1–2 veces por video, idealmente tras una escena fullscreen y con
transition: "cut" en la escena anterior (con fade el avatar se ve doblado durante el cruce).config/avatar.json: rellenar avatar_id y voice_id. Obtenerlos con las tools MCP
list_avatar_looks y list_voices (o get_current_user).ffmpeg -version, node -v (>=22), MCP conectado (get_current_user).WebFetch para extraer el contenido. Si es guion, usarlo tal cual.create_video_from_avatar acepta audio en vez de script.
Se puede generar la locución fuera (TTS más expresivo, o el usuario grabándose) y HeyGen solo
hace el lipsync — respiraciones y énfasis reales. Ofrecerlo cuando el video sea importante.work/<slug>/script.json
(ver templates/script.example.json). Reglas:fullscreen.corner / side / bg_only / fullscreen segun el ritmo del contenido, siguiendo
el plan de cámaras (ver sección multicámara): patrón distinto en cada video.id, mode, narration, look (id del look del set multicam), enter
(opcional: "slide" en corner/side), bg_visual (headline, subline/bullets, style),
transition (fade|slide|cut), transition_after_sec.style de bg_visual: title_card | bullets | fullbleed | screenshot (con image).Para cada escena, igual en todos los modos (no se toca el fondo del avatar):
mcp__heygen__create_video_from_avatar con avatarId = el look de la escena (plan de
cámaras; fallback: avatar_id de config), voiceId, script = narration,
aspectRatio = el aspect del look (16:9 para looks horizontales, 9:16 para verticales),
resolution: "1080p" (usar 720p en pruebas), y SIEMPRE
engine: {"type": "avatar_v"} (mejor calidad; ver config). Devuelve video_id y status: waiting.motionPrompt (photo_avatar + Avatar V lo admite; NO usar expressiveness, que es
solo Avatar IV y lo rechaza con avatar_v). Variar el motionPrompt POR ESCENA según su función,
no usar el mismo en todo el video (rompe la sensación de "misma persona en bucle"). Guía:"High energy, leans slightly toward the camera; expressive eyebrows; quick confident hand gestures; direct eye contact, as if hooking the viewer in the first seconds.""Calm, measured delivery; occasional thoughtful pauses; subtle nods; natural hand gestures that emphasize key points; gestures a bit more when mentioning numbers or results.""Direct and confident; a small warm smile; slower deliberate gestures; steady eye contact with the camera, as if closing a deal."
Coste extra: 0 (solo un parámetro). Afinar los textos al tono de cada video.mcp__heygen__get_video (o REST GET /v1/video_status.get?video_id=... con
X-Api-Key del .env) hasta completed; coger video_url.work/<slug>/clips/avatar_<id>.mp4 (curl).bg_only el clip se genera igual; en el montaje solo se usa su audio.ffprobe -v error -show_entries format=duration -of default=nk=1:nw=1 clip.duration (segundos) en cada escena de script.json. Obligatorio antes del paso 4.work/<slug>/<bgdir>/<id>.mp4)REGLA DE ORO (directriz del usuario): los fondos deben ser gráficos animados PROPIOS,
explicativos y visuales, NO capturas de la web casi nunca. Generar nosotros con HyperFrames
mock-ups y data-viz que EXPLIQUEN el producto. Usar hyperframes capture <url> solo de forma
puntual (1 escena como mucho) cuando una prueba real aporte; no como recurso por defecto.
Componentes custom que funcionan muy bien (autorízalos en work/<slug>/hf/index.html):
.badge en work/launch2/hf/index.html.Modo rápido sin gráficos ricos: --mode card (tarjetas PIL responsivas).
Capturas reales de navegador como fondo (validado en claude-aikount, 2026-07-10): para
tutoriales, grabar el flujo real con las tools de claude-in-chrome (gif_creator, sin watermark
ni labels) → GIF→MP4 (ffmpeg -vf fps=30) en work/<slug>/captures/. El index.html dibuja solo
la .capzone (marco vacío) y python3 scripts/overlay_captures.py --slug <slug> --aspect ...
incrusta cada captura en su zona tras make_bg (lee bg_visual.capture + zone_16x9/zone_9x16
del script.json; congela el último frame con tpad; entra en t=1.2s). OJO: revisar que en las
capturas no salgan tokens/API keys (revocar antes de publicar) ni contenido no deseado (recortar
con -t si hace falta).
Registro siempre al día: en cada render de HyperFrames el skill sincroniza las animaciones
nuevas del registro (scripts/sync_animations.py, lo llama make_bg.py una vez por proyecto vía
marcador .animations_synced). Así las animaciones que vaya publicando HeyGen (p. ej. las 9 de
código: code-typing, code-diff, code-highlight, code-morph, code-particle-assemble…)
aparecen disponibles en compositions/ sin tocar nada. Manual: python3 scripts/sync_animations.py --hf work/<slug>/hf (o --all para todo el registro; HF_NO_SYNC=1 lo desactiva). Úsalas vía
data-composition-src="compositions/<nombre>.html". Ideal para vídeos code/dev explainer
(avatar en corner + animación de código de fondo).
Animaciones al ritmo de la voz (directriz del usuario — validado en mejor-ia-contabilidad): los elementos NO se pintan del tirón con staggers fijos; cada tile/burbuja/fila/sello aparece cuando la narración dice exactamente eso. Flujo:
mcp__heygen__create_speech con la MISMA voz+speed+locale del
avatar y el texto exacto de narration → devuelve word_timestamps (start/end por palabra).t_real = t_tts × (dur_clip / dur_tts)
(el clip de avatar trae lead-in/tail; el escalado lineal es suficiente, ±0.5s es aceptable
y mejor que llegue un pelín antes que después).const T2=[7.0,9.66,...] por escena, comentando
la palabra-gatillo de cada uno).sfx_manifest.json con los MISMOS tiempos (pop al aparecer el elemento, chime en
los checks, achievement en el sello final, coins al hablar de dinero).
Nota: los timestamps del TTS starfish con la voz habitual clavan el pacing del clip Avatar V
(misma fuente); si cambian los clips (regeneración), re-medir duraciones y re-escalar.Flujo HyperFrames (v0.6.98, requiere Chrome — validado):
work/<slug>/hf/ (16:9, root 1920x1080) y
work/<slug>/hf_9x16/ (vertical, root 1080x1920). make_bg.py elige por --aspect.
Scaffold: npx hyperframes init hf (copiar package/hyperframes/meta.json al hf_9x16).index.html con los componentes custom: cada escena = elementos class="clip" +
data-start(acumulado)/data-duration(real)/data-track-index; timeline maestra paused en
window.__timelines["main"]; data-duration del root = total. Solo lógica determinista.python3 scripts/make_bg.py --slug <slug> --mode hyperframes --aspect 16:9|9:16
(renderiza el proyecto y trocea renders/ en <bgdir>/<id>.mp4).
Para máxima calidad se pueden instalar las skills oficiales (npx skills add heygen-com/hyperframes
→ /hyperframes-read-first).La gracia: elegir SFX que peguen con el contenido de CADA video, no siempre los mismos.
search_audio_sounds (type=music) con music_query → assets/music.*.assets/sfx/whoosh.mp3.type=sound_effects) y descargarlo a assets/sfx/. Ej.: "riser" en la intro,
"coins/cash register" al hablar de dinero/Stripe, "single chime/notification" cuando aparece un
chat, "achievement" al completar algo (factura conciliada, 303 listo).work/<slug>/sfx_manifest.json:
[{ "scene": <id>, "offset": <seg desde inicio de la escena>, "file": "assets/sfx/x.mp3", "gain_db": -12 }]
(tambien admite {"at": <seg en timeline final>}).tts/beats es voz/musica).python3 scripts/composite.py --slug <slug> --aspect 16:9|9:16 [--music ...] [--whoosh assets/sfx/whoosh.mp3] [--sfx-manifest work/<slug>/sfx_manifest.json]output/<slug>{_9x16}.mp4, con los 4 modos, transiciones (xfade/acrossfade),
musica con ducking (sidechaincompress) y SFX (con alimiter final).
La salida YA sale sin metadata (composite.py llama a strip_meta al final). Un solo archivo limpio.fullscreen: zoom lento continuo 1.00→1.05 (1.04 en 9:16) durante
toda la escena, la cámara nunca está quieta. SIN cortes de encuadre (directriz del
usuario: el corte "multicam" no gusta; el zoom sí). Desactivar: --no-punch.config/avatar.json →
"grade": {contrast, saturation, vignette_angle, grain, enabled}. Desactivar: --no-grade.--no-loudnorm.bash scripts/run.sh <slug> <musica> <card|hyperframes> both genera las dos versiones (ya limpias).Palabras grandes en MAYÚSCULAS, palabra activa resaltada en acento, animadas. Flujo:
work/<slug>/captions_src.json,
[{id, tts_dur, words:[{t,start,end}]}]):mcp__heygen__create_speech (voz starfish) → word_timestamps (gasta créditos API; escalar
t_real = t_tts × dur_clip/dur_tts).ffmpeg -ar 16000 -ac 1 + ~/Documents/whisper.cpp/build/bin/main -m models/ggml-small.bin -l es -ml 1 -sow -oj → timestamps exactos del audio real (f=1);
también sirve para los triggers de las animaciones. CORREGIR marcas mal transcritas
(Cloud/Clout→Claude, iCount→aikount) antes de quemar subs. El whisper de Anaconda (Python)
sigue roto (NumPy/Numba) — usar SIEMPRE el binario de whisper.cpp.python3 scripts/make_captions.py --slug <slug> --aspect 9:16 → genera work/<slug>/hf_captions/
(proyecto HyperFrames transparente; escala cada escena a la duración real del clip y evita solapes).python3 scripts/burn_captions.py --slug <slug> --aspect 9:16 → renderiza el MOV con alfa
(ProRes 4444), hace el overlay, deja la salida sin metadata y borra el MOV. Produce
output/<slug>_9x16_subs.mp4 (un solo archivo limpio).capY (~60% alto)
coloca los subs por encima del avatar (bottom-center).output/<slug>.mp4 y un resumen de escenas/duracion.output/ ya salen sin metadata (encoder/fecha/handler) — no hay doble versión.
scripts/strip_meta.sh queda disponible por si hay que limpiar un fichero externo.Sube los DOS formatos a todas las redes con scripts/publish.sh (API REST de Upload-Post via curl;
sube el MP4 local directamente, sin staging ni URL pública). Genérico: cada persona usa su
UPLOAD_POST_API_KEY (.env) y su propio perfil.
curl -H "Authorization: Apikey $KEY" https://api.upload-post.com/api/uploadposts/users.bash scripts/publish.sh output/<slug>_9x16_subs.mp4 <perfil> tiktok,instagram,youtube,threads "<titulo>" "<desc>" "#hashtags" REELSbash scripts/publish.sh output/<slug>.mp4 <perfil> youtube,linkedin,facebook,x "<titulo>" "<desc>"request_id) y hace poll a /uploadposts/status. Confirmar SIEMPRE antes.youtubeContainsSyntheticMedia: true (y en TikTok tiktokIsAigc: true). El avatar realista
con voz clonada lo exige la política de la plataforma; la nota es discreta y no declarar
expone el canal a strikes/retirada.Upload-Post (tools upload_video/get_status), pero al ser remoto NO lee
rutas locales (requiere open_upload_studio o URL publica) — por eso el script con la API es mejor aqui.Pasos 3-6 (cuando ya existen clips/avatar_<id>.mp4): bash scripts/run.sh <slug> [musica].
<slug>/)script.json (guion+duraciones), clips/avatar_<id>.mp4 (HeyGen Avatar V),hf/ (proyecto HyperFrames 16:9) y hf_9x16/ (proyecto HyperFrames vertical),hf/captured/ (solo si se usó hyperframes capture puntual),bg/ y bg_9x16/ (fondos troceados por escena), sfx_manifest.json.config/avatar.json: marca, corner (PiP 16:9) y corner_9x16 (PiP vertical: bottom-center, ~58%).make_bg --mode card no encuentra fuente TTF, instalar fuentes o usar --mode hyperframes.drawtext (sin libfreetype): las tarjetas PIL
se renderizan con Pillow. Los gráficos ricos van por HyperFrames (Chrome headless).© Upload-Post, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/avatar-mix of Upload-Post/avatar-mix.
Open the folder on GitHubat commit 01f91ad
Avatar Mix next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Avatar Mix this skillUpload-Post/avatar-mix | 131 | — | ~4.9k | Automated safety check: Notes | MIT | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 59k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Super Video MakerBomx/super-video-maker-skill | 308 | — | ~11k | Automated safety check: Notes | None | |
| KinocutKyaniteLabs/kinocut | 192 | — | ~5.7k | Automated safety check: Pass | Apache-2.0 | |
| Editoralecs5am/ralphy | 136 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Editorial Collage MotionPluviobyte/rnskill | 1.6k | — | ~1.2k | Automated safety check: Pass | Custom licence |
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
Bomx/super-video-maker-skill
End-to-end AI video production skill for agentic frameworks.
KyaniteLabs/kinocut
Use Kinocut for guarded video editing, source-backed planning, FFmpeg operations, media analysis, subtitles, audio workflows, Hyperframes or Revideo rendering, repurposing packages, and release…
alecs5am/ralphy
Composition and render craft — assembles scenario.json plus asset-manifest.json into a HyperFrames HTML composition and renders the mp4.
Pluviobyte/rnskill
将参考图或简要描述解码为可编辑的半色调纸张拼贴规范,默认使用 Codex 内置 imagegen 生成品牌一致的静帧和透明图层,再用本地 FFmpeg 或 HyperFrames 制作“从空背景逐件组装”的确定性动态视频。用户提到半色调拼贴、纸张拼贴、剪纸拼贴、编辑式拼贴、杂志拼贴、复古印刷拼贴、拼贴动效、拼贴动画、剪纸动画、纸片组装、逐层组装、从无到有、元素飞入拼装、定格拼贴、定格动画、Arc…
calesthio/OpenMontage
Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API.
Works with
Categories
Crea un video 16:9 con tu avatar HeyGen (tu cara + tu voz) presentando contenido, con montaje dinamico que alterna entre avatar a pantalla completa, avatar en esquina sobre un fondo, y solo fondo…. Avatar Mix is an agent skill from Upload-Post/avatar-mix. Crea un video 16:9 con tu avatar HeyGen (tu cara + tu voz) presentando contenido, con montaje dinamico que alterna entre avatar a pantalla completa, avatar en esquina sobre un fondo, y solo fondo, con transiciones, musica y SFX.
Avatar Mix fits situations like: tasks that involve Motion graphics; tasks that involve AI video generation.
Run `npx skills add Upload-Post/avatar-mix --skill avatar-mix -a claude-code`. Or copy the skill folder (.claude/skills/avatar-mix in Upload-Post/avatar-mix) into .claude/skills/avatar-mix in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Upload-Post/avatar-mix --skill avatar-mix -a codex`. Or copy the skill folder (.claude/skills/avatar-mix in Upload-Post/avatar-mix) into .agents/skills/avatar-mix in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Upload-Post/avatar-mix --skill avatar-mix -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/avatar-mix, .gemini/skills/avatar-mix, .github/skills/avatar-mix and .opencode/skills/avatar-mix in your project.
Going by SKILL.md and its folder, Avatar Mix needs the command-line tools its instructions call (python3, bash, npx, ffmpeg, node and ffprobe) and credentials named UPLOAD_POST_API_KEY. Our summary lists: Python 3; Node.js.
SKILL.md names 2 domains. In commands or code: mcp.heygen.com and api.upload-post.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Avatar Mix is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Avatar Mix: HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars), Super Video Maker (Bomx/super-video-maker-skill, 308 stars), Kinocut (KyaniteLabs/kinocut, 192 stars) and Editor (alecs5am/ralphy, 136 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Upload-Post (a GitHub organization) maintains it in Upload-Post/avatar-mix, which has 131 GitHub stars. The repository was last updated on July 15, 2026.
Source: Upload-Post/avatar-mix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.