Comparison
Where we win, and where we lose
A comparison worth reading is one that admits what it lacks. Here is the full matrix, and then every place a competitor is genuinely ahead of us today.
Feature matrix
"Yes" means shipped and covered by tests. An em dash means we do not have it. Partial is called partial. Competitor columns come from each project's own public documentation, read in July 2026.
| Capability | Spooktacular | Tart | Anka | Orka |
|---|---|---|---|---|
| Licensing | ||||
| Licence | MITevery feature, no tiers | Fair Source | Commercialpaid tiers | Commercialhosted by MacStadium |
| Full source available | Yes | Yes | — | — |
| Runs on hardware you own | Yes | Yes | Yes | MacStadium only |
| Creating and cloning | ||||
| Shared base image with per-VM overlay | Yesone macOS install per build | — an image per VM | Yes | Yes |
| APFS copy-on-write cloning | Yes30 ms for a 5 GB VM, 0 extra bytes | Yes | Yes | Yes |
| Disk snapshots | Yessave, restore, list, delete | — | Yes | Yes |
| Suspend and resume to disk | Yes | Yes | Yes | Yes |
| Ephemeral VMs | Yes--ephemeral |
Manual cleanup | Yes | Yes |
| Licence-capacity enforcement | Yestwo macOS guests per host | — | — | — |
| Provisioning | ||||
| Native guest provisioning | YesVZMacGuestProvisioningOptions, macOS 27 | — | — | — |
| Provisioning without guest networking | YesLaunchDaemon written into the base | SSH only | Needs an agent | Needs an agent |
| Definitive readiness signal | Yesthe guest reports its exit code over vsock | Poll for SSH | Its agent reports | Its agent reports |
| Anything to install inside the guest | Nothing | Nothing | An agent | An agent |
| CI runner templates | PartialGitHub Actions only | PartialGitHub Actions | Several | Several |
| Networking | ||||
| Per-VM subnet with a reserved address | Yesspook ip is a lookup, not a probe |
Shared NAT | Yes | Yes |
| Publish a guest port on the host | Yes--publish 8080:80 |
— | Yes | Yes |
| Bridged networking | Yeswith a NAT fallback | Yes | Yes | Yes |
| Fully isolated networking | Yes | — | Yes | Yes |
| Guest experience | ||||
| Metal-accelerated displays | Yesup to two per VM | Yes | Yes | Headless |
| Audio output and microphone | Yes | — | Yes | — |
| Shared folders | YesVirtIO directory sharing | Yes | Yes | Yes |
| Clipboard sync | PartialSPICE clipboard only | — | Yes | Yes |
| Linux guests | Yescloud image plus cloud-init | Yes | — | — |
| Interfaces | ||||
| Native Mac app | YesSwiftUI, on the CLI's own core | — | Yes | Web UI |
| Command-line interface | Yes27 subcommands | Yes | Yes | Yes |
| HTTP API | Yeswith signed requests | — | Yes | Yes |
| Accessibility | YesVoiceOver throughout the app | Not applicableno GUI | Unstated | Unstated |
| Fleet and security | ||||
| Runner pool orchestration | Yesa ten-state lifecycle machine | — | Yes | Yes |
| Mutual TLS, control plane to node | Yesoptional, mutual certificate auth | — | Server TLS only | Yes |
| Certificate rotation without a restart | Yesfile-watch hot reload | — | — | Unstated |
| Role-based access control | Yesplus Secure-Enclave-bound keys | — | Yes | Yes |
| Fleet autoscaling | — not implemented | — | Partialmanual pools | Yes |
| OCI registry push and pull | — planned | Yes | Yes | Yes |
| Supply-chain attestations | YesSBOM and artifact attestations | — | Unstated | Unstated |
| Publicly visible test suite | 865 tests222 suites, run on every change | Yes | Not public | Not public |
| Commercial support contract | — community only | Yes | Yes | Yes |
Where the competition is ahead
These are real gaps, not hedges. If one of them sits on your critical path, another tool is the better choice today.
OCI registries
Tart pushes and pulls VM images from any OCI-compliant registry today. We do not. If your workflow distributes images through a registry, that is a requirement we cannot meet yet.
Fleet autoscaling
Orka scales a pool against demand, and Anka offers manual pool management. We orchestrate runners on a single host and have no multi-host fleet management at all.
CI systems beyond GitHub Actions
Both ship native integrations for BuildKite, CircleCI and Jenkins. We have a GitHub Actions template and nothing else, so any other CI system means writing your own first-boot script.
Someone to call
They sell support with response commitments. We are community-supported through GitHub issues. If you need a vendor contractually on the hook, that is a real difference.
Deeper host-to-guest integration
Their guest agents do more than our SPICE clipboard bridge. We chose not to require an agent inside the guest, and thinner integration is the price of that choice.
Kubernetes-native operation
Orka runs as Kubernetes-native managed infrastructure. If you want Macs to behave like any other node pool, that is a different kind of product from this one.
What it costs
Spooktacular is MIT licensed with every feature included: not a free tier with the useful parts held back.
Read the code before you believe the table.
Every capability claimed above lives in a public repository with its tests beside it. That is the only comparison claim that verifies itself.