Migration Guide
This guide is for moving from either of the predecessor codebases (the original videoclaw package OR the clean-room vclaw-video-core rebuild) to videoclaw-v3 — the current merged repo that combines the best of both. The npm package name remains videoclaw; only the repository name changed (the v3 suffix distinguishes the merged repo from its predecessors).
Why migrate
videoclaw-v3 (npm: videoclaw) is now the safer execution surface because it has:
- canonical artifacts
- explicit stage checkpoints
- character consistency enforcement
- native
seedance-directtransport - native
veo-useapitransport - direct clone execution runtime
- imported prompt/reference library assets
The old repo still matters as:
- reference implementation
- script source
- migration source for older project folders
Repo roles
Use the repos like this:
videoclaw(legacy v0.11.x)- legacy runtime
- archive/reference source
- migration input
vclaw-video-core(intermediate clean-room rebuild)- intermediate rebuild that became this repo's foundation
- now retired in favor of
videoclaw-v3
videoclaw-v3(current — npm package:videoclaw)- active product surface
- canonical CLI
- current execution/runtime lane
What migrates cleanly
You can already move these workflows:
- project initialization
- initial
video createfront-door flow - brief/storyboard/assets/review/publish stage tracking
- template save/list/show
- clone plan / clone init / storyboard-from-clone
- clone execute
- provider status / readiness / plan / produce / execute-status
- Obsidian export and sync
- legacy project folder import via
import-legacy
What still stays partially legacy
These areas still need product polish or richer parity work:
- deeper legacy
video create/ Director parity on the clean-room CLI beyond the current character-hydration and approval-gate surface - richer provider-specific option surfaces
- deeper historical-project normalization beyond file-count inference
- old-repo migration comms and deprecation rollout
- higher-level automatic prompt guidance during execution
Most important near-term gap:
- richer provider-specific execution controls and advanced orchestration ergonomics still live more fully in the legacy workflow docs than in the clean-room CLI
Command migration
Use vclaw in the clean repo as the primary command surface. omx currently works as a compatibility alias and prints a deprecation notice to stderr.
Examples:
# old mental model
omx video ...
# new primary surface
vclaw video ...Recommended clean-room flow:
vclaw video create "Create a short product teaser." --project demo --production-mode director --import-library-characters
# review projects/demo/storyboard.md
VIDEOCLAW_APPROVE_STORYBOARD=1 vclaw video create "Create a short product teaser." --project demo --production-mode director --execute --dry-runIf the project needs a new cast member, seed it directly into the create flow:
cat >/tmp/cast.json <<'JSON'
[
{
"name": "Nova",
"description": "A determined spaceship captain with a silver jacket.",
"style": "cinematic sci-fi still"
}
]
JSON
vclaw video create "Komo and Mochi recruit Nova for a neon sci-fi corridor escape." \
--project hydration-demo \
--production-mode director \
--import-library-characters \
--auto-create-characters /tmp/cast.jsonTemplate-driven flow:
vclaw video analyze --project ref --source <url-or-path> --title "Reference"
vclaw video template-save --project ref --name launch-template
vclaw video clone-execute --template launch-template --project launch-variant --intent "Make a launch teaser for a smart bottle."Project migration
If you have historical folders under the legacy repo, import them into the clean repo:
vclaw video import-legacy --source <legacy-videoclaw>/projects --root <videoclaw>Then verify them:
vclaw video doctor-portfolio --root <videoclaw>
vclaw video metrics --root <videoclaw>
vclaw video sync-obsidian --root <videoclaw>Provider migration
Seedance direct
Minimum native path:
SUTUI_API_KEY=...Optional:
VCLAW_SEEDANCE_BASE_URL=...Veo direct
Minimum native path:
- local
vclaw-cliworkspace cookie.jsonbun
Optional:
VCLAW_VEO_CLI_ROOT=...
VCLAW_VEO_BUN_BIN=...
VCLAW_VEO_OUTPUT_DIR=...Suggested cutover sequence
- Freeze new feature work in the old runtime lane.
- Run
npm testinvideoclaw. - Validate provider readiness with
vclaw video providers. - Import historical projects if needed.
- Move template and clone workflows first.
- Move direct execution workflows next.
- Move Obsidian and reporting consumers last.
Rollback rule
If a production job fails in the clean repo for a case the old repo still handles better:
- keep the artifacts in
videoclaw - note the gap explicitly
- use the old repo only as a temporary execution fallback
- port the missing behavior back into the clean repo
Do not re-expand the old repo as the primary product surface.
Cheap smoke checks
The clean-room repo now includes a local mock-backed smoke for create-time character hydration:
npm run build
node scripts/smoke-character-hydration.mjsEquivalent packaged entry point:
npm run smoke:character-hydrationThis verifies one video create run that:
- reuses exact-name library matches from the story intent
- auto-creates a missing character from a JSON seed
- carries the full cast into
brief.json,storyboard.md, and the project character store
