macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Nikolay Edigaryev 64a3999a58
Improve Orchard docs (#1064)
* Iterate over Orchard Architecture description

* Document Orchard Controller customization (e.g. --listen-ssh)

* New section: "Using Orchard CLI"

* Fix Markdown unordered list indentation

* Fix "fenced code blocks should have a language specified"

* the context → a context

* Clarify different port

* Simplify labels explanation

* Studios → Studio

* Better explain resources

* crate → create

* only to place → only place

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Surround "Using resources when creating VMs" header by blank lines

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-29 18:10:14 +04:00
.ci Fixed plist file in version update (#927) 2024-10-29 13:01:47 +04:00
.github Added Code Owners (#328) 2022-11-17 22:57:12 -05:00
Resources Add `NSLocalNetworkUsageDescription` (#1058) 2025-04-18 18:27:32 +04:00
Sources/tart Add `--no-trackpad` option to disable trackpad on macOS VMs (#1060) 2025-04-22 10:17:19 -04:00
Tests/TartTests RegistryRunner: explicitly listen on localhost (#956) 2024-11-21 09:24:37 -05:00
benchmark Bump golang.org/x/crypto from 0.21.0 to 0.35.0 in /benchmark (#1057) 2025-04-18 18:01:55 +04:00
docs Improve Orchard docs (#1064) 2025-04-29 18:10:14 +04:00
integration-tests integration-tests: downgrade "requests" package to 2.31.0 (#829) 2024-05-21 13:35:33 +00:00
scripts Fancy Social Cards (#830) 2024-05-22 16:07:08 +04:00
.cirrus.yml Build universal binary instead of architecture dependent (#995) 2025-01-16 08:22:05 -05:00
.editorconfig Update dependencies and styles (#12) 2022-03-24 18:54:49 +03:00
.gitignore Fancy Social Cards (#830) 2024-05-22 16:07:08 +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 Add CONTRIBUTING.md? (#575) 2023-08-03 13:10:34 -04: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 tart pull: 284% faster pulls with default concurrency setting (#970) 2024-12-11 21:48:59 +04:00
Package.swift tart pull: 284% faster pulls with default concurrency setting (#970) 2024-12-11 21:48:59 +04:00
README.md Update testimonials to focus on Tart (#876) 2024-08-01 17:09:08 +04:00
gon.hcl Fix #1004: Wrong binary path in distro (#1005) 2025-01-18 13:32:54 +04:00
mkdocs.yml Improve Orchard docs (#1064) 2025-04-29 18:10:14 +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-sonoma-base:latest sonoma-base
tart run sonoma-base

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