macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
G 3678f45d82 Add optional Virtio memory balloon support
Add a per-VM "memoryBalloon" setting (disabled by default) that, when
enabled via "tart set <name> --memory-balloon true", attaches a
VZVirtioTraditionalMemoryBalloonDeviceConfiguration to the VM,
allowing supported guest operating systems to participate in
best-effort memory reclaim.

A balloon target can be requested at run time via
"tart run --balloon-target-memory <MB>". The target is re-applied
periodically, since a target set before the guest's virtio-balloon
driver probes the device is lost when the guest resets the device
while booting (the same applies to guest reboots).

The balloon device is skipped for suspendable VMs (similarly to the
entropy device) to not interfere with the save/restore support.

VM.craftConfiguration() is split into a buildConfiguration() part and
a validation part, so that the device wiring can be unit-tested
without the "com.apple.security.virtualization" entitlement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:51:48 +09:00
.ci Fixed plist file in version update (#927) 2024-10-29 13:01:47 +04:00
.github Add build workflow for testing (#1180) 2026-01-23 09:41:13 -05:00
Resources Update docs after OpenAI move (#1240) 2026-06-05 17:05:23 -07:00
Sources/tart Add optional Virtio memory balloon support 2026-07-03 10:51:48 +09:00
Tests/TartTests Add optional Virtio memory balloon support 2026-07-03 10:51:48 +09:00
benchmark Mention macOS Tahoe everywhere instead of macOS Sequoia (#1208) 2026-03-02 08:50:29 -05:00
docs Add optional Virtio memory balloon support 2026-07-03 10:51:48 +09:00
integration-tests docs: clarify that nested virtualization is only for Linux VMs for now (#1233) 2026-05-12 21:45:18 +00:00
scripts Add Liquid Glass icon and sign the whole app bundle (#1216) 2026-03-20 23:19:21 +01:00
.cirrus.yml Skip integration test gate for release (#1229) 2026-04-11 22:33:36 -04:00
.editorconfig Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01:00
.gitignore feat: Add disk image format selection with ASIF support (#1094) 2025-06-19 18:27:30 +04:00
.goreleaser.yml fix(homebrew): wrap macOS version dependency in on_macos block (#1264) 2026-06-15 18:25:38 -04:00
.swiftformat Reformat code idents and introduce the SwiftFormat linter (#339) 2022-11-29 15:56:13 +00:00
CONTRIBUTING.md Update docs after OpenAI move (#1240) 2026-06-05 17:05:23 -07:00
LICENSE Relicense under FSL-1.1-ALv2 (#1238) 2026-06-05 15:37:02 -07:00
PROFILING.md Mention macOS Tahoe everywhere instead of macOS Sequoia (#1208) 2026-03-02 08:50:29 -05:00
Package.resolved Switch back to github.com/open-telemetry/opentelemetry-swift upstream (#1189) 2026-02-02 19:40:24 +01:00
Package.swift Switch back to github.com/open-telemetry/opentelemetry-swift upstream (#1189) 2026-02-02 19:40:24 +01:00
README.md Update README.md 2026-06-05 17:07:07 -07:00
actool.sh Add Liquid Glass icon and sign the whole app bundle (#1216) 2026-03-20 23:19:21 +01:00
gon.hcl Add Liquid Glass icon and sign the whole app bundle (#1216) 2026-03-20 23:19:21 +01:00
mkdocs.yml Update docs after OpenAI move (#1240) 2026-06-05 17:05:23 -07:00

README.md

Tart is a virtualization toolset to build, run and manage macOS and Linux virtual machines (VMs) on Apple Silicon. Built by CI engineers for your automation needs. Here are some highlights of Tart:

  • Tart uses Apple's own Virtualization.Framework for near-native performance.
  • Push/Pull virtual machines from any OCI-compatible container registry.
  • Use Tart Packer Plugin to automate VM creation.
  • Easily integrates with any CI system.

Many companies are using Tart in their internal setups. Here are just a few of them:

Note: If your company or project is using Tart please consider sharing with the community.

Usage

Try running a Tart VM on your Apple Silicon device running macOS 13.0 (Ventura) or later (will download a 25 GB image):

brew install cirruslabs/cli/tart
tart clone ghcr.io/cirruslabs/macos-tahoe-base:latest tahoe-base
tart run tahoe-base

Please check the official documentation for more information and/or feel free to use discussions for remaining questions.