Containers fit when
- The workload is a Linux service, CLI, or browser task.
- Process isolation is enough.
- The run does not need macOS desktop state or Apple frameworks.
cove turns Apple Silicon Macs into repeatable macOS runs for agents, CI, and computer-use evals that need native apps, files, permissions, screenshots, and clean rollback.
Containers are a strong default for Linux services, CLIs, and many browser or code tasks. cove is for the narrower case where the run needs macOS itself: native apps, permissions, screenshots, files, installers, browser state, Keychain-adjacent workflows, and a clean reset on Apple Silicon the operator controls.
Local fork/restore loop
Install and prepare a known-good macOS guest.
Save named disk and VM state for repeatable starts.
Clone the child in milliseconds, then run the job.
Keep artifacts and audit records; throw away residue.
$ cove run -fork-from macos-15:clean -ephemeral
fork: 132-140 ms from stopped parent on M4 Max
agent: reachable in 10.788 s
artifacts: ~/.vz/runs/<run-id>/
Shipped local Mac isolation, with supportability hardening in progress. cove runs on macOS 14+ on Apple Silicon and already covers ScreenCaptureKit migration work, secret-safe guest commands, private CI migration support, CLI robustness, and local fork/restore evidence. The next hardening pass improves first-run checks, support bundles, structured JSON errors, runner scaffolding, trace/recording export, and Linux runtime paths. Public registry, signed channels, and any v1 announce under the cove name remain gated.
The hard part of computer-use automation is not only clicking the right button. It is returning the machine to a known state after the agent misclicks, sees sensitive data, writes a file, changes a preference, or leaves a daemon behind. cove treats the Mac as a repeatable runtime: start from a named clean point, let the workload touch a real desktop, keep the run record, and throw away the child machine.
Tart, Lume, Anka, and Orka validate Mac VMs on Apple Silicon. Browser and code sandboxes validate disposable agent runtimes. cove sits between those worlds: local Mac execution for sensitive agent, eval, CI, and desktop workflows where the operator owns the hardware and the run record.
Use them when the primary job is scaling Apple build infrastructure. cove starts with repeatable fork/restore runs, local artifacts, and privacy-sensitive automation on Macs the team already controls.
Those are strong defaults when cloud execution is acceptable. cove is for cases where browser state, desktop files, credentials, screenshots, or regulated data should not leave the operator's Mac boundary.
cove is not a browser fleet. It is the Mac underneath when the workflow reaches native apps, installers, files, permissions, ScreenCaptureKit, or a full desktop state that must be reset.
Run browser, desktop, and file-system work in a real Mac guest, then reset to a known state instead of trusting user-account cleanup.
Move sensitive builds and test jobs onto Macs you control, with guest command logs, secret redaction, and per-run artifacts.
Exercise installers, permissions, UI flows, and native integrations without turning one laptop into a long-lived pet machine.
Keep legal, healthcare, finance, and enterprise workflows on local hardware when a hosted sandbox is not acceptable.
The run touches PHI, downloads PDFs, and may leave cookies or local files. cove forks from a clean guest, captures screenshots and logs, then discards the child.
Secrets are injected for the guest command, redacted from logs, and tied to a run artifact bundle. The job stays local instead of becoming another cloud Mac credential problem.
Permissions, LaunchDaemons, preferences, and UI state are exactly the things a test has to exercise. The VM child can become messy because the next run starts from the parent.
cove install, inject, run, and VZScript recipes prepare the guest on Apple Virtualization.framework.
Disk snapshots and VM state form named lineage. The supported isolation primitive is fork/restore, not per-user soft reset.
The guest-control socket handles screenshots, keyboard and mouse, file copy, one-shot shell commands, and bidirectional exec on current agents.
Runs produce manifests, event logs, stdout/stderr, and screenshots under ~/.vz/runs/<run-id>/; the ephemeral child is disposable.
cove shell.--secret-env and private cove-action secrets input route values into guest commands with run-log redaction.cove build for local VM-directory bases, and cache-aware execution.cove name waits on trademark clearance or a rename.Docker remains the right default for Linux containers. cove covers a different part of the problem: workloads that need macOS state, native apps, installers, permissions, screenshots, files, browser sessions, and a VM child that can be discarded after the run. The product is fork/restore plus evidence on a real Mac.
Those projects are serious Mac virtualization and orchestration systems. cove is not claiming broader fleet maturity today. The focused product is local, privacy-sensitive Mac execution with fork/restore, per-run evidence, and agent/eval ergonomics.
For low-sensitivity browser or code work, cloud sandboxes are often the right answer. cove is for money, healthcare, legal, enterprise desktop, CI secret, and native Mac workflows where credentials, screenshots, local files, and logs are part of the trust boundary.
Not yet. The shipped claim is a local Mac runtime with fork/restore, guest control, private CI support, and run artifacts. Public registry, signed distribution, fleet scheduling, and a v1 launch remain gated.
cove is built for the moment an agent needs a real Mac and the operator needs a reset button they can trust.
cove is the local Mac runtime under the Caletta stack. skiff uses the same local-first posture for agent policy and network control; cove supplies the disposable Mac when the payload needs a real machine.
source private review available on request — travis@tmc.dev
docs quickstart and operating bounds; full release notes, shipped surface, and safety posture available on request
contact travis@tmc.dev