A native macOS app for managing Apple Containers through a graphical interface. Think of it as a lightweight desktop companion for the container CLI — browse containers, images, volumes, and networks without memorizing commands.
Built with SwiftUI. Requires macOS 26 and Apple Silicon.
Apple's container CLI is powerful, but switching between terminal windows to check container status, read logs, or inspect images gets tedious. This app puts everything in one window with a native macOS interface — sidebar navigation, table views, search, and real-time log streaming.
The app wraps the container CLI rather than using the low-level Containerization framework directly. This means it manages the same containers and images you create from the command line. See ARCHITECTURE.md for more on this decision.
- Containers — List, start, stop, kill, remove, and inspect containers. Auto-refresh to watch state changes. Toggle between running-only and all containers. Read more →
- Images — Browse local images, pull from registries, run new containers, inspect metadata, and delete unused images. Read more →
- Run Configuration — Configure interactive container runs with workspace folder mounts, saved quick mounts for credentials (AWS, Claude Code, SSH, Git), and environment variables. Copy a ready-to-paste CLI command. Read more →
- Volumes & Networks — View and inspect container volumes and networks. Read more →
- Logs — Stream container logs in real-time with follow mode, auto-scroll, and line numbers. Read more →
- System Status — At-a-glance indicator showing whether the container system is running.
- Mac with Apple Silicon (M1 or later)
- macOS 26 beta or later
- Xcode 26 beta or later
- Apple Container CLI installed
Download the latest .pkg from the container releases page and run the installer. This places the container binary at /usr/local/bin/container.
container system startThis launches the background services that manage containers. You'll need to do this once after each reboot (or set it up to start automatically).
git clone https://github.com/ryancormack/apple-containers-ui.git
cd apple-containers-ui/ContainerManager
open ContainerManager.xcodeprojIn Xcode:
- Select your Mac as the run destination
- Press Cmd+R to build and run
Note: The App Sandbox must be disabled for the app to execute the
containerCLI. The project is already configured this way.
If you have containers or images from previous CLI usage, they'll appear immediately. If not, pull an image and run something:
container image pull alpine:latest
container run alpine:latest echo "hello from a container"Then switch back to the app and hit refresh (or enable auto-refresh).
The app auto-detects the container CLI at these paths (in order):
- Custom path set via
UserDefaultskeycliPath /usr/local/bin/container(default install location)/opt/homebrew/bin/container(Homebrew)
The auto-refresh interval defaults to 3 seconds and can be changed via the autoRefreshInterval UserDefaults key.
ContainerManager/
├── App/ # App entry point
├── Models/ # Data models (ContainerInfo, ImageInfo, etc.)
├── Services/ # CLI wrapper and business logic
├── ViewModels/ # State management (@Observable classes)
├── Views/ # SwiftUI views
│ └── Components/ # Reusable UI components
└── Utilities/ # Configuration, formatters
See ARCHITECTURE.md for a detailed explanation of the design and the reasoning behind key decisions.
Contributions are welcome. See CONTRIBUTING.md for guidelines on how to get involved.
This project is licensed under the MIT License. See LICENSE for details.
- apple/container — The CLI tool this app wraps
- apple/containerization — Apple's low-level container framework