macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Dal Rupnik 6af39e807f feat: relocate dropped files to frontmost Finder folder, not the share
The previous guest-drop synthesis only ran `open -R` on the file's
location in the "Dropped Files" share. That just revealed it in the
share, which was the user-visible bug we were trying to fix: dropped
files appeared in `/Volumes/My Shared Files/Dropped Files/` instead
of somewhere natural.

Now the agent's exec script asks Finder for the frontmost window's
POSIX path via `osascript`, moves the file out of the share into that
folder, and then reveals it. If no Finder window is open, the path
isn't writable, or it points back at the share itself, the script
falls back to `~/Desktop`. Filename collisions get suffixed
(`foo.txt` → `foo 2.txt`, …) instead of clobbering.

osascript here runs in the agent's user-GUI session, so the first
drop triggers an Automation→Finder TCC prompt in the guest the user
approves once.

Verified end-to-end via `tart exec` (same RPC path the drop handler
uses): no Finder window → ~/Desktop, Finder on Downloads → Downloads,
Finder on Dropped Files itself → ~/Desktop fallback.
2026-05-20 10:15:08 +02:00
.ci
.github
Resources
Sources/tart feat: relocate dropped files to frontmost Finder folder, not the share 2026-05-20 10:15:08 +02:00
Tests/TartTests feat: scaffold guest-side drop synthesis (host plumbing only) 2026-05-20 10:15:08 +02:00
benchmark
docs docs: clarify that nested virtualization is only for Linux VMs for now (#1233) 2026-05-12 21:45:18 +00: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
.cirrus.yml
.editorconfig
.gitignore
.goreleaser.yml
.swiftformat
CONTRIBUTING.md
LICENSE
PROFILING.md
Package.resolved
Package.swift
README.md
actool.sh
gon.hcl
mkdocs.yml

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.