opencode-skills-collection 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +24 -1
  2. package/bundled-skills/007/SKILL.md +2 -2
  3. package/bundled-skills/10-andruia-skill-smith/SKILL.md +1 -1
  4. package/bundled-skills/agent-squad/SKILL.md +5 -0
  5. package/bundled-skills/agent-squad/alex/SKILL.md +3 -0
  6. package/bundled-skills/agent-squad/aria/SKILL.md +3 -0
  7. package/bundled-skills/agent-squad/dep/SKILL.md +3 -0
  8. package/bundled-skills/agent-squad/luna/SKILL.md +4 -1
  9. package/bundled-skills/agent-squad/mason/SKILL.md +3 -0
  10. package/bundled-skills/agent-squad/max/SKILL.md +3 -0
  11. package/bundled-skills/agent-squad/quinn/SKILL.md +3 -0
  12. package/bundled-skills/agent-squad/rex/SKILL.md +3 -0
  13. package/bundled-skills/angular/metadata.json +1 -1
  14. package/bundled-skills/angular-best-practices/metadata.json +1 -1
  15. package/bundled-skills/angular-state-management/metadata.json +1 -1
  16. package/bundled-skills/angular-ui-patterns/metadata.json +1 -1
  17. package/bundled-skills/antigravity-skill-orchestrator/SKILL.md +2 -2
  18. package/bundled-skills/apify-actor-development/SKILL.md +2 -2
  19. package/bundled-skills/apple-container/SKILL.md +165 -0
  20. package/bundled-skills/apple-container/references/commands.md +1593 -0
  21. package/bundled-skills/apple-container/references/concepts.md +294 -0
  22. package/bundled-skills/apple-container/references/configuration.md +499 -0
  23. package/bundled-skills/apple-container/references/workflows.md +498 -0
  24. package/bundled-skills/ask-copilot/SKILL.md +112 -0
  25. package/bundled-skills/auto-research/SKILL.md +126 -0
  26. package/bundled-skills/brooks-lint/SKILL.md +1 -1
  27. package/bundled-skills/browser-harness/references/install.md +3 -1
  28. package/bundled-skills/chrome-extension-developer/SKILL.md +1 -1
  29. package/bundled-skills/clean-code-guard/SKILL.md +184 -0
  30. package/bundled-skills/clean-code-guard/references/ai-failure-modes.md +345 -0
  31. package/bundled-skills/clean-code-guard/references/comments-and-formatting.md +115 -0
  32. package/bundled-skills/clean-code-guard/references/dry-kiss-yagni.md +133 -0
  33. package/bundled-skills/clean-code-guard/references/naming-and-functions.md +187 -0
  34. package/bundled-skills/clean-code-guard/references/review-checklist.md +150 -0
  35. package/bundled-skills/clean-code-guard/references/solid.md +280 -0
  36. package/bundled-skills/clean-code-guard/references/sources.md +47 -0
  37. package/bundled-skills/cloudflare-security-audit/SKILL.md +137 -0
  38. package/bundled-skills/cloudflare-security-audit/references/AI-AND-LLM.md +67 -0
  39. package/bundled-skills/cloudflare-security-audit/references/ATTACK-CLASSES.md +116 -0
  40. package/bundled-skills/cloudflare-security-audit/references/CLIENT-SIDE.md +67 -0
  41. package/bundled-skills/cloudflare-security-audit/references/HUNTING.md +110 -0
  42. package/bundled-skills/cloudflare-security-audit/references/MEMORY-SAFETY-AND-BINARY.md +58 -0
  43. package/bundled-skills/cloudflare-security-audit/references/RECONNAISSANCE.md +46 -0
  44. package/bundled-skills/cloudflare-security-audit/references/VALIDATION-AND-REPORTING.md +109 -0
  45. package/bundled-skills/cloudflare-security-audit/references/WEB-PROTOCOL-AND-AUTH.md +85 -0
  46. package/bundled-skills/cloudflare-security-audit/resources/report-schema.json +210 -0
  47. package/bundled-skills/comfyui-gateway/references/troubleshooting.md +1 -1
  48. package/bundled-skills/commit/SKILL.md +2 -1
  49. package/bundled-skills/deepapi/SKILL.md +6 -6
  50. package/bundled-skills/docs/README.md +1 -1
  51. package/bundled-skills/docs/contributors/quality-bar.md +1 -1
  52. package/bundled-skills/docs/contributors/security-guardrails.md +1 -1
  53. package/bundled-skills/docs/integrations/jetski-cortex.md +5 -5
  54. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +3 -3
  55. package/bundled-skills/docs/maintainers/ci-drift-fix.md +7 -5
  56. package/bundled-skills/docs/maintainers/merge-batch.md +24 -7
  57. package/bundled-skills/docs/maintainers/pr-autonomy.md +89 -0
  58. package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +1 -1
  59. package/bundled-skills/docs/maintainers/release-process.md +9 -9
  60. package/bundled-skills/docs/maintainers/repo-growth-seo.md +5 -5
  61. package/bundled-skills/docs/maintainers/skills-date-tracking.md +1 -1
  62. package/bundled-skills/docs/maintainers/skills-update-guide.md +2 -2
  63. package/bundled-skills/docs/users/{antigravity-awesome-skills-vs-awesome-claude-skills.md → agentic-awesome-skills-vs-awesome-claude-skills.md} +5 -5
  64. package/bundled-skills/docs/users/ai-agent-skills.md +4 -4
  65. package/bundled-skills/docs/users/best-claude-code-skills-github.md +3 -3
  66. package/bundled-skills/docs/users/best-cursor-skills-github.md +3 -3
  67. package/bundled-skills/docs/users/bundles.md +56 -57
  68. package/bundled-skills/docs/users/claude-code-skills.md +6 -6
  69. package/bundled-skills/docs/users/codex-cli-skills.md +5 -5
  70. package/bundled-skills/docs/users/cursor-skills.md +3 -3
  71. package/bundled-skills/docs/users/faq.md +27 -15
  72. package/bundled-skills/docs/users/gemini-cli-skills.md +4 -4
  73. package/bundled-skills/docs/users/getting-started.md +22 -12
  74. package/bundled-skills/docs/users/kiro-integration.md +7 -7
  75. package/bundled-skills/docs/users/plugins.md +8 -9
  76. package/bundled-skills/docs/users/security-skills.md +1 -1
  77. package/bundled-skills/docs/users/skills-vs-mcp-tools.md +1 -1
  78. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +3 -4
  79. package/bundled-skills/docs/users/usage.md +9 -9
  80. package/bundled-skills/docs/users/visual-guide.md +7 -7
  81. package/bundled-skills/docs/users/windows-truncation-recovery.md +1 -1
  82. package/bundled-skills/docs/users/workflows.md +1 -1
  83. package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +1 -1
  84. package/bundled-skills/docs/vietnamese/FAQ.vi.md +15 -8
  85. package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +12 -5
  86. package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +1 -1
  87. package/bundled-skills/docs/vietnamese/README.vi.md +21 -17
  88. package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +1 -1
  89. package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +2 -2
  90. package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +1 -1
  91. package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +8 -8
  92. package/bundled-skills/docs-guard/SKILL.md +109 -0
  93. package/bundled-skills/docs-guard/references/code-samples.md +46 -0
  94. package/bundled-skills/docs-guard/references/docstrings.md +60 -0
  95. package/bundled-skills/docs-guard/references/review-checklist.md +45 -0
  96. package/bundled-skills/docs-guard/references/sources.md +22 -0
  97. package/bundled-skills/docs-guard/references/verification.md +51 -0
  98. package/bundled-skills/efficient-web-research/SKILL.md +4 -0
  99. package/bundled-skills/electron-development/SKILL.md +1 -1
  100. package/bundled-skills/event-staffing-compliance/SKILL.md +3 -0
  101. package/bundled-skills/event-staffing-ordering/SKILL.md +3 -0
  102. package/bundled-skills/feature-tracking/SKILL.md +222 -0
  103. package/bundled-skills/flutter-expert/SKILL.md +6 -1
  104. package/bundled-skills/flutter-expert/resources/implementation-playbook.md +214 -0
  105. package/bundled-skills/gemini-deep-research/README.md +246 -0
  106. package/bundled-skills/gemini-deep-research/SKILL.md +136 -0
  107. package/bundled-skills/gemini-deep-research/requirements.txt +2 -0
  108. package/bundled-skills/gemini-deep-research/scripts/research.py +692 -0
  109. package/bundled-skills/git-pushing/SKILL.md +21 -4
  110. package/bundled-skills/git-pushing/scripts/smart_commit.sh +206 -11
  111. package/bundled-skills/go-in-depth/scripts/workflow-script.js +4 -1
  112. package/bundled-skills/grok-build/SKILL.md +167 -0
  113. package/bundled-skills/grok-build/references/cli.md +99 -0
  114. package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +1 -1
  115. package/bundled-skills/idea-autopsy/SKILL.md +147 -0
  116. package/bundled-skills/it-manager-hospital/README.md +1 -1
  117. package/bundled-skills/it-manager-pro/README.md +1 -1
  118. package/bundled-skills/itil-expert/README.md +1 -1
  119. package/bundled-skills/langgraph/SKILL.md +1 -1
  120. package/bundled-skills/linkedin-content-generator/SKILL.md +1 -1
  121. package/bundled-skills/lint-and-validate/scripts/lint_runner.py +23 -23
  122. package/bundled-skills/lint-and-validate/scripts/type_coverage.py +30 -30
  123. package/bundled-skills/logic-lens/SKILL.md +1 -1
  124. package/bundled-skills/lore/LICENSE +21 -0
  125. package/bundled-skills/lore/README.md +386 -0
  126. package/bundled-skills/lore/README.zh-CN.md +386 -0
  127. package/bundled-skills/lore/SKILL.md +453 -0
  128. package/bundled-skills/lore/WORKFLOWS.md +216 -0
  129. package/bundled-skills/lore/WORKFLOWS.zh-CN.md +216 -0
  130. package/bundled-skills/lore/references/audit-template.md +60 -0
  131. package/bundled-skills/lore/references/compatibility.md +228 -0
  132. package/bundled-skills/lore/references/config.md +125 -0
  133. package/bundled-skills/lore/references/entry-format.md +70 -0
  134. package/bundled-skills/lore/references/history-command.md +106 -0
  135. package/bundled-skills/lore/references/monorepo-detection.md +78 -0
  136. package/bundled-skills/lore/references/platform-mirrors.md +377 -0
  137. package/bundled-skills/lore/references/stale-new-markers.md +62 -0
  138. package/bundled-skills/lore/references/summary-template.md +98 -0
  139. package/bundled-skills/lore/scripts/README.md +54 -0
  140. package/bundled-skills/lore/scripts/README.zh-CN.md +54 -0
  141. package/bundled-skills/lore/scripts/find_duplicates.py +211 -0
  142. package/bundled-skills/lore/scripts/find_stale.py +116 -0
  143. package/bundled-skills/lore/scripts/history.py +527 -0
  144. package/bundled-skills/lore/scripts/id_hash.py +32 -0
  145. package/bundled-skills/lore/scripts/list_entries.py +183 -0
  146. package/bundled-skills/lovable-cleanup/SKILL.md +3 -3
  147. package/bundled-skills/makepad-splash/SKILL.md +1 -1
  148. package/bundled-skills/mmx-cli/SKILL.md +14 -1
  149. package/bundled-skills/monopoly/SKILL.md +5 -0
  150. package/bundled-skills/monopoly/patterns/SKILL.md +4 -0
  151. package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +4 -0
  152. package/bundled-skills/monopoly/security-checklist/SKILL.md +4 -0
  153. package/bundled-skills/monopoly/tech-matrix/SKILL.md +4 -0
  154. package/bundled-skills/mtls-configuration/SKILL.md +1 -1
  155. package/bundled-skills/network-101/SKILL.md +4 -5
  156. package/bundled-skills/nika/SKILL.md +270 -0
  157. package/bundled-skills/not-a-vibe-coder/SKILL.md +4 -0
  158. package/bundled-skills/ontoly-software-graph/SKILL.md +160 -0
  159. package/bundled-skills/openclaw-github-repo-commander/SKILL.md +1 -1
  160. package/bundled-skills/pilot-protocol/SKILL.md +6 -3
  161. package/bundled-skills/postgres-readonly-queries/README.md +77 -0
  162. package/bundled-skills/postgres-readonly-queries/SKILL.md +152 -0
  163. package/bundled-skills/postgres-readonly-queries/connections.example.json +34 -0
  164. package/bundled-skills/postgres-readonly-queries/requirements.txt +1 -0
  165. package/bundled-skills/postgres-readonly-queries/scripts/query.py +262 -0
  166. package/bundled-skills/pptx-deck-creation/SKILL.md +275 -0
  167. package/bundled-skills/pptx-deck-creation/references/audit-checklist.md +156 -0
  168. package/bundled-skills/pptx-deck-creation/references/design-profiles.md +96 -0
  169. package/bundled-skills/pptx-deck-creation/references/python-snippets.md +150 -0
  170. package/bundled-skills/pptx-deck-creation/references/reference-deck-analysis.md +91 -0
  171. package/bundled-skills/pptx-deck-creation/references/visual-asset-adapters.md +158 -0
  172. package/bundled-skills/privilege-escalation-methods/SKILL.md +1 -1
  173. package/bundled-skills/product-decision-agent/SKILL.md +94 -0
  174. package/bundled-skills/product-decision-agent/agents/openai.yaml +7 -0
  175. package/bundled-skills/product-decision-agent/references/methodology-basis.md +232 -0
  176. package/bundled-skills/product-decision-agent/references/product-playbooks.md +813 -0
  177. package/bundled-skills/product-decision-agent/references/reasoning-engine.md +289 -0
  178. package/bundled-skills/product-decision-agent/references/response-examples.md +279 -0
  179. package/bundled-skills/product-decision-agent/scripts/quality_gate.py +221 -0
  180. package/bundled-skills/product-decision-agent/scripts/test_quality_gate.py +94 -0
  181. package/bundled-skills/pytest-skill/reference/playbook.md +358 -0
  182. package/bundled-skills/quit-sponsor/SKILL.md +96 -0
  183. package/bundled-skills/rclone-cli/references/providers/s3.md +1 -1
  184. package/bundled-skills/security-and-hardening/SKILL.md +1 -1
  185. package/bundled-skills/semgrep-rule-creator/SKILL.md +6 -6
  186. package/bundled-skills/skill-creator/README.md +3 -3
  187. package/bundled-skills/skill-creator/SKILL.md +8 -4
  188. package/bundled-skills/skill-creator/scripts/quick_validate.py +1 -1
  189. package/bundled-skills/sql-injection-testing/SKILL.md +4 -4
  190. package/bundled-skills/subagent-orchestrator/README.md +1 -1
  191. package/bundled-skills/super-code/bash/SKILL.md +3 -0
  192. package/bundled-skills/super-code/c/SKILL.md +3 -0
  193. package/bundled-skills/super-code/cpp/SKILL.md +3 -0
  194. package/bundled-skills/super-code/csharp/SKILL.md +3 -0
  195. package/bundled-skills/super-code/dart/SKILL.md +3 -0
  196. package/bundled-skills/super-code/elixir/SKILL.md +3 -0
  197. package/bundled-skills/super-code/go/SKILL.md +3 -0
  198. package/bundled-skills/super-code/java/SKILL.md +3 -0
  199. package/bundled-skills/super-code/kotlin/SKILL.md +3 -0
  200. package/bundled-skills/super-code/php/SKILL.md +3 -0
  201. package/bundled-skills/super-code/python/SKILL.md +3 -0
  202. package/bundled-skills/super-code/ruby/SKILL.md +3 -0
  203. package/bundled-skills/super-code/rust/SKILL.md +3 -0
  204. package/bundled-skills/super-code/scala/SKILL.md +3 -0
  205. package/bundled-skills/super-code/swift/SKILL.md +3 -0
  206. package/bundled-skills/super-code/typescript/SKILL.md +3 -0
  207. package/bundled-skills/telegram-bot-messaging/README.md +185 -0
  208. package/bundled-skills/telegram-bot-messaging/SKILL.md +101 -0
  209. package/bundled-skills/telegram-bot-messaging/scripts/telegram.sh +420 -0
  210. package/bundled-skills/test-guard/SKILL.md +132 -0
  211. package/bundled-skills/test-guard/references/jest.md +50 -0
  212. package/bundled-skills/test-guard/references/llm-app-testing.md +40 -0
  213. package/bundled-skills/test-guard/references/phpunit.md +56 -0
  214. package/bundled-skills/test-guard/references/pytest.md +65 -0
  215. package/bundled-skills/trading-ledger/SKILL.md +11 -3
  216. package/bundled-skills/uizze-ui-research/SKILL.md +93 -0
  217. package/bundled-skills/vibe-code-auditor/SKILL.md +1 -1
  218. package/bundled-skills/vibecode-production-qa-validator/SKILL.md +1 -1
  219. package/bundled-skills/videodb/scripts/ws_listener.py +29 -15
  220. package/bundled-skills/voice-ai-engine-development/README.md +1 -1
  221. package/bundled-skills/vulnerability-scanner/SKILL.md +1 -1
  222. package/bundled-skills/warehouse/SKILL.md +154 -0
  223. package/bundled-skills/woo-guard/SKILL.md +113 -0
  224. package/bundled-skills/woo-guard/references/checkout-and-money.md +64 -0
  225. package/bundled-skills/woo-guard/references/hpos-and-crud.md +87 -0
  226. package/bundled-skills/woo-guard/references/review-checklist.md +44 -0
  227. package/bundled-skills/woo-guard/references/sources.md +17 -0
  228. package/bundled-skills/wp-guard/SKILL.md +119 -0
  229. package/bundled-skills/wp-guard/references/i18n.md +88 -0
  230. package/bundled-skills/wp-guard/references/performance.md +70 -0
  231. package/bundled-skills/wp-guard/references/review-checklist.md +57 -0
  232. package/bundled-skills/wp-guard/references/security.md +100 -0
  233. package/bundled-skills/wp-guard/references/sources.md +27 -0
  234. package/bundled-skills/writing-skills/gotchas.md +1 -1
  235. package/bundled-skills/writing-skills/references/standards/metadata-standard.md +1 -1
  236. package/bundled-skills/x-twitter-scraper/SKILL.md +14 -32
  237. package/bundled-skills/xss-html-injection/SKILL.md +3 -3
  238. package/bundled-skills/youtube-seo-optimizer/SKILL.md +1 -1
  239. package/bundled-skills/youtube-summarizer/CHANGELOG.md +2 -2
  240. package/package.json +1 -1
  241. package/skills_index.json +273 -0
@@ -0,0 +1,294 @@
1
+ # `container` — Concepts & Architecture
2
+
3
+ Mental model for Apple's `container`: the one-VM-per-container design, the process
4
+ topology, platform requirements, networking, images/storage, and the security/isolation
5
+ model. Read this to explain *how* or *why* something works, or when a Docker mental model
6
+ gives the wrong answer. For concrete flags see `references/commands.md`; for defaults,
7
+ `config.toml`, and the machine settings see `references/configuration.md`; for end-to-end
8
+ recipes see `references/workflows.md`.
9
+
10
+ Sources: Apple's `docs/technical-overview.md`, `README.md`, `docs/container-machine.md`,
11
+ `SECURITY.md`, and `BUILDING.md`, as of the **1.0.0** release. For behavior on a specific
12
+ version, open the matching tag on the
13
+ [release page](https://github.com/apple/container/releases).
14
+
15
+ > **Not Docker.** The CLI is deliberately Docker-like (`container run`, `container build`, image
16
+ > ops under `container image`), but `container` is a distinct tool with a different runtime model.
17
+ > Do not assume Docker command paths, flags, defaults, or daemon behavior carry over (there is no
18
+ > `container images`/`push`/`pull` top-level command) — verify in `references/commands.md`.
19
+
20
+ ---
21
+
22
+ ## 1. What `container` is — one lightweight VM per container
23
+
24
+ `container` builds and runs standard **OCI/Linux containers** on **Apple-silicon** Macs. It's
25
+ written in Swift and built on Apple's open-source
26
+ [Containerization](https://github.com/apple/containerization) package for low-level container,
27
+ image, and process management.
28
+
29
+ The defining design choice: **each container you create runs inside its own dedicated
30
+ lightweight Linux VM.** This is the opposite of the usual macOS approach (Docker Desktop,
31
+ Podman, Lima), where a *single* long-lived Linux VM hosts a daemon and *all* containers share
32
+ that one kernel via namespaces.
33
+
34
+ Each per-container VM boots a **minimal Linux** — a small set of core utilities and dynamic
35
+ libraries plus a `vminitd` init — rather than a full userland. Consequences of the model:
36
+
37
+ | Property | What the per-container VM gives you |
38
+ |----------|-------------------------------------|
39
+ | **Security** | Every container has the isolation of a *full VM*, not just kernel namespaces. The minimal guest shrinks the attack surface and resource use. |
40
+ | **Privacy** | Mount **only the host data a given container needs** into that container's VM. A shared VM forces you to mount everything up front so it can be re-mounted selectively; per-container VMs avoid that broad exposure. |
41
+ | **Performance** | Lower memory than a full VM, with **boot times comparable to** containers inside a shared VM (sub-second in practice). |
42
+ | **Interop** | Consumes and produces standard **OCI images**, so images move freely to/from Docker registries and other OCI tooling. |
43
+
44
+ There is **no shared daemon** like `dockerd`. Instead, per-user background services run under
45
+ `launchd` and a runtime helper is launched **per container** (see §2).
46
+
47
+ ---
48
+
49
+ ## 2. Architecture — CLI, API server, and helper services
50
+
51
+ You drive everything through the **`container` CLI**. The CLI uses a **client library**
52
+ (`ContainerClient`) that talks over **XPC** to `container-apiserver` and its helpers.
53
+
54
+ ```
55
+ container CLI
56
+ └── ContainerClient library ──XPC──► container-apiserver (launchd launch agent)
57
+ ├──► container-core-images ──► local content store
58
+ ├──► container-network-vmnet ──► virtual network (vmnet)
59
+ ├──► builder (buildkit) ──► image builds
60
+ └──► container-runtime-linux (one instance per container)
61
+ └── my-web-server (that container's Linux VM)
62
+ ```
63
+
64
+ | Component | Role | Lifecycle |
65
+ |-----------|------|-----------|
66
+ | `container` CLI + `ContainerClient` | Command entry point; talks to the apiserver over XPC. | Runs per invocation. |
67
+ | `container-apiserver` | **launchd launch agent** exposing the client APIs for container and network resources. Launches the helpers below. | Started by `container system start`, torn down by `container system stop`. |
68
+ | `container-core-images` | XPC helper exposing the **image-management API**; owns the **local content store**. | Started by the apiserver. |
69
+ | `container-network-vmnet` | XPC helper managing the **virtual network** via the vmnet framework; allocates container IPs. | Started by the apiserver. |
70
+ | `builder` (`buildkit`) | Utility VM that runs `container build`; communicates over gRPC. | On demand; runs as a container named `buildkit`. |
71
+ | `container-runtime-linux` | Container **runtime helper** — **one instance per container** — exposing the management API for that specific container's VM. | One per running container. |
72
+
73
+ `container system` is the control plane for this topology: `start`/`stop` bring the
74
+ apiserver and helpers up/down, `status` health-checks them, and `logs`/`df`/`kernel`/`dns`/
75
+ `property` manage system-wide state. **No container, image, or build command works until
76
+ `container system start` has run** — connection errors almost always mean the services are
77
+ stopped. See `references/configuration.md` for the full `container system` reference.
78
+
79
+ launchd service labels (all under the `com.apple.container.` prefix) look like:
80
+
81
+ ```
82
+ com.apple.container.apiserver
83
+ com.apple.container.container-core-images
84
+ com.apple.container.container-network-vmnet.default
85
+ com.apple.container.container-runtime-linux.<container-name>
86
+ ```
87
+
88
+ macOS frameworks `container` builds on: **Virtualization** (VMs + attached devices),
89
+ **vmnet** (virtual network), **XPC** (client↔service IPC), **launchd** (service management),
90
+ **Keychain** (registry credentials), and the **unified logging system** (logs, surfaced via
91
+ `container system logs`).
92
+
93
+ ---
94
+
95
+ ## 3. Requirements & platform constraints
96
+
97
+ | Requirement | Detail |
98
+ |-------------|--------|
99
+ | **Chip** | **Apple silicon only** (M1 or later). Intel Macs are not supported. |
100
+ | **macOS** | **macOS 26 is the supported target** — `container` relies on new virtualization/networking features there. It **runs on macOS 15** but with the limitations in §7. Maintainers typically will not address issues that can't be reproduced on macOS 26. |
101
+ | **Install** | Download the signed `.pkg` from the GitHub release page and run it (installs under `/usr/local`, admin password required). Then `container system start`. |
102
+
103
+ Some features are **gated on macOS 26** because they depend on vmnet capabilities absent in
104
+ macOS 15 (see §4/§7). This gating is enforced at runtime: using a macOS-26-only feature (e.g.
105
+ `container network create`, or `--network <name>`) on macOS 15 **errors** rather than
106
+ degrading silently.
107
+
108
+ ### macOS 26 vs macOS 15 — feature differences
109
+
110
+ | Capability | macOS 26 | macOS 15 |
111
+ |------------|----------|----------|
112
+ | Container-to-container traffic over the virtual network | Works | **Not possible** — vmnet only creates networks where attached containers are isolated from one another. |
113
+ | Multiple / custom networks (`container network` group, `--network <name>`) | Available | **Unavailable** — all containers attach to the single `default` vmnet network; `container network …` and `--network` **error**. |
114
+ | Container network creation timing | Robust | Network is created only when the **first container starts**; the network helper (which hands out IPs) and vmnet can **disagree on the subnet**, potentially cutting containers off. See "All networking fails on macOS 15" in the upstream `troubleshooting.md`. |
115
+
116
+ > Build-from-source requirement differs slightly: building needs **macOS 15 minimum, macOS 26
117
+ > recommended**, plus **Xcode 26** as the active developer directory (see §6).
118
+
119
+ ---
120
+
121
+ ## 4. Networking model
122
+
123
+ - Networking is provided by the macOS **vmnet framework**, managed by the
124
+ `container-network-vmnet` helper.
125
+ - `container system start` creates a vmnet network named **`default`**, typically on CIDR
126
+ **192.168.64.0/24** (gateway **192.168.64.1**). Containers attach to `default` unless
127
+ `--network` names another.
128
+ - **Each container is a first-class network endpoint with its own dedicated IP** on that
129
+ network (a direct consequence of the per-container-VM model — there is no shared Docker
130
+ bridge). The network helper allocates the IP; read it with `container ls` or
131
+ `container inspect <name>` (`.networks[].address`).
132
+ - **Reach a container by IP directly.** For name-based access, register a **local DNS domain**
133
+ (admin required) so unqualified container names resolve:
134
+
135
+ ```bash
136
+ sudo container system dns create test # register domain "test" on the host resolver
137
+ # make it the default suffix by editing ~/.config/container/config.toml: [dns] domain = "test"
138
+ # (there is NO `property set` CLI — only `container system property list` to view values)
139
+ # a container named my-web-server is then reachable as my-web-server.test
140
+ ```
141
+
142
+ DNS domain create/delete edits the host resolver configuration, so it **must run as
143
+ administrator** (`sudo`). The `dns.domain` property itself is set in `config.toml`, not via a
144
+ CLI setter. See `references/configuration.md` for the `dns` commands and the `dns.domain` property.
145
+ - **Reach a host service from a container:** create a domain pointed at a host IP with
146
+ `--localhost` (e.g. `sudo container system dns create host.container.internal --localhost
147
+ 203.0.113.113`). Note the macOS caveats: this disables Private Relay, and the packet-filter
148
+ rule is dropped on restart.
149
+ - **Publish ports to the Mac's loopback** with `--publish [host-ip:]host-port:container-port
150
+ [/protocol]`. If a container is on multiple networks, published ports forward to the
151
+ interface on the **first** network.
152
+ - **Custom / isolated networks require macOS 26.** Create with `container network create
153
+ <name> [--subnet … --subnet-v6 …]`. Networks are **mutually isolated** — a container on one
154
+ network has no connectivity to containers on another. Default subnets for new networks come
155
+ from the `[network]` config (`network.subnet` / `subnetv6`) or are auto-allocated
156
+ non-overlapping; the system rejects overlapping custom subnets. Networks support IPv4 and
157
+ IPv6. On macOS 15 this whole group is unavailable (§3).
158
+
159
+ ---
160
+
161
+ ## 5. Images & storage
162
+
163
+ - **Standard OCI in, standard OCI out.** Pull/run images from any OCI registry, and push
164
+ images you build to any OCI registry; they run in any other OCI-compatible tool.
165
+ - The **local content store** (host-side image/content storage) is owned by the
166
+ `container-core-images` helper, which exposes the image-management API. Manage it with the
167
+ `images` command group and disk usage with `container system df`.
168
+ - **Registries:** image references that omit a host default to **`docker.io`**, configurable
169
+ via the `registry.domain` property (see `references/configuration.md`). Prefer
170
+ fully-qualified references (`docker.io/library/alpine`, not bare `alpine`) when the source
171
+ registry matters. Registry credentials are stored in the macOS **Keychain**.
172
+ - **Selective host data sharing.** Only the data a given container needs is mounted into that
173
+ container's VM — a privacy/isolation win over the shared-VM model where everything must be
174
+ mounted into the one VM up front.
175
+ - The application **data root** (default `~/Library/Application Support/com.apple.container/`)
176
+ holds `content/`, `containers/`, `images`, `kernels/`, `networks/`, `volumes/`, etc. — see
177
+ the data-locations table in `references/configuration.md`.
178
+
179
+ ---
180
+
181
+ ## 6. Security, isolation & building from source
182
+
183
+ **Isolation model.** Each container is a **full VM**, so isolation is VM-grade rather than
184
+ namespace-grade as in a shared-daemon runtime. The minimal guest (small core utility/library
185
+ set + `vminitd`) keeps each VM's attack surface and footprint small, and per-container host
186
+ mounts limit data exposure to exactly what each container needs.
187
+
188
+ **Security reporting.** Report vulnerabilities via the project's
189
+ [GitHub private vulnerability reporting](https://github.com/apple/container/security/advisories/new),
190
+ not public issues. Known/published CVEs may be filed as normal issues. These reports are
191
+ **not** eligible for Apple Security Bounties.
192
+
193
+ **Building from source (brief).** Requires Apple silicon, **macOS 15 min / 26 recommended**,
194
+ and **Xcode 26** set as the active developer directory.
195
+
196
+ ```bash
197
+ # Build + run tests in an isolated data dir
198
+ rm -rf test-data
199
+ make APP_ROOT=test-data all test integration
200
+
201
+ # Install binaries to /usr/local/bin and /usr/local/libexec (admin password)
202
+ make install
203
+
204
+ # Release build (better perf than debug)
205
+ BUILD_CONFIGURATION=release make all test integration
206
+ BUILD_CONFIGURATION=release make install
207
+ ```
208
+
209
+ > **vmnet path bug (macOS 26):** network creation fails if the `container` helper binaries
210
+ > live under `~/Documents` or `~/Desktop`. Use `make install` (runs from `/usr/local`), or
211
+ > keep the project elsewhere (e.g. `~/projects/container`) when running the `bin`/`libexec`
212
+ > build artifacts directly.
213
+
214
+ To develop against a local checkout of the Containerization package or `container-builder-shim`,
215
+ point the runtime config (`~/.config/container/config.toml`) at your local `vminit`/builder
216
+ image and restart the services — see `BUILDING.md` for the exact swift-package steps. Attach a
217
+ debugger to an XPC helper by exporting `CONTAINER_DEBUG_LAUNCHD_LABEL=<launchd-label>` before
218
+ `container system start`.
219
+
220
+ ---
221
+
222
+ ## 7. How it differs from Docker, when to prefer it, and known limits
223
+
224
+ ### `container` vs Docker / shared-VM on macOS
225
+
226
+ | Aspect | `container` (Apple) | Docker / shared-VM on macOS |
227
+ |--------|---------------------|-----------------------------|
228
+ | VM topology | **One lightweight Linux VM per container** | One big Linux VM shared by all containers |
229
+ | Isolation | Full-VM per container | Namespace isolation within one VM |
230
+ | Guest contents | Minimal core utils + libs + `vminitd` | Full Linux userland + daemon |
231
+ | Control plane | CLI → `ContainerClient` → `container-apiserver` (launchd) + XPC helpers | `dockerd` daemon inside the shared VM |
232
+ | Host data sharing | Mount only what each container needs | Mount everything into the shared VM up front |
233
+ | Networking | Per-container dedicated IP on vmnet (`default` ≈ 192.168.64.0/24) | Shared VM networking / Docker bridge |
234
+ | Images | Standard **OCI** in/out | OCI |
235
+ | Platform | **Apple silicon + macOS 26** (15 with limits) | Cross-platform |
236
+
237
+ **Prefer `container` when:** you're on Apple silicon and want VM-grade isolation per
238
+ container, minimal per-container footprint, per-container IPs, tight macOS integration
239
+ (launchd/Keychain/unified logging), and no always-on shared daemon. **Prefer Docker/Podman
240
+ when:** you need Intel-Mac support, features `container` hasn't implemented yet, or maximum
241
+ Docker-flag/ecosystem compatibility.
242
+
243
+ ### Known limitations
244
+
245
+ - **Memory is not fully returned to macOS.** The Virtualization framework has only partial
246
+ memory ballooning. A VM uses only what the app needs (start with `--memory 16g` but see ~2
247
+ GiB in Activity Monitor), but pages freed *inside* the guest are **not** relinquished to the
248
+ host. Running many memory-heavy containers may require occasionally **restarting** them.
249
+ - **Young project.** 1.0.0 is the first stable release; some containerization features common in
250
+ Docker are still unimplemented (check `container <group> --help`). Expect standard semver going
251
+ forward — breaking changes on major bumps, not patch releases.
252
+ - **macOS 15 networking limits** (see §3): no container-to-container traffic, single `default`
253
+ network only, `container network`/`--network` unavailable, and a network-creation race that
254
+ can cut containers off.
255
+
256
+ ---
257
+
258
+ ## 8. Container machines — a related but distinct concept
259
+
260
+ > **⚠️ Requires 1.0.0+.** The `container machine` group was added in 1.0.0 (not in 0.7.1). Check
261
+ > `container machine --help` on your install.
262
+
263
+ `container machine` (alias `m`) is **not** the app-shaped container above: it's a persistent,
264
+ integrated **Linux environment** modeled after a distro rather than a single app. It runs the
265
+ image's **init system** (so you can register long-running services / a process supervisor),
266
+ and **auto-maps your host username and home directory** into the guest, so your repos and
267
+ dotfiles are available on both sides with no copy step.
268
+
269
+ | Trait | Container | Container machine |
270
+ |-------|-----------|-------------------|
271
+ | Modeled after | one application | a full Linux environment / distro |
272
+ | Init | minimal (`vminitd`) | the image's own init (e.g. `systemd`) |
273
+ | User | as configured / `root` | matches your **host** account; `$HOME` mounted in |
274
+ | Lifetime | ephemeral by task | **persistent** across stop/start |
275
+
276
+ ```bash
277
+ container machine create alpine:latest --name dev
278
+ container machine run -n dev whoami # your host username, not root
279
+ container machine run -n dev # interactive shell; your $HOME is mounted in
280
+ container machine set-default dev # then drop -n
281
+ container machine set -n dev cpus=4 memory=8G # takes effect after next stop/start
282
+ ```
283
+
284
+ - Memory defaults to **half of host memory**; the home mount can be `rw` (default), `ro`, or
285
+ `none`. Changes via `container machine set` apply after the next stop/start.
286
+ - **Nested virtualization** (`--virtualization` + a custom `CONFIG_KVM=y` kernel via
287
+ `--kernel`) needs **Apple silicon M3+ and macOS 15+**; the default kernel does not support
288
+ it.
289
+ - **Bring your own image:** any Linux image with `/sbin/init` works. On first boot `container`
290
+ runs a built-in setup script to provision the mapped user; override it with an executable
291
+ `/etc/machine/create-user.sh` in the image (runs once as root with `CONTAINER_UID`,
292
+ `CONTAINER_GID`, `CONTAINER_USER`, `CONTAINER_HOME`, `CONTAINER_MACHINE_ID` set).
293
+
294
+ See `references/commands.md` for the full `machine` subcommand/flag matrix.