macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Fedor Korotkov 6189dc23af
Fix VM window not appearing on tart run (#1183)
Restore the applicationDidFinishLaunching method that was accidentally
removed in commit b1e88e1 ("tart run: do not remove 'Edit' menu as its
not present anymore").

That commit intended to remove the Edit menu removal code (since the
menu no longer exists), but also removed the crucial activation code:
- setActivationPolicy(.regular) - tells macOS this is a GUI app
- activate(ignoringOtherApps:) - brings the window to the foreground

Without these calls, the VM runs fine (SSH works) but no window appears
on screen.

Fixes #1181

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 15:16:33 -05: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 Add `NSLocalNetworkUsageDescription` (#1058) 2025-04-18 18:27:32 +04:00
Sources/tart Fix VM window not appearing on tart run (#1183) 2026-01-23 15:16:33 -05:00
Tests/TartTests Refactor "diskutil create" and "diskutil info" into a separate class (#1172) 2026-01-22 13:00:27 +01:00
benchmark Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01:00
docs [docs] clarify licensing request details in press release (#1159) 2025-10-27 16:04:35 +00:00
integration-tests Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01:00
scripts Update docs, examples and CI to Sequoia 2025-05-04 20:49:23 -04:00
.cirrus.yml Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01: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 #1004: Wrong binary path in distro (#1005) 2025-01-18 13:32:54 +04:00
.swiftformat Reformat code idents and introduce the SwiftFormat linter (#339) 2022-11-29 15:56:13 +00:00
CONTRIBUTING.md feat: prioritize pruning of old SHA when pulling updated tags (#1102) 2025-07-07 08:52:05 +00:00
LICENSE Relicensed under Fair Source License (#415) 2023-02-28 12:22:25 -05:00
PROFILING.md PROFILING.md: document how to profile Tart using time(1) and xctrace(1) (#926) 2024-10-28 18:49:10 +04:00
Package.resolved Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01:00
Package.swift Switch to OpenTelemetry (#1179) 2026-01-23 12:04:21 +01:00
README.md Update README example to use macOS Tahoe (#1101) 2025-07-07 13:50:16 +04:00
gon.hcl Fix #1004: Wrong binary path in distro (#1005) 2025-01-18 13:32:54 +04:00
mkdocs.yml docs: include full article content in RSS (#1104) 2025-07-08 21:06:37 +04: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.

Tart powers Cirrus Runners service — a drop-in replacement for the standard GitHub-hosted runners, offering 2-3 times better performance for a fraction of the price.

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.