A native macOS SwiftUI dashboard for Apple's container runtime.
ContainerApp gives you a desktop interface for inspecting and managing local
containers, images, volumes, networks, DNS resolver entries, registry
credentials, system status, and logs. It talks to the container apiserver
through Apple's Swift packages and shells out to the container CLI for service
lifecycle operations.
- View local containers, images, volumes, networks, DNS domains, registry logins, and builder containers
- Start, stop, kill, and delete containers
- Pull and delete images, plus clean up orphaned image blobs
- Delete and prune volumes and networks
- Inspect running container resource usage
- Tail container logs with configurable line count
- Start, stop, and restart container services
- Monitor service status and open controls from the macOS menu bar
- Auto-refresh lists every 5 seconds
- Search across the active view
- macOS 26.0 or newer
- Swift 6.0 or newer
- Apple's
containerCLI available onPATH, discoverable through macOS path files such as/etc/pathsor/etc/paths.d, or configured withCONTAINER_CLI_PATH
This project currently pins:
apple/container0.12.3apple/containerization0.31.0
Clone the repository, then build and run with Swift Package Manager:
swift build
swift run ContainerAppYou can also open Package.swift in Xcode and run the ContainerApp executable
target.
The sidebar is organized around the main container resource types:
- Containers: inspect containers and run lifecycle actions
- Images: list, pull, delete, and clean up image storage
- Volumes: inspect, delete, and prune volumes
- Builder: view and remove BuildKit builder containers
- DNS: view configured local resolver domains
- Network: inspect, delete, and prune networks
- Registry: view and remove saved registry credentials
- System: check apiserver status and control container services
- Logs: tail logs for a selected container
- Settings: configure refresh behavior and view backend details
Some destructive actions require confirmation. Deleting DNS resolver domains may prompt for administrator authentication because it modifies system resolver configuration.
ContainerApp also installs a menu bar item. The menu shows whether the
container service is running, opens the dashboard window, restarts container
services, and quits ContainerApp.
Most data and resource operations use Apple's ContainerAPIClient,
ContainerResource, and ContainerizationOCI libraries. Service lifecycle
commands such as start and stop are delegated to the installed container CLI.
If the app reports that the CLI cannot be found, install container and make
sure the executable is available on PATH. You can also point the app at a
specific executable by setting CONTAINER_CLI_PATH.
Sources/
ContainerApp/ SwiftUI app entry point
ContainerAppKit/ Shared UI, models, refresh logic, and container actions
Package.swift Swift package manifest
Package.resolved Pinned dependency versions