Apple's Native Container Stack Gets a Native UI with Davit
Davit bypasses Docker Desktop by talking directly to Apple's native virtualization daemon over XPC.
If you run Linux containers on macOS, you are likely familiar with the resource tax. For years, the standard workflow has required running a heavy Linux virtual machine, whether via Docker Desktop, Colima, or OrbStack, to host a Docker daemon.
Apple is quietly changing this paradigm. With its open-source Apple Open Source container project, Apple has introduced a native containerization stack. Instead of spinning up a single, monolithic utility VM to host all your containers, Apple's architecture runs each container in its own isolated micro-VM using the native Virtualization framework. This translates to sub-second boot times, per-container IP addresses, and deep optimization for Apple silicon.
While Apple provides a command-line interface for this stack, managing containers solely through the terminal can become tedious. This is where Davit comes in. Davit is a lightweight, native macOS UI built entirely in SwiftUI that bypasses the CLI entirely, talking directly to Apple's container daemon over XPC.
The Architecture: Direct XPC vs. Socket Shims
To understand why Davit is interesting, it helps to look at how other tools interface with Apple's new container stack. For example, the Podman Desktop Apple Container extension relies on an integration layer called Socktainer. Socktainer is a Vapor-based REST API that translates Docker REST API calls to Apple Container commands, running over a UNIX socket. While functional, this approach introduces an extra translation layer and daemon process.
Davit takes a much cleaner path. It links Apple's own ContainerAPIClient library and speaks directly to the container-apiserver over XPC, which is the exact same wire path the official CLI uses. Because of this, Davit requires no background agents of its own, no socket shims, and no Electron web views. The entire application is a single, self-contained 17 MB binary.
+--------------------------------------------------+
| Davit UI |
| (SwiftUI App - Links ContainerAPIClient Lib) |
+--------------------------------------------------+
|
| (Direct XPC)
v
+--------------------------------------------------+
| container-apiserver |
| (Apple's Host Daemon) |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| Virtualization.framework |
| (Isolated Micro-VM per OCI Linux Container) |
+--------------------------------------------------+
This architecture means Davit can sample per-container CPU and memory usage every two seconds, stream logs in real time, and open interactive shells without spawning external helper processes or dragging down system performance.
The Developer Workflow in Practice
For developers looking to migrate away from Docker Desktop, Davit simplifies the transition by handling the platform installation. If you do not have Apple's container platform installed, Davit will download the signed installer, verify it, and set up the daemon in your user Library directory, meaning you do not even need administrator rights to get started.
Once running, the tool supports standard OCI images from Docker Hub, GitHub Container Registry (ghcr.io), and Quay. Your existing images work out of the box.
However, there is a major architectural difference to keep in mind: Apple's native containers are immutable. You cannot simply modify a running container's configuration on the fly. Davit addresses this with an "Edit & Recreate" workflow. When you want to edit a container, Davit opens a configuration sheet prefilled with the existing ports, environment variables, mounts, and resource limits. It automatically subtracts the base image's default entrypoint and environment variables so you only see your custom overrides. Once you confirm the changes, Davit tears down the old container and spins up the new one in seconds.
Other practical features built into the UI include:
- One-Click Terminal: Open an interactive shell in any running container directly inside Terminal or iTerm using the native API (no CLI wrapper needed).
- Platform Settings Editor: Modify default CPU and memory allocations, custom registries, local DNS domains, and Rosetta builder resources. Davit validates these TOML overrides using the platform's own configuration loader before saving them to
~/config/container/config.toml. - Volume and Network Management: Create sized volumes, set up custom subnets, and view "in-use" badges so you do not accidentally delete active storage or networks.
Trade-offs and the Road to macOS 26
While Davit and the underlying Apple Container platform are highly compelling, they are not yet a complete replacement for every Docker Desktop workflow.
First, the platform requirements are strict. You must be running an Apple silicon Mac. While macOS 15 is supported, macOS 26 (Tahoe) is highly recommended, as it aligns with the container 1.0 release. Apple's container platform itself is still in active development, meaning certain advanced networking configurations or edge-case OCI features may still be maturing.
Second, if your team relies heavily on Docker Desktop's commercial ecosystem, such as proprietary extensions or enterprise management integrations, a minimalist tool like Davit will not fit those specific requirements. Davit is designed for developers who want a clean, fast, and local container runtime without the overhead of a corporate container suite.
For Mac developers who value performance and battery life, Davit offers an excellent way to experience Apple's native containerization. It strips away the bloat of traditional container VMs and delivers a fast, native UI that feels right at home on macOS.
Sources & further reading
- Show HN: Davit, a Apple Containers UI — davit.app
- GitHub - wouterdebie/davit: A native macOS UI for Apple's platform · GitHub — github.com
- Apple Open Source — opensource.apple.com
- Podman Desktop Apple Container Extension: List Containers & Images on macOS | Podman Desktop — podman-desktop.io
Lenn writes about cloud platforms, Kubernetes internals, and the infrastructure decisions that quietly make or break engineering organizations. Based in Berlin's vibrant tech scene, they have a talent for turning dense platform-engineering topics into prose that people actually finish reading.
Discussion 0
No comments yet
Be the first to weigh in.