Skip to content

feat(media-use): fast heygen CLI onboarding — actionable diagnostics, --doctor, free-usage framing#2065

Open
miguel-heygen wants to merge 1 commit into
feat/media-use-color-gradingfrom
feat/media-use-heygen-onboarding
Open

feat(media-use): fast heygen CLI onboarding — actionable diagnostics, --doctor, free-usage framing#2065
miguel-heygen wants to merge 1 commit into
feat/media-use-color-gradingfrom
feat/media-use-heygen-onboarding

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

📚 Stack (top): stacked on #2041 (color grading). This PR's own diff is the single heygen-onboarding commit; the rest belongs to #2041. Merge #2041 first.

What & why

media-use resolves bgm / sfx / image / icon / logo (catalog), voice (TTS), and avatar video through the heygen CLI — the free-usage path. CLI-feedback shows agents repeatedly hit a dead end when heygen is missing/unauthed: they get a vague error, install it by trial, and there's no preflight. This makes the dependency self-service — it guides agents to install it fast, at the moment of need.

Changes

  • Actionable failure diagnostics (lib/heygen-cli.mjs) — every heygen-backed resolve, on failure, prints the exact fix on stderr (stdout stays clean JSON):
    • not installed → curl -fsSL https://static.heygen.ai/cli/install.sh | bash then heygen auth login
    • not authenticated → heygen auth login --key <key>
    • outdated → heygen update (need ≥ v0.1.6)
      Routed through heygen-search (catalog) and voice-provider (TTS) so all heygen-backed types are consistent.
  • resolve --doctor preflight (human + --json) — checks heygen present / version / auth, ffmpeg, ffprobe, node, with a fix command per gap. Exit 0 unless ffmpeg (the only strictly-required dep) is missing; a missing/unauthed heygen is reported, not fatal. The SKILL tells agents to run it first.
  • SKILL reframe — install-first callout up top; heygen positioned as the free-usage gateway for bgm/image/voice/avatar-video (not "upsell"); removed the false "degrades gracefully to the free/cloud path" claim (for those types, heygen is the path).

Verification

  • media-use suite 135/135 (on the stacked base — includes color grading + logo); oxlint + oxfmt --check clean.
  • resolve --doctor (human + json) → all six checks green on a provisioned machine.
  • Missing-heygen bgm resolve → stdout valid JSON (ok:false), stderr carries the exact actionable install line.
  • --doctor with heygen hidden → reports it ✗ with the install fix, exits 0 (ffmpeg present).

Notes

  • Fallback is guidance-only by design (installing heygen is free) — no bundled audio / licensing surface.
  • Pairs with the in-flight free-usage avatar video + TTS work: this is the onboarding layer that makes that path land without install friction.

🤖 Generated with Claude Code

@miguel-heygen miguel-heygen force-pushed the feat/media-use-heygen-onboarding branch from 5fa2c12 to 928539e Compare July 8, 2026 18:29
@miguel-heygen miguel-heygen changed the base branch from main to feat/media-use-color-grading July 8, 2026 18:29
@mintlify

mintlify Bot commented Jul 8, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
hyperframes 🟢 Ready View Preview Jul 8, 2026, 6:52 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Copy link
Copy Markdown
Collaborator Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

… --doctor, free-usage framing

media-use resolves bgm/sfx/image/icon (catalog), voice (TTS), and avatar video
through the heygen CLI — the free-usage path. Agents hit a dead end when it's
missing/unauthed. This guides them to install it fast, at the point of need.

- Centralized actionable diagnostics (lib/heygen-cli.mjs): every heygen-backed
  resolve, on failure, prints the exact fix on stderr — not-installed (curl
  install one-liner), not-authenticated (heygen auth login), outdated (heygen
  update). Routed through heygen-search + voice-provider. stdout stays clean JSON.
- resolve --doctor preflight (human + --json): checks heygen present/version/
  auth, ffmpeg, ffprobe, node, a fix per gap. Exit 0 unless ffmpeg missing.
- SKILL reframe: install-first callout; heygen as the free-usage gateway for
  bgm/image/voice/avatar-video; removed the false "degrades gracefully" claim.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H5k87mPZ4d6yiFwcWSb8Vv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant