Skip to content

Installation

Contained edited this page Jun 25, 2026 · 2 revisions

Installation

Requirements

  • macOS 26 or later (Apple silicon)
  • Apple's container CLI 1.0.0 installed and on PATH
  • For building from source: Xcode 26 / Swift 6.2+

Install the app

Download the latest Contained.dmg from Releases, open it, and drag Contained to Applications.

On first launch, the onboarding screen checks for the container CLI and the runtime service, and helps you start it.

If the CLI isn't found, set its path in Settings → General → Container CLI path, or install it from the container releases.

Build from source

This is a Swift Package — there is no .xcodeproj.

git clone https://github.com/tdeverx/contained-app.git
cd contained-app
open Package.swift        # open in Xcode

Or from the command line:

swift build              # debug build
swift test               # run the unit tests
./scripts/bundle.sh      # assemble a runnable Contained.app (release by default)
open Contained.app

scripts/bundle.sh [debug|release] compiles the executable and assembles the .app (Info.plist, icon, embedded Sparkle). The .app is a build artifact and is git-ignored.

Updates

Contained updates itself in-app via Sparkle. Pick a channel 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)

Channels are cumulative — Nightly still receives Beta and Stable, so you're never stranded behind a lagging channel. The updater is inert in development builds.

Uninstall

Quit Contained, drag it from Applications to the Trash. To remove preferences and local history:

defaults delete com.contained.app
rm -rf ~/Library/Application\ Support/Contained

(Your containers, images, and volumes belong to the container runtime and are untouched.)

Clone this wiki locally