Summary
Extract the VM harness under research/vm/ (plus the research/scripts/ research directions) into a new standalone repository called Corer ("like an apple corer"). This is a tracking issue only. No implementation is planned here.
The VM kit is a general-purpose headless macOS-VM-on-Apple-Silicon driver (boot / ssh / stop / install / snapshot). It has zero PreviewsMCP-specific shape and was always designed to be separable. See project-vm-kit-extractable memory (direction set by Jason 2026-05-17) and the "Big design decisions" section of research/vm/PROGRESS.md.
Why a separate repo
- The wrapper's automation surface has no PreviewsMCP coupling. It is a general macOS-VM library.
- Licensing void in this space is what made the custom wrapper necessary: Tart is Fair Source, UTM is GPL-3.0,
macosvm is minimally maintained.
- Keeping it in PreviewsMCP mixes a general tool with product-specific research.
Decisions (agreed)
- Extraction method: clean snapshot. No git history carried over.
- Scope: VM Kit plus the
research/scripts/ research directions as subdirectories. Personal use only; not intended for external consumers. (Note: this is broader than the original memory, which framed extraction as the VM kit alone.)
- Layout: research directions live as subdirectories (Xcode Previews today, future ones later).
- Naming: library renamed to
CorerKit or CorerVM (final pick TBD). CLI currently previewsvm.
Source branch
Snapshot from previews-research-3201, not previews-research. The -3201 branch is 437 lines ahead in research/vm/Sources/previewsvm/SetupCommand.swift.
What gets extracted
research/vm/ — self-contained Swift package PreviewsVM:
- Library
PreviewsVMKit (+ ObjC shim PreviewsVMObjC linking Virtualization)
- CLI
previewsvm (subcommands: boot, install, ssh, setup, snapshot, status, stop, plus test-keys / test-vnc smoke tests)
- Only external dependency:
swift-argument-parser
- Intentionally not a target of the root
Package.swift
research/scripts/ — research directions and analysis (Xcode Previews investigation: w3-w7 analysis, jit runtime findings, data captures, etc.).
research/scripts/provision-and-capture.sh and research/vm/build.sh — supporting scripts.
Design rule to preserve (from memory)
Keep PreviewsMCP-specific assumptions out. No references to the main Sources/ modules, no hard-coded Xcode-Previews internals, no coupling to the root Package.swift. Provisioning hooks (SIP disable, AMFI off, Xcode install) should stay parameterized / pluggable, not hardcoded. Extend the per-bundle config.json pattern instead of a repo-wide config.
References
- Memory:
project-vm-kit-extractable (direction set 2026-05-17)
- Memory:
project-vm-setup-assistant-via-snapshot, project-vm-sa-complete-macos-26-3-1 (SA sequence + provisioning findings)
research/vm/PROGRESS.md — "Big design decisions" section
research/vm/README.md — why the package is separate from root
prompts/jit-executor-research.md — original W1 harness brief
Summary
Extract the VM harness under
research/vm/(plus theresearch/scripts/research directions) into a new standalone repository called Corer ("like an apple corer"). This is a tracking issue only. No implementation is planned here.The VM kit is a general-purpose headless macOS-VM-on-Apple-Silicon driver (boot / ssh / stop / install / snapshot). It has zero PreviewsMCP-specific shape and was always designed to be separable. See
project-vm-kit-extractablememory (direction set by Jason 2026-05-17) and the "Big design decisions" section ofresearch/vm/PROGRESS.md.Why a separate repo
macosvmis minimally maintained.Decisions (agreed)
research/scripts/research directions as subdirectories. Personal use only; not intended for external consumers. (Note: this is broader than the original memory, which framed extraction as the VM kit alone.)CorerKitorCorerVM(final pick TBD). CLI currentlypreviewsvm.Source branch
Snapshot from
previews-research-3201, notpreviews-research. The-3201branch is 437 lines ahead inresearch/vm/Sources/previewsvm/SetupCommand.swift.What gets extracted
research/vm/— self-contained Swift packagePreviewsVM:PreviewsVMKit(+ ObjC shimPreviewsVMObjClinkingVirtualization)previewsvm(subcommands: boot, install, ssh, setup, snapshot, status, stop, plus test-keys / test-vnc smoke tests)swift-argument-parserPackage.swiftresearch/scripts/— research directions and analysis (Xcode Previews investigation: w3-w7 analysis, jit runtime findings, data captures, etc.).research/scripts/provision-and-capture.shandresearch/vm/build.sh— supporting scripts.Design rule to preserve (from memory)
Keep PreviewsMCP-specific assumptions out. No references to the main
Sources/modules, no hard-coded Xcode-Previews internals, no coupling to the rootPackage.swift. Provisioning hooks (SIP disable, AMFI off, Xcode install) should stay parameterized / pluggable, not hardcoded. Extend the per-bundleconfig.jsonpattern instead of a repo-wide config.References
project-vm-kit-extractable(direction set 2026-05-17)project-vm-setup-assistant-via-snapshot,project-vm-sa-complete-macos-26-3-1(SA sequence + provisioning findings)research/vm/PROGRESS.md— "Big design decisions" sectionresearch/vm/README.md— why the package is separate from rootprompts/jit-executor-research.md— original W1 harness brief