Skip to content

ryancormack/apple-containers-ui

Repository files navigation

Container Manager

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.

Why This Exists

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.

Features

  • 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.

Prerequisites

  • Mac with Apple Silicon (M1 or later)
  • macOS 26 beta or later
  • Xcode 26 beta or later
  • Apple Container CLI installed

Getting Started

1. Install the Container CLI

Download the latest .pkg from the container releases page and run the installer. This places the container binary at /usr/local/bin/container.

2. Start the Container System

container system start

This launches the background services that manage containers. You'll need to do this once after each reboot (or set it up to start automatically).

3. Build and Run the App

git clone https://github.com/ryancormack/apple-containers-ui.git
cd apple-containers-ui/ContainerManager
open ContainerManager.xcodeproj

In Xcode:

  1. Select your Mac as the run destination
  2. Press Cmd+R to build and run

Note: The App Sandbox must be disabled for the app to execute the container CLI. The project is already configured this way.

4. Verify It Works

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).

Configuration

The app auto-detects the container CLI at these paths (in order):

  1. Custom path set via UserDefaults key cliPath
  2. /usr/local/bin/container (default install location)
  3. /opt/homebrew/bin/container (Homebrew)

The auto-refresh interval defaults to 3 seconds and can be changed via the autoRefreshInterval UserDefaults key.

Project Structure

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.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines on how to get involved.

License

This project is licensed under the MIT License. See LICENSE for details.

Related Projects

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages