Skip to content
tdeverx edited this page Jun 27, 2026 · 4 revisions

Contained

A native, SwiftUI-first macOS app for Apple's container CLI — a Liquid Glass control surface for running, customizing, and inspecting 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.

Quick start

git clone https://github.com/tdeverx/contained-app.git
cd contained-app
swift build && ./scripts/bundle.sh && open Contained.app

Prefer a prebuilt app? Grab the latest .dmg from Releases. Full details on Installation.

What's inside

  • Containers — a grid of personalized Liquid Glass cards with live sparklines, full lifecycle, and a 7-tab detail (Overview, Logs, Terminal, Stats, History, Files, Inspect).
  • 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.yaml import 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).
  • App-managed restart & healthcheckscontainer has no native --restart or healthcheck; Contained runs both itself.

See the full tour on Features.

Pages

  • Features — every screen and what it does
  • Run / Edit Form — UI-first mapping of container run flags and compose import choices
  • Keyboard Shortcuts — the full shortcut table
  • Installation — requirements, install, build from source, updates
  • Troubleshooting — common issues and fixes
  • Architecture — how the CLI wrapper, stores, and design system fit together
  • Contributing — layout, conventions, and the pre-PR checklist
  • Release — the maintainer signing / notarization / appcast runbook

Updates

Updates ship in-app via Sparkle across three cumulative channels, 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)

License

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.

Clone this wiki locally