Twenty HyperFrames by HeyGen skills synced from the official upstream (HTML video authoring, animation, keyframes, audio/music-to-video, CLI, registry, slideshow, talking-head recut, website/product/PR-to-video and more), plus a bundled-resource health check.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-hyperframes
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:STARDUSTLC666/dsh-hyperframes
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
dsh-hyperframes
DSH (DeepSeek Harness) video-creation skill plugin: installing it registers the twenty-one official HyperFrames by HeyGen skills into DSH (video from HTML: core workflow, animation, audio, captions, keyframes, creative templates, CLI, registry, website-to-video; synced with official v0.8.82).
Compatibility
Validation host: Harness 0.2.0-rc.1 built from official sources (commit 407e65c8) with Node 24.16.0 on 2026-09-28. All 23 plugin tests pass in an isolated environment; all 18 plugins mount together in one host registering 21 skills and 1 tools, with tool schemas and health-check contracts passing. No live ports or external services were exercised in this round.
Installation
dsh plugin --profile web add dsh-hyperframes
After restarting, say "turn this website into a HyperFrames video" to trigger it.
Uninstall
dsh plugin --profile web remove dsh-hyperframes
Then restart the web service. To clean up fully, also remove the plugin entry from your profile cordis.patch.yml if you overrode it.
Skills
| Skill | Purpose |
|---|---|
hyperframes |
Router: HTML video compositions (styles/palettes/captions/audio-reactive/transitions) |
hyperframes-core |
Core concepts and component model |
hyperframes-animation |
Animation: GSAP/Anime.js/Lottie/Three.js/WAAPI adapters |
hyperframes-audio |
Audio: voiceovers, audio-reactive visuals |
hyperframes-keyframes |
Keyframe animation |
hyperframes-creative |
Creative templates and styles |
hyperframes-cli |
npx hyperframes CLI (init/check/preview/render/timeline/publish/cloud/transcribe/tts/doctor, ...) |
hyperframes-registry |
hyperframes add registry block installation and wiring |
hyperframes-studio |
Studio timeline conventions: track layering, caption track, safe zones |
embedded-captions |
Embedded captions |
faceless-explainer |
Faceless explainer videos |
figma |
Figma asset integration |
general-video |
General video production |
media-use |
Media usage guidelines |
motion-graphics |
Motion graphics |
music-to-video |
Music-driven video |
pr-to-video |
PR-to-video |
product-launch-video |
Product launch videos |
remotion-to-hyperframes |
Remotion project migration |
slideshow |
Slideshow videos |
talking-head-recut |
Talking-head recuts |
Requirements
Node.js 22.19+ (22.x) / 24+ + FFmpeg (npx hyperframes).
Porting notes
Synced from the official heygen-com/hyperframes repository at v0.8.82 (2026-09-28): the complete packaged skills/ tree, 21 skills, copied as-is with no frontmatter changes. Since v0.8.20, hyperframes-studio (Studio timeline conventions) is new, the brief/storyboard/script docs moved from hyperframes-core to the hyperframes skill, media-use and music-to-video were substantially reworked (built-in motion primitives), and the embedded-captions scripts were upgraded upstream.
Multi-harness
Skills use the open Agent Skills (SKILL.md) format — not just DSH. Copy the directories under skills/ into another agent's skills directory:
| Agent | Skills directory |
|---|---|
| Claude Code | ~/.claude/skills/ |
| Cursor | .cursor/skills/ (or project-local skills/) |
| Gemini CLI | ~/.gemini/skills/ |
| OpenAI Codex | ~/.codex/skills/ |
Port once, use everywhere.
Health checks and reloads
hyperframes_health rereads every SKILL.md, verifies readable files, valid YAML frontmatter, names matching their directories, and nonempty descriptions/bodies, then queries the host's skills.get. The effective name, description, body and resource directory must match this plugin instance's loaded snapshot. Existing files alone do not prove successful or still-active registration.
Health checks do not mutate files or registrations. After changing a file or repairing one that failed initial loading, reload the plugin (or restart DSH). The result reports changed, not_registered or registration_failed until then. A previously loaded file that was temporarily missing becomes healthy again if its exact original content is restored and its registration remains active.
Each item retains name / ok / detail and adds code / fileOk / registered / registryChecked / reloadRequired. registered means the registry still matches the loaded version, so a changed file can have registered: true and ok: false. Missing or failed registry lookup produces registry_unavailable; a disposed plugin produces disposed. The public checkBundledSkills() is disk-only, while the original non-throwing parseSkillFile() helper remains available.
Development and shared implementation
src/index.ts declares only package identity, skill names and the resource directory. Parsing, validation, registration and health logic live in src/skill-bundle.ts. The canonical source is in dsh-hyperframes; Remotion carries an identical version-controlled copy. Each package builds and ships its own lib/skill-bundle.js, with no cross-package runtime dependency and no sibling checkout required for building or installation.
With dependencies already installed:
node node_modules/typescript/bin/tsc -p tsconfig.json
node --test "test/*.test.mjs"
When developing the sibling repositories together, edit the shared module and regression tests in HyperFrames, then synchronize:
# Run in dsh-hyperframes; updates only three shared files in sibling dsh-remotion
node scripts/sync-skill-bundle.mjs
node scripts/sync-skill-bundle.mjs --check
Both suites compare shared source and regression tests to prevent drift. A standalone checkout skips only that cross-repository comparison. Tests cover invalid YAML, unreadable files, empty bodies, rejected/inactive registrations, file changes and repairs, disposal races and cleanup failures, without invoking video or speech services.
License
MIT for the porting arrangement; skill content copyright remains with HeyGen.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8121
Skill center for the dsh web GUI: browse all loaded skills grouped by source, enable or disable model invocation, create new skills, and delete into a recoverable trash.
GanyuanRan/Aegis★ 1300
Software-engineering method pack for coding agents, with skills for baseline-first planning, systematic debugging, prompt hygiene, verification before completion, and repair/retirement tracking.
superdesigndev/superdesign-skill★ 612
Design skill for UI and marketing graphics on the Superdesign canvas: reads the repo for context, extracts its design system, then generates and iterates branchable design drafts, flow pages, and reusable components through the Superdesign CLI.
linhay/harmony-next.skills★ 355
HarmonyOS NEXT skill bundle for DeepSeek Harness with offline API references and DevEco, HDC, and emulator automation guidance.
sandbaseai/sandbase-skills★ 201
Mounts 88 packaged research, social-intelligence, marketing and business Agent Skills into dsh through the filesystem Skill provider.
VDERR/dsh-echocat-skill-panel★ 196
Reports which skills each turn invoked (loaded by the model, typed as /name, or none) and manages the local skill directory: install from a pasted repository, folder, SKILL.md or zip address, set a Chinese display name in the skill meta.yaml, and remove a skill while keeping a backup.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.