A native, SwiftUI-first macOS app for Apple's container CLI — a Liquid Glass control surface for running and customizing Linux containers on Apple silicon. It covers the everyday Docker-Desktop workflow plus the broader container command surface, without leaving the Mac-native look and feel.
git clone https://github.com/tdeverx/contained-app.git
cd contained-app
swift build && swift test
./Scripts/package.sh app debug
open Contained.appPrefer a prebuilt app? Grab the latest .dmg from Releases. Full details on Installation.
- Containers — a grid of personalized Liquid Glass cards with live sparklines, full lifecycle, and a 6-page detail (Overview, Logs, Terminal, Stats, History, Files).
- Images / Build / Volumes / Networks / Registries / System — pull (with Docker Hub search), build (streamed BuildKit log), tag/push/save/load, filesystem export, volume & network CRUD, registry login, service control,
df, a Prune Center, and guarded kernel/DNS management. - Templates & Compose import — saved run recipes + built-in starters, and
compose.yamlimport that opens editable, prefilled Run forms for each service. - Persistent history — SwiftData-backed events and metrics powering a per-container History tab and a system-wide Activity view (Swift Charts). Contained samples while it is running; it does not install a background collector after you quit.
- App-managed restart & healthchecks —
containerhas no native--restartor healthcheck; Contained runs both itself.
See the full tour on Features.
- Features — overview and links into each feature area
- Installation — requirements, install, build from source, updates
- Keyboard Shortcuts — shortcut gates and current bindings
- Troubleshooting — common issues and fixes
- Creation Workflow — the shared create/edit/search/build front door
- Run / Edit Form — UI-first mapping of
container runflags - Compose Import — compose-to-run-form behavior
- Command Palette — the app-wide command index and palette rules
- Updates — app updates, image updates, channels, and release notes
- Architecture — how the CLI wrapper, stores, and design system fit together
- Design System — shared Liquid Glass components and layout rules
- Contributing — layout, conventions, and the pre-PR checklist
- Release — the maintainer signing / notarization / appcast runbook
Updates ship in-app via Sparkle across three independent branch feeds, selectable in Settings → Updates:
| Channel | What you get |
|---|---|
| Stable | Finished releases. |
| Beta | Pre-release builds, ahead of stable. |
| Nightly | The latest build from every commit (CI). Bleeding edge. (default while pre-1.0) |
The permanent toolbar switches resource pages and opens focused panels for System, Templates, Activity, Settings, and creation workflows. Command palette, Docker Hub search, Compose import, image build workspace, and keyboard shortcuts are opt-in from Settings → Experimental.
Source-available, free for non-commercial use under the PolyForm Noncommercial License 1.0.0. Forks, issues, and pull requests are welcome — the only thing off the table is commercial use.