Skip to content

Features

Contained edited this page Jun 25, 2026 · 1 revision

Features

A tour of every screen. Sidebar sections are grouped Workloads (Containers, Images, Build), Infra (Volumes, Networks, Registries), and System (System, Templates). Jump to any section with ⌘1–8 — see Keyboard Shortcuts.

Containers

  • A grid of personalized Liquid Glass cards, each with a customizable tint, gradient, icon, nickname, an app-managed health badge, and a selectable live sparkline (CPU / memory / network / disk).
  • Lifecycle: start / stop / restart / delete, individually or as a multi-select batch.
  • Detail (7 tabs): Overview, Logs (streamed), Terminal (a real shell via SwiftTerm), Stats (live), History (persistent metrics + events), Files (browse/copy via cp), Inspect (pretty JSON).
  • Edit form (create or edit-in-place): full container run mapping including an Advanced section — working dir, user/uid/gid, cap-add/drop, DNS, tmpfs, shm-size, ulimit — with a host-bounded CPU picker + memory slider and a live Reveal CLI preview.
  • Customize a card's style per-container or per-image; stored locally (never written as container labels).
  • Healthcheck (app-managed): an exec probe on an interval; the heart badge flips red after consecutive failures, with an optional restart hand-off.

Images

  • List / inspect / run / tag / push / delete / prune / history.
  • Pull with live --progress plain output and Docker Hub search (tap a result to fill the reference).
  • Save to a tar archive and load from one (also via drag-and-drop onto the Images list).

Build

  • A build workspace: context + Dockerfile + tags + build-args, with a streamed BuildKit log. Drag a Dockerfile or folder onto it to start.

Volumes / Networks / Registries

  • Create and delete volumes and networks; inspect any of them as JSON.
  • Registry login (credentials are piped via --password-stdin, never placed in argv) and logout.

System

  • Service status with start / stop / restart, system df, a Prune Center, daemon properties, and a system-logs viewer.
  • Kernel & DNS (privileged): install the recommended kernel; create / list / delete local DNS domains. These may trigger an admin-password prompt handled by the CLI — the app never enters credentials, and exposes the exact command via Reveal CLI.
  • Activity: the persistent, system-wide event log with long-term metric charts.

Templates & Stacks

  • Templates: a gallery of built-in starters (Postgres, Redis, nginx, Alpine) plus your saved run recipes. "Use" prefills the Edit form.
  • Stacks: import a compose.yaml (or drag one in), preview the translated runs, and launch them as a labelled group with app-managed start-order and service_healthy gating.

Command Palette

  • ⌘K opens a fuzzy palette to jump to any section, run a container, or fire common actions entirely from the keyboard.

Menu bar

  • Menu-bar extra — a status item showing the running count with quick lifecycle actions (toggle in Settings).
  • App menus — File (New Container ⌘N, Pull Image, Import Compose), Edit (Find ⌘F focuses search), View (toggle sidebar, Reload ⌘⇧R, Card Size, Show Running Only), Go (⌘1–8), and Help (these wiki pages, issues, source). About and Check for Updates live in the app menu.

Settings

  • Appearance — theme (system/light/dark), accent tint, card size, window backdrop, reduce translucency.
  • General — launch at login, keep in menu bar, crash notifications, the Reveal-CLI gate, refresh interval, history retention + Clear History, CLI path override.
  • Updates — channel picker (Stable / Beta / Nightly), automatic checks, Check for Updates.
  • About — app icon, version, runtime versions, copyright.

Onboarding

  • A Bootstrap screen shown until the container service is reachable: it detects the CLI, surfaces install/start guidance, and starts the service.

Throughout

  • Persistent SwiftData history (events + metrics) feeding the History tab and Activity view.
  • Crash/restart and unhealthy notifications.
  • Accessibility: Reduce Transparency / Reduce Motion are honored, and every icon-only control has a VoiceOver label.

Clone this wiki locally