Tart es un conjunto de herramientas de línea de órdenes para crear, ejecutar y gestionar máquinas virtuales (VM) de macOS y Linux en Mac con Apple Silicon, pensado para integración continua y automatización. Lo creó Cirrus Labs en 2022 y, desde que la empresa se integró en el equipo de infraestructura de agentes de OpenAI en abril de 2026, su repositorio está en github.com/openai/tart, con licencia Functional Source License 1.1 y sin cuotas de uso. Para quien administra granjas de Mac para compilar apps de iOS y macOS, es hoy una de las piezas más usadas del ecosistema.
Las claves de Tart en 20 segundos
- Virtualiza macOS y Linux en Apple Silicon con Virtualization.framework.
- Distribuye las VM como imágenes en registros OCI, como GHCR.
- Lo mantiene OpenAI tras comprar Cirrus Labs; licencia FSL-1.1 sin cuotas.
- Versión 2.41.1, de octubre de 2026, con unas 7.900 estrellas.
El proyecto está escrito en un 92 % en Swift, tiene 60 contribuidores y 189 versiones publicadas. Según su README, lo usan empresas como Atlassian, Figma, Mullvad o Expo. En Appleismo explicamos qué es Tart para un público general; aquí nos centramos en cómo se usa en producción.
Instalación e imágenes
Tart requiere un Mac con Apple Silicon y macOS 13 Ventura o posterior. Tras el cambio de propietario, la fórmula de Homebrew está en el tap de OpenAI:
brew install openai/tools/tart
tart clone ghcr.io/cirruslabs/macos-tahoe-base:latest tahoe-base
tart run tahoe-baseLenguaje del código: PHP (php)
Las imágenes preparadas siguen en ghcr.io/cirruslabs: macOS 12 Monterey a macOS 26 Tahoe en variantes vanilla, base y xcode, y Ubuntu, Debian y Fedora para Linux. La imagen base de Tahoe ocupa unos 25 GB. Todas usan el usuario y contraseña admin/admin, tanto en la interfaz gráfica como por SSH, algo que hay que cambiar o aislar en cualquier despliegue con acceso de red. Las Linux tienen un disco mínimo de 20 GB y conviene ampliarlo al clonarlas:
tart clone ghcr.io/cirruslabs/ubuntu:latest ubuntu
tart set ubuntu --disk-size 50
tart run ubuntu
ssh admin@$(tart ip ubuntu)Lenguaje del código: JavaScript (javascript)
Para crear una imagen propia de macOS se parte de un IPSW de Apple (tart create --from-ipsw=latest tahoe-vanilla) y se completa el asistente a mano: la documentación recomienda crear el usuario admin, activar el inicio de sesión automático y el acceso remoto, desactivar el bloqueo de pantalla y el salvapantallas y permitir sudo sin contraseña. Para automatizarlo existe un plugin de Packer, el mismo que genera las imágenes oficiales. Para Linux basta tart create --linux y arrancar con la ISO del instalador mediante --disk. Por defecto, cada VM tiene 2 CPU, 4 GB de RAM y pantalla de 1024×768, ajustables con tart set.
Registros OCI, almacenamiento y discos
La gran diferencia de Tart frente a otras soluciones es que trata las VM como imágenes de contenedor: se suben y descargan desde cualquier registro compatible con OCI, aunque solo admite imágenes creadas por Tart, no imágenes de Docker.
tart login acme.io
tart push mi-vm acme.io/equipo/macos:latest acme.io/equipo/macos:v1.0.0
tart pull acme.io/equipo/macos:latest
Las credenciales se guardan en el llavero de macOS, pero también admite los credential helpers de Docker y las variables TART_REGISTRY_USERNAME, TART_REGISTRY_PASSWORD y TART_REGISTRY_HOSTNAME, útiles para inyectar secretos desde el sistema de CI. Todo vive en ~/.tart/: las VM locales en vms/ y las imágenes descargadas en cache/OCIs/. Antes de cada pull o clone, Tart comprueba el espacio libre y borra lo menos usado de la caché, con un límite de 100 GB por defecto en clone ajustable con --prune-limit; se desactiva con TART_NO_AUTO_PRUNE.
En macOS 27, tart clone --stacked crea VM que usan la imagen remota como base inmutable y guardan sus cambios en una capa ASIF propia, de modo que varias VM del mismo linaje comparten disco en caché. Ampliar el disco de una VM de macOS es más laborioso que en Linux: hay que arrancar en recuperación, borrar la partición de recuperación y redimensionar el contenedor APFS, o hacerlo con Packer.

tart run --recovery. Captura de la documentación de Tart.# Dentro del Terminal del modo recuperación
diskutil list physical
diskutil eraseVolume free free disk0s3
yes | diskutil repairDisk disk0
diskutil apfs resizeContainer disk0s2 0Lenguaje del código: PHP (php)

Red, carpetas y servidores sin pantalla
Por defecto, las VM usan NAT. Con --net-bridged se conectan a la red física, y entonces la IP se obtiene con tart ip --resolver=arp. Con --net-softnet, Softnet aísla más la VM y le impide llegar al host, algo recomendable para trabajos de CI que ejecutan código no confiable. Las carpetas del host se montan con --dir=nombre:~/ruta[:ro]; en macOS aparecen en /Volumes/My Shared Files y en Linux hay que montar virtiofs a mano.
La FAQ del proyecto recoge varios problemas típicos de producción:
- Agotamiento de DHCP: el servidor DHCP de macOS concede IP durante 24 horas, lo que se agota si se lanzan más de unas 253 VM al día. Se puede bajar a 10 minutos con
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.InternetSharing.default.plist bootpd -dict DHCPLeaseTimeSecs -int 600; Softnet lo evita automáticamente. - Mac sin pantalla: desde macOS 15, Virtualization.framework exige un
login.keychaindesbloqueado para arrancar VM. Hay que iniciar sesión gráfica una vez o crear y desbloquear el llavero consecurity. - Tart por SSH:
login,pullopushfallan si el llavero está bloqueado; se resuelve consecurity unlock-keychaino con las variables de entorno del registro. - Ubuntu y
tart ip: si la VM envía un identificador DHCP que no es su MAC, Tart no encuentra su IP; hay que configurardhcp-identifier: macen Netplan. - Virtualización anidada: solo en chips M3 o posteriores con macOS 15 y para VM Linux, con
--nested.
Para escalar a varias máquinas está Orchard, el orquestador de VM Tart de la misma familia, que la documentación compara con Anka Controller. Tart usa la misma base técnica que Anka 3.0, según el propio proyecto, pero distribuye las imágenes por OCI en lugar de un registro propio. Las versiones recientes incluyen también tart exec, que ejecuta órdenes en la VM a través de un agente invitado.
Licencia y futuro con OpenAI
Tart se distribuye ahora con la Functional Source License 1.1 con licencia futura Apache 2.0 (FSL-1.1-ALv2), con copyright de OpenAI. Permite usar, modificar y redistribuir el software para cualquier fin excepto ofrecer un producto o servicio comercial que lo sustituya, y cada versión pasa a Apache 2.0 con el tiempo. Antes, el uso comercial a cierta escala requería licencia de pago; tras la compra, Cirrus Labs eliminó esas cuotas y relicenció Tart, Vetu y Orchard. Cirrus CI cerró el 1 de junio de 2026.
El riesgo para quien dependa de Tart es de mantenimiento: el equipo original trabaja ahora en otros proyectos de OpenAI y no hay una hoja de producto pública para Tart. De momento, el repositorio sigue activo, con versiones publicadas en octubre y contribuciones externas, y las imágenes base siguen en ghcr.io/cirruslabs. Conviene fijar versiones, replicar las imágenes críticas en un registro propio y vigilar los cambios en el tap de Homebrew.
Preguntas frecuentes
¿Cómo se instala Tart ahora?
Con Homebrew desde el tap de OpenAI: brew install openai/tools/tart. Antes estaba en cirruslabs/cli.
¿Puedo usar Tart gratis en mi empresa?
Sí, para uso interno. La licencia FSL-1.1 solo prohibe ofrecer un producto comercial que compita con Tart.
¿Por qué no arrancan las VM en un Mac sin pantalla?
Desde macOS 15, Virtualization.framework necesita un login.keychain desbloqueado. Hay que iniciar sesión gráfica una vez o crearlo y desbloquearlo con la orden security.
¿Puedo usar imágenes de Docker con Tart?
No. Tart usa registros OCI, pero solo ejecuta imágenes de VM creadas y subidas con Tart.
Fuentes:






