SKILL·95200A

apple-container

sanjay3290
Updated 2 days ago
335
36
335
View on GitHub
Metaaidesign

About

This skill provides information about Apple's open-source `container` CLI for building and running OCI/Linux containers on Apple-silicon macOS. It enables container management without requiring a Docker daemon by using lightweight per-container VMs. Use this skill when working with Apple's native container tool for macOS development instead of Docker or Podman.

Quick Install

Claude Code

Recommended
Primary
npx skills add sanjay3290/ai-skills -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/sanjay3290/ai-skills
Git CloneAlternative
git clone https://github.com/sanjay3290/ai-skills.git ~/.claude/skills/apple-container

Copy and paste this command in Claude Code to install this skill

Documentation

Apple container

Apple's container is an open-source CLI for building, running, and managing OCI/Linux containers on Apple-silicon Macs. Each container runs inside its own lightweight virtual machine (backed by the Containerization framework and the Virtualization API), so there is no shared daemon like Docker — services run per-user via launchd. Images are standard OCI artifacts, so they interoperate with Docker registries and other OCI tooling. The CLI is deliberately Docker-like (container run, container build, and image ops under container image push/pull), but it is a distinct tool: do not assume Docker command paths, flags, defaults, or daemon behavior carry over (e.g. there is no container images/push/pull top-level command — image verbs live under container image).

Requirements

  • Apple silicon only (M1 or later). Intel Macs are not supported.
  • macOS 26 (Tahoe) is the officially supported target. The maintainers do not support older macOS and typically will not fix issues that can't be reproduced on 26. The binary still runs on macOS 15 (Sequoia) but with reduced networking: only the single default subnet is available, and the container network group and --network flag error out. macOS-26-gated features are called out throughout the reference files.
  • Version: this skill documents the 1.0.0 release (the fullest feature set). The machine group, container cp, container export, container prune, container image prune, container registry list, and container system version were added in 1.0.0 (not in 0.7.1) — features that postdate 0.7.1 are flagged (1.0.0+) in the reference files. Run container --version and container <group> --help to see what your installed build supports.
  • Install by downloading the signed .pkg installer from the project's GitHub releases (apple/container) and running it. See references/concepts.md for the full requirements/compatibility matrix and how the VM-per-container model works.

Setup

Install the signed package, then start the background services once:

  1. Download the latest signed installer .pkg from the GitHub releases page.
  2. Double-click the downloaded package and follow the prompts, entering your admin password so it can place files under /usr/local. (There is no documented CLI installer invocation — installation is via the GUI package.)
  3. Start the services and confirm they are healthy:
# Start the container services (container-apiserver + helpers via launchd). On first run it
# offers to install the default Linux kernel — accept it, or start non-interactively with
# `--disable-kernel-install` and add a kernel later via `container system kernel set`.
container system start

# Verify services are healthy
container system status

container system start must have run before any container/image/build command works — a connection/XPC error almost always means the services are stopped, so run it again. Stop and deregister the launchd services with container system stop (which takes only -p/--prefix). The startup flags for container system start (-a/--app-root, --install-root, --log-root, --enable-kernel-install/--disable-kernel-install, --timeout) are in references/configuration.md.

Upgrade / downgrade / uninstall use helper scripts in /usr/local/bin (stop first with container system stop): update-container.sh (add -v <version> to pin a version), and uninstall-container.sh -d to remove user data or -k to keep it. Full recipes in references/workflows.md.

Command groups at a glance

Invoke everything as container <group> <subcommand>. Container-lifecycle verbs (run, create, start, stop, exec, logs, inspect, list/ls, delete/rm, kill, stats) and build are top-level; image operations like push, pull, and tag live under container image. Run container <group> --help for exact flags, or read references/commands.md for the exhaustive matrix.

GroupWhat it doesExample
container lifecycleCreate, start, run, stop, exec, inspect, list, remove containerscontainer run --rm -it docker.io/library/alpine sh
buildBuild an OCI image from a Dockerfile in the builder VMcontainer build -t myapp:latest .
imageList, tag, inspect, remove, load/save, prune local images; push/pull to registriescontainer image ls
registryAuthenticate (login/logout/list) to OCI registriescontainer registry login ghcr.io
systemStart/stop/status services, logs, disk usage (df), DNS, kernel, propertiescontainer system status
networkCreate/list/remove container networks (macOS 26 only)container network create mynet
volumeCreate/list/inspect/remove persistent volumescontainer volume create data
builderManage the builder VM that runs container build (start/stop/status)container builder status
machine (1.0.0+)Persistent Linux "machine" environments (added in 1.0.0)container machine --help

Exact subcommand names, aliases, arguments, and flags for each group live in references/commands.md — consult it before running an unfamiliar command rather than guessing Docker-equivalent syntax.

Navigating this skill

Read the reference file that matches the task; do not guess flags or behavior.

  • references/commands.md — exhaustive CLI reference: every command group, subcommand, alias, argument, and flag. Read this to construct any concrete container ... invocation, or to confirm a flag exists before using it.
  • references/concepts.md — architecture (VM-per-container, Containerization framework), system requirements and macOS 15 vs 26 differences, networking model, per-container IPs, security model, and a Docker-vs-container comparison. Read this to explain how or why something works, or when a Docker mental model gives the wrong answer.
  • references/configuration.md — the system service, config.toml / property model, default kernel, DNS domains, default registry, builder resources, and machine settings. Read this to change defaults, tune CPU/memory, point at a private registry, or manage the kernel.
  • references/workflows.md — copy-pasteable task recipes (run an image, build & push, wire up local DNS, mount a volume, expose ports) and troubleshooting for common failures. Read this first when the user wants to accomplish a concrete end-to-end task.

Key rules

  • This is not Docker. The CLI resembles Docker, but flags, defaults, and daemon behavior differ. Verify syntax in references/commands.md instead of assuming Docker equivalence.
  • Always ensure services are up first. Run container system start (and confirm with container system status) before any container/image/build command; connection errors usually mean the services are stopped.
  • Images are standard OCI artifacts and interoperate with Docker registries and other OCI tools. Image references that omit a registry default to docker.io (configurable via the registry.domain property — see references/configuration.md).
  • Each container gets its own IP address on its network (one lightweight VM per container). There is no shared Docker bridge; reach a container directly by its IP, or set up a local DNS domain (container system dns create ..., admin required) for name-based access.
  • container network requires macOS 26. On macOS 15 only the single default subnet is available and the network command group is unavailable — see references/concepts.md.
  • Use fully-qualified image references when precision matters (e.g. docker.io/library/alpine rather than bare alpine) to avoid ambiguity about the source registry.

GitHub Repository

sanjay3290/ai-skills
Path: skills/apple-container
0
agent-skillsai-skillsatlassianazure-devopsclaude-codeclaude-skills
FAQ

Frequently asked questions

What is the apple-container skill?

apple-container is a Claude Skill by sanjay3290. Skills package instructions and resources that Claude loads on demand, so Claude can perform apple-container-related tasks without extra prompting.

How do I install apple-container?

Use the install commands on this page: add apple-container to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.

What category does apple-container belong to?

apple-container is in the Meta category, tagged ai and design.

Is apple-container free to use?

Yes. apple-container is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.

Related Skills

content-collections
Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill
polymarket
Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill
creating-opencode-plugins
Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill
sglang
Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill