A lightweight, read-only macOS menu-bar monitor for Apple's
container runtime. It shows your
containers, volumes, and networks at a glance — live stats, ports, mounts,
IPs, and more — without ever mutating runtime state.
Unofficial project. Not affiliated with or endorsed by Apple. It observes the installed
containerCLI as an external process; it does not link Apple'scontainerSwift package and does not run a background helper service.
| Containers | Volumes | Networks |
|---|---|---|
![]() |
![]() |
![]() |
- Containers — running state, image, CPU %, memory, network/block I/O,
process count, published ports, command, resource limits, networks, IP
addresses, mounts, and labels. Plus an on-demand logs viewer (last 200
lines, with a
--boottoggle for VM/kernel init output). - Images — name/tag, on-disk size, platform, short digest, and age; detail panel adds the full digest, entrypoint, command, exposed ports, env, and layer count.
- Volumes — driver, format, size, and source path; select one to
inspectfor the full mount path, options, labels, and creation date. - Networks — mode, subnet, gateway, and plugin; select one to
inspectfor the IPv6 subnet and labels, with an attached-containers deep-link. - Disk usage — a header widget summarizing images/containers/volumes on-disk
usage (
system df). - Menu-bar glance — running/total count without opening the window.
- Efficient polling — the expensive
statscall is skipped on background polls unless the container set changes; 5 s when open, 30 s when closed. - Resilient parsing — defends against CLI output shape drift and degrades to the last good snapshot on error.
- macOS 13 (Ventura) or later, Apple silicon recommended.
- Apple
containerinstalled and on a standard path (/usr/local/bin,/opt/homebrew/bin,/usr/bin, orPATH). Start it withcontainer system start. - To build from source: a Swift 5.9+ toolchain (Xcode 15+ / Command Line Tools).
- Download
ContainerMenuBar-<version>.dmgfrom the latest release. - Open the DMG and drag ContainerMenuBar into Applications.
- Launch it from Applications or Spotlight.
The running version is shown in the window header and in Finder → Get Info.
Gatekeeper: notarized releases open with a double-click. If a build is not yet notarized, the first launch shows a warning — right-click the app → Open → Open. See SECURITY.md.
git clone https://github.com/hurryingauto3/container-mb.git
cd container-mb
make install # builds a release bundle and copies it to /Applications
make dmg # or build a distributable dist/ContainerMenuBar-<version>.dmg- Install
containerand start it:container system start(see apple/container). - Install ContainerMenuBar from the DMG (above).
- Click the box icon (
ctr N) in the menu bar to open the dashboard, then use the segmented control to switch between Containers, Images, Volumes, and Networks. It refreshes automatically; the refresh button forces an update.
make build # swift build
make test # run the smoke-test suite
make run # build and launch the app
make package # build a signed dist/ContainerMenuBar.app
make dmg # build a distributable dist/ContainerMenuBar-<version>.dmg
make install # package and copy to /Applications
make cleanIt is a menu-bar app: look for the box icon in the top-right menu bar (it shows
ctr <running>). Click it to open the dashboard; switch between Containers, Images, Volumes, and Networks with the segmented control.
The version is defined once in
Sources/ContainerCore/AppVersion.swift
and flows into the bundle's CFBundleShortVersionString, the in-app header, and
the git release tag. The project follows Semantic Versioning
and a Keep a Changelog-style
CHANGELOG.md.
See CLAUDE.md for a detailed map. In short: a UI-free ContainerCore
library (models, CLI client, polling) drives a thin AppKit/SwiftUI shell. The
CLI is treated as the stable API boundary; all parsing is centralized and
defensive.
Contributions are welcome — please read CONTRIBUTING.md and our Code of Conduct.
Found a vulnerability? Please follow the process in SECURITY.md; do not open a public issue for security reports.
Licensed under the Apache License 2.0. See NOTICE for attribution.


