Skip to content

tonycoco/ContainerApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ContainerApp

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.

Features

  • 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

Requirements

  • macOS 26.0 or newer
  • Swift 6.0 or newer
  • Apple's container CLI available on PATH, discoverable through macOS path files such as /etc/paths or /etc/paths.d, or configured with CONTAINER_CLI_PATH

This project currently pins:

  • apple/container 0.12.3
  • apple/containerization 0.31.0

Build and Run

Clone the repository, then build and run with Swift Package Manager:

swift build
swift run ContainerApp

You can also open Package.swift in Xcode and run the ContainerApp executable target.

Using the App

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.

Backend Notes

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.

Project Structure

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

About

A native macOS SwiftUI dashboard for Apple's `container` runtime.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages