Skip to main content
EstebanBustamante
Adobe Champion and Community Advisor
Adobe Champion and Community Advisor
Oct 28, 2026 8:11 PM UTC

AEM Local Instances Sync

[OVERVIEW] A Claude Code/command that copies content between two local AEM instances, directly on disk, with both instances shut down. It’s for the moment you drop a fresh AEM SDK QuickStart and need your existing local content in it — no content packages, no Package Manager. You give it a source and a target; it builds and runs the Jackrabbit oak-upgrade sidegrade, asks before anything destructive, and verifies the result. [TRYABLE] 1. Drop oak-migrate.md into .claude/commands/ in your project 2. Get an oak-upgrade jar (mvn dependency:get -Dartifact=org.apache.jackrabbit:oak-upgrade:2.6.0:jar), plus oak-run for verification 3. Run the discovery step once to list your real /content, /content/dam and /conf roots, then edit the path list in the command file 4. Shut down both AEM instances 5. Run /oak-migrate — optional: --merge, --with-versions, --verify 6. Approve the command when it asks, and answer the datastore question (copy binaries vs. shared) 7. Check the verification output: every path should match between source and target 8. Don’t start the target until the content is final — it reindexes on first boot [SETUP] https://github.com/EsteBustamante/ai-samples/blob/main/aem-local-instances-sync/README.md [IMPACT] The aim is to make refreshing a local AEM SDK cheap enough to do regularly, instead of putting it off for years. The copy runs in seconds rather than an afternoon of packaging and re-uploading, and because the path list and the guardrails live in the command file, anyone on the team can run it and get the same outcome. [LESSONS] [SAMPLE_OUTPUT] https://github.com/EsteBustamante/ai-samples/blob/main/aem-local-instances-sync/oak-migrate.md