containerization
AGENTS.md9k starsChanged 43 days agoApache-2.0View on GitHub
The project is built via make, not directly with swift build. Two Swift packages live in this repo: the root package (Containerization libraries + cctl + macOS-only integration binary) and vminitd/ (the Linux guest init system, compiled as a static musl binary inside the Linux dev container via the apple/container CLI — see make vminitd).
Trending
More talk lately.about the whole repository
Who's talking about apple/containerization
- A Hacker News story“Containerization is a Swift package for running Linux containers on macOS”Hacker News · Jun 9, 2025 · 769 points
- @parisinbmore.bsky.social“i’m so excited this is out there in the world now!!! 🥹🥹 #swiftlang #containers github.com/apple/container…”Bluesky · Jun 9, 2025 · 135 likes
- @papapishu.bsky.social“Apple just suddenly went “huh that docker thing looks cool maybe we should invent it” …”Bluesky · Jun 9, 2025 · 99 likes
- abiosoft/colima“[Feature Request] Support for Apple's Linux containers on macOS”GitHub · Jun 10, 2025 · 95 reactions
- ddev/ddev“Allow Mac users to use Apple native containerization”GitHub · Jun 11, 2025 · 75 reactions
The biggest 5 of 80 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 80
Talked about on GitHub, Bluesky and Hacker News (80 times).
On GitHub · 48
- Jun 10, 2025[Feature Request] Support for Apple's Linux containers on macOS — abiosoft/colima95 reactions · 8 comments
- Jun 11, 2025Allow Mac users to use Apple native containerization — ddev/ddev75 reactions · 43 comments
- Jun 14, 2025Apple Containerization framework — kubernetes-sigs/kind46 reactions · 12 comments
- Jun 25, 2025Native Support for Apple Silicon — blakeblackshear/frigate17 reactions
- Nov 17, 2025[Request]: Storage - Add `container system prune` command to remove unused resources — apple/container10 reactions · 6 comments
43 more on GitHub
- Dec 23, 2025Fix relative path resolution in entrypoint — apple/container4 reactions · 8 comments
- Feb 18, 2026[Request]: Support disk images for volumes — apple/container3 reactions · 7 comments
- Sep 23, 2026[Bug]: `container exec -it` leaves host tty with OPOST|ONLCR, breaking tmux/TUI rendering — apple/container2 reactions · 4 comments
- Apr 8, 2026Bump Swift tools version to 6.2 for containerization support — vellum-ai/vellum-assistant2 reactions · 1 comment
- Jun 12, 2025Devcontainers using macOS Containerization Framework — microsoft/vscode2 reactions · 1 comment
- Jun 10, 2025Require having a Mac with Apple silicon and Xcode 26 beta — apple/container2 reactions
- Sep 25, 2026Default container MTU to 1500 — apple/container1 reaction · 1 comment
- Sep 14, 2026Suggestion: Using Apple Containers Instead of Docker for the NFS Launcher — nohajc/anylinuxfs1 reaction · 2 comments
- Sep 12, 2026[Request]: support container registries with separate authentication domains — apple/container1 reaction
- Aug 27, 2026fix(virtualization): wait for hotplugged VZ rootfs — stephenlclarke/containerization1 reaction · 3 comments
- Jul 27, 2026chore(upstream): merge Apple containerization main — stephenlclarke/containerization1 reaction · 4 comments
- Jun 13, 2025Wait for IO streams to complete before a process exits — apple/container1 reaction
- Jun 13, 2025Remove editor specific git ignore rules — apple/container1 reaction
- Nov 7, 2026chore(deps): bump the swift group across 4 directories with 4 updates — chr33s/iso0 reactions
- Nov 2, 2026Bump apple-containerization from `6adea56` to `baf212e` — mavimo/apple-container-kernel0 reactions · 2 comments
- Nov 1, 2026Bump github.com/apple/containerization from 0.53.0 to 0.54.0 in the swift group — onexay/msl0 reactions
- Oct 28, 2026Run funcd natively on macOS with each worker isolated — pyvvo/funcd0 reactions
- Oct 26, 2026Bump apple-containerization from `6adea56` to `f79e412` — mavimo/apple-container-kernel0 reactions · 3 comments
- Oct 25, 2026Bump the swift group with 2 updates — onexay/msl0 reactions
- Oct 23, 2026Use the zstd EOF fix and cover complete-stream image loading — apple/container0 reactions
- Oct 22, 2026RegistryClient fetches a new bearer token for each request — beshkenadze/containerization0 reactions
- Oct 20, 2026Bump apple-containerization from `d7b18a1` to `6adea56` — mavimo/apple-container-kernel0 reactions · 2 comments
- Oct 19, 2026Bump apple-containerization from `d7b18a1` to `c411138` — mavimo/apple-container-kernel0 reactions · 3 comments
- Oct 18, 2026chore(deps): bump github.com/apple/containerization from 0.35.0 to 0.51.0 — hostwright/hostwright0 reactions
- Oct 17, 2026Watch how other apps handle the Seatbelt/sandbox-exec deprecation — vamsipavanmahesh/saboteur0 reactions · 2 comments
- Oct 16, 2026Bump apple-containerization from `ee881d6` to `d7b18a1` — mavimo/apple-container-kernel0 reactions · 2 comments
- Oct 13, 2026Bump apple-containerization from `ee881d6` to `75a2d85` — mavimo/apple-container-kernel0 reactions · 3 comments
- Oct 11, 2026Bump github.com/apple/containerization from 0.48.0 to 0.49.0 in the swift group — onexay/msl0 reactions
- Oct 4, 2026Bump github.com/apple/containerization from 0.47.0 to 0.48.0 in the swift group across 1 directory — onexay/msl0 reactions
- Sep 20, 2026docs: fix dead Apple Containerization documentation links in README and SANDBOX — osaurus-ai/osaurus0 reactions · 3 comments
- Sep 6, 2026[Maintenance] Sync Apple Pi agent support before 0.14.3 — stephenlclarke/containerization0 reactions
- Aug 10, 2026[Request]: FilesystemOperation freeze/thaw/trim should pass `containerID` — apple/container0 reactions · 1 comment
- Jul 18, 2026[Bug]: Locally built tag@digest falls back to Docker Hub on create/run — apple/container0 reactions
- Jul 12, 2026[Bug]: Intermittent Permission Errors reading hard links from the mount directory — apple/container0 reactions · 2 comments
- May 6, 2026feat(api): Add blkio resource flags — full-chaos/container0 reactions · 1 comment
- May 6, 2026fix: added new direct drivers for network volumes — Mcrich23/Container-Compose0 reactions
- Apr 18, 2026Update dependency apple/containerization to "0.26.0"..<"0.54.0" — errand-ai/errand-desktop0 reactions
- Apr 5, 2026Archiver: preserve symlinks and explicit build-context entries — apple/container0 reactions · 4 comments
- Jan 30, 2026Handle vsock spurious wakeups gracefully instead of asserting — apple/swift-nio0 reactions
- Jan 30, 2026Assertion failure with vsock: assert(readResult == .some) in BaseSocketChannel.swift — apple/swift-nio0 reactions
- Jan 5, 2026Forward SSL env variables to containerization — apple/container0 reactions · 7 comments
- Sep 27, 2025feat: support for running the emulator with apple container — junobuild/cli0 reactions
- Jun 10, 2025Daily Hacker News 10-06-2025 — blka/daily-hackernews0 reactions
On Bluesky · 31
- Jun 9, 2025i’m so excited this is out there in the world now!!! 🥹🥹 #swiftlang #containers github.com/apple/container… — @parisinbmore.bsky.social135 likes and reposts · 7 replies
- Jun 9, 2025Apple just suddenly went “huh that docker thing looks cool maybe we should invent it” github.com/apple/contai... — @papapishu.bsky.social99 likes and reposts · 5 replies
- Jun 9, 2025Hey ☁️ #cloudnative ☁️friends!! ✨ big news from Apple today ✨ Want a native way to build Linux containers on Apple hardware? Now you can ✅… — @karenchu.online71 likes and reposts · 1 reply
- Jun 9, 2025github.com/apple/contai... — @mackuba.eu12 likes and reposts · 1 reply
- Jun 13, 2025If you happen to be in London on Monday, come and join us for an evening of security and containers. Come and learn more about Apple's… — @andcake.dev11 likes and reposts · 1 reply
26 more on Bluesky
- Jun 9, 2025Apple adding native support for running Linux containers without any third party tooling is surprising and awesome, kudos to some of the… — @cra.dev9 likes and reposts
- Jun 9, 2025check it out now 👀 github.com/apple/container github.com/apple/containerization — @karenchu.online9 likes and reposts · 1 reply
- Jun 9, 2025yup, it's more WSL2 style than WSL1 style, I stand corrected. github.com/apple/contai... — @lizthegrey.com8 likes and reposts
- Jun 11, 2025Didn't expect Apple to release its own container solution which is called Containerization Framework written in Swift letting you run Linux… — @sdust.dev5 likes and reposts
- Jun 10, 2025¡Notición! Usa Linux en macOS de forma nativa con el nuevo paquete de containers. De código abierto: github.com/apple/contai... — @midu.dev3 likes and reposts · 1 reply
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS — @hackernewsrobot.bsky.social3 likes and reposts
- Jun 9, 2025Containerization is up on GitHub now — @malstrom.me3 likes and reposts · 1 reply
- Jun 9, 2025Run Linux containers natively on your Mac with ease using Containerization by @apple! Manage containers directly from macOS, simplifying… — @tickfoundry.com2 likes and reposts
- Jun 9, 2025Excited about the containerization improvements coming to macOS: github.com/apple/contai... github.com/apple/contai... podman remains my… — @command-tab.com2 likes and reposts
- Jun 9, 20252 different stuff, as far as I understood. it seems equivalent of hyper-v plus docker engine. github.com/apple/contai... — @ozgurozturk.net2 likes and reposts · 1 reply
- Jun 9, 2025Oh hey, Apple wrote a Docker github.com/apple/contai... — @dbgmo.de2 likes and reposts · 1 reply
- Jun 9, 2025repos are now live 🙂 — check them out: github.com/apple/contai... github.com/apple/contai... — @karenchu.online2 likes and reposts
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS | Discussion — @hackernewsbot.bsky.social2 likes and reposts
- Jun 17, 2025https://github.com/apple/containerization — @tom-doerr.bsky.social1 likes and repost
- Jun 10, 2025Linux Containers github.com/apple/contai... — @tvdeyen.bsky.social1 likes and repost · 1 reply
- Jun 10, 2025github.com/apple/contai... нормально нормально но блять swift — @xmbshwll.bsky.social1 likes and repost
- Jun 10, 2025🌐Containerizationは、macOS上でLinuxコンテナを実行するためのSwiftパッケージです。 https://github.com/apple/containerization via #HackerNews — @kdmsnr.com1 likes and repost
- Jun 10, 2025Linux container sur Macos github.com/apple/contai... — @20h.com1 likes and repost
- Jun 10, 2025Containerizationは、macOS上でLinuxコンテナを実行するためのSwiftパッケージです。 Containerization is a Swift package for running Linux containers on macOS 🔺 345 💬… — @hacker-news-jp.bsky.social1 likes and repost · 1 reply
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS view on hacker news — @ycombinatorbot.bsky.social1 likes and repost
- Jun 9, 2025Kata Containers github.com/apple/contai... — @martinborgman.bsky.social1 likes and repost · 1 reply
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS https://github.com/apple/containerization… — @betterhn20.e-work.xyz1 likes and repost · 1 reply
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS L: https://github.com/apple/containerization C:… — @hnws.bsky.social1 likes and repost
- Jun 9, 2025github.com/apple/container github.com/apple/containerization — @parisinbmore.bsky.social1 likes and repost
- Jun 9, 2025GitHub.com/apple/container github.com/apple/containerization — @parisinbmore.bsky.social1 likes and repost
- Jun 9, 2025Also github.com/apple/contai... And github.com/apple/contai... — @handle.invalid0 likes and reposts · 1 reply
On Hacker News · 1
- Jun 9, 2025Containerization is a Swift package for running Linux containers on macOS769 points · 409 comments
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Every Linux container runs inside its own VM.
- Very specific: line 84
Package isolation: prefer adding code to the smallest applicable module.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Build / Test / Format
The project is built via make, not directly with swift build. Two Swift packages live in this repo: the root package (Containerization libraries + cctl + macOS-only integration binary) and vminitd/ (the Linux guest init system, compiled as a static musl binary inside the Linux dev container via the apple/container CLI — see make vminitd).
make all— build everything (containerization+vminitd+init.ext4rootfs inbin/). DefaultBUILD_CONFIGURATION=debug; passrelease(or usemake release) for optimized builds.make containerization— build just the host-side Swift package (skips vminitd).make vminitd— build vminitd / vmexec only. On macOS this runsswift build --swift-sdk …-swift-linux-muslinside the Linux dev container via thecontainerCLI (the cloud-hypervisor build model), producing static musl binaries atvminitd/bin/; no host Swiftly/SDK needed.make linux-build LIBC=glibcbuilds via a Linux dev container.make test— unit tests with code coverage.make coverageregenerates the coverage report.make integration— runsbin/containerization-integration. Requires an in-repo kernel underbin/(bin/vmlinux-arm64on arm64,bin/vmlinuz-x86_64orbin/vmlinux-x86_64on x86_64); if absent, runmake fetch-default-kernelto download the Kata-provided kernel for the host arch.- Single test:
swift test --filter ContainerizationOCITests.ReferenceTests/testParsing(Swift Testing / XCTest filter syntax). Targets are listed inPackage.swift. make linux-test— runsswift testinside the Linux dev container (requires thecontainerCLI from apple/container).make linux-build— builds the host-side Swift package (incl.cctl,Containerization, andCloudHypervisor) inside the same Linux dev container. Use this to validate Linux portability of host-side code; the resultingcctlis what the cloud-hypervisor backend ships behind.make linux-integration— runs the cross-platform integration suite against a real cloud-hypervisor VM inside the dev container (nested virt via apple/container's--virtualization). Requires a KVM-capable kernel atkernel/vmlinux-arm64(orkernel/vmlinuz-x86_64on x86_64 hosts) — build viamake -C kernel; the kata-fetched kernel doesn't include KVM. Also requiresmake fetch-cloud-hypervisorandmake linux-buildto have been run first. Linux runs only the cross-platform subset (process true/false/echo hi); the macOS suite is unchanged.make fetch-cloud-hypervisor— downloads the staticcloud-hypervisorv52.0 (aarch64) binary intobin/cloud-hypervisorfor the Linux integration tests.make fetch-runc— downloads the pinned staticruncv1.5.1 release binary for the host arch intobin/runc-<arch>, verifying its sha256 against the release's PGP-signedrunc.sha256summanifest. Opt-in: when that file is present,make initstages it into the initfs at/sbin/runc, and a container can select the runc-backed launch path withociRuntimePath = "/sbin/runc"(cctl run --oci-runtime-path /sbin/runc). Without it the initfs is byte-identical to before andvmexecis the only runtime, somake allperforms no new network access. Therunc *integration tests skip themselves when it hasn't been fetched. Unlikefetch-cloud-hypervisor, this downloads to a.tmppath and only moves it into place after the checksum passes — the staging decision downstream is presence-only, so a truncated binary from a failed download would otherwise be baked into the guest image silently.make build-cloud-hypervisor/make build-virtiofsd— build patchedcloud-hypervisor/virtiofsdfrom sources you have cloned into.local/cloud-hypervisorand.local/virtiofsdrespectively. There is no fetch target — clone the upstream repos at the revision you want pinned.build-virtiofsdappliesscripts/patches/virtiofsd-skip-cap-drop-with-sandbox-none.patchand is idempotent. Both run inside the same Linux dev container aslinux-integrationso the resulting binaries are aarch64-linux-gnu.make dist-x86_64— assemblesbin/containerization-x86_64-<sha>.tar.gz(cctl + cloud-hypervisor + virtiofsd + initfs.ext4 + kernel) for x86_64 Linux deployment, cross-compiled inside the aarch64 dev container via the Static Linux SDK (Swift) andcargo zigbuild(Rust). Prereqs:.local/cloud-hypervisorand.local/virtiofsdsource checkouts (clone deliberately — no fetch target), and an x86_64 kernel built viamake -C kernel TARGET_ARCH=x86_64. Per-stage rebuild env vars:REBUILD_VMINITD=1,REBUILD_INITFS=1,REBUILD_CH=1,REBUILD_VIRTIOFSD=1; cctl x86 always rebuilds. Full pipeline, toolchain rationale, and troubleshooting indocs/x86_64-build.md. The orchestrator isscripts/build-dist-x86_64.sh.make fmt— applies.swift-formatand refreshes license headers via hawkeye.make check— formatting + license-header lint (this is what the pre-commit hook runs). Uses.swift-format-nolintfor stricter linting.make pre-commit— installsscripts/pre-commit.fmtas a git pre-commit hook.make protos— regeneratesSources/Containerization/SandboxContext/SandboxContext.{pb,grpc}.swiftfrom the.proto. Touch this whenever the proto changes; never hand-edit the generated files.make init/make init-image—initcompiles the guest and buildsbin/initfs.ext4(+ a rootfs tar) inside the dev container viascripts/build-initfs.sh(mkfs + loop mount, with amke2fs -dfallback), theninit-imagecreates thevminit:latestOCI image from the tar with the nativecctl(cctl rootfs create --rootfs <tar> --image vminit:latest). CI splits these: a Linux container job builds the initfs artifact, the macOS job runsinit-image. Building the guest on macOS requires the apple/containerCLI — there is no host Swiftly / Static Linux SDK setup step anymore.
WARNINGS_AS_ERRORS=true is the default for both packages. Don't disable it casually — CI builds with it on.
Architecture
This is a Swift library package (not a CLI tool) that lets applications run Linux containers on Apple silicon by spawning a lightweight VM per container via Virtualization.framework. The corresponding end-user CLI lives in apple/container and is not part of this repo. cctl here is a playground/example binary, not the shipping product.
The host ↔ guest split
Every Linux container runs inside its own VM. The boundary between host (macOS) and guest (Linux) is the central architectural fact:
- Host side (
Sources/,macOSplatform): orchestrates VMs throughVirtualization.framework(VZVirtualMachineInstance.swift,VZVirtualMachine+Helpers.swift). The user-facing entry points areLinuxContainer(one container per VM) andLinuxPod(multiple containers in one VM, experimental). These build aVMConfiguration, boot the VM with the chosenKerneland a rootfs containingvminitd, then drive the guest via gRPC. - Guest side (
vminitd/, Linux platform):vminitdis PID 1 inside the VM. It exposes a gRPC service over vsock (default port1024) defined bySources/Containerization/SandboxContext/SandboxContext.proto.VminitdCoreimplements that service: launching container processes, handling stdio over vsock, signal/event delivery, cgroups, mounts, and process lifecycle. By default it launches workloads viavmexec(a small helper that runs a single process inside the guest namespace);runcis used when an OCI runtime path is supplied — seemake fetch-runcabove, which stages one at/sbin/runc.
The proto is the contract between the two halves. The .pb.swift and .grpc.swift files in SandboxContext/ are generated — regenerate via make protos after changing SandboxContext.proto. Both host and guest depend on the same generated Swift via the path-dependency wiring in vminitd/Package.swift (containerization is a sibling path package).
VMM backends
Containerization abstracts the VMM behind VirtualMachineManager / VirtualMachineInstance. Two backends ship in this repo, both inside the same Containerization target but gated by #if:
- macOS:
VZVirtualMachineManager/VZVirtualMachineInstance(VZ*files,#if os(macOS)). DrivesVirtualization.frameworkdirectly. - Linux:
CHVirtualMachineManager/CHVirtualMachineInstance(CH*files plusCHProcess,VirtiofsdProcess,Vsock+Linux, all#if os(Linux)). Onecloud-hypervisorsubprocess per VM, REST-on-UDS control plane via the standaloneCloudHypervisorSwift package, virtio-blk / virtio-fs (onevirtiofsdper share) / TAP / vsock for the data plane. SameVminitdguest contract as VZ — only the host-side VMM differs.
The CloudHypervisor library is a thin NIO-based HTTP/1.1-over-UDS client targeting cloud-hypervisor's REST API. It compiles on both platforms (so it can be unit-tested on macOS without a real cloud-hypervisor binary), but is only consumed by the Linux backend at runtime.
Sandbox env vars. CHProcess and VirtiofsdProcess default to the upstream-secure spawn flags. Per-component opt-outs:
CONTAINERIZATION_NO_CH_SECCOMP=1— launch cloud-hypervisor with--seccomp false.CONTAINERIZATION_NO_VIRTIOFSD_SANDBOX=1— launch virtiofsd with--sandbox none.
Both flags emit a one-line logger.warning at start so a relaxed-sandbox VM is loud in the host log. The legacy alias CONTAINERIZATION_RELAXED_SANDBOX=1 continues to flip both at once. These are required inside apple/container's --virtualization dev container, where the host seccomp profile SIGSYS-kills both binaries; make linux-integration sets the legacy alias automatically. Leave them unset in production deployments where the host policy lets CH/virtiofsd run unmolested.
Library targets (Sources/)
These are independently consumable Swift modules. Keep their dependencies narrow:
Containerization— the top-level orchestration layer (LinuxContainer,LinuxPod,VMConfiguration,VminitdgRPC client wrapper, mounts, networking, sockets, image unpacking). Hosts both the macOS (VZ) and Linux (CH) VMM backends behind#if os(...).CloudHypervisor— standalone NIO-based HTTP/1.1-over-UDS client targeting cloud-hypervisor's REST API. Cross-platform (compiles on macOS for unit tests; consumed at runtime only by the Linux side ofContainerization).ContainerizationOCI— OCI image spec types, registry client (push/pull/auth), local OCI layout, content store. Used host-side for image management.ContainerizationEXT4— pure-Swift ext4 reader/formatter; used to build container rootfs blocks (bin/initfs.ext4).ContainerizationArchive— Swift wrapper around vendored libarchive headers (Sources/ContainerizationArchive/CArchive, refreshable viamake update-libarchive-source). Links systemlibarchive,lzma,bz2,z, plus zstd via SwiftPM.ContainerizationNetlink— netlink socket bindings (used by vminitd for in-guest network configuration).ContainerizationOS— POSIX/Darwin/Linux platform shims (Command,Terminal,Socket, signal handling, mount syscalls, keychain). Cross-platform.ContainerizationIO— small NIO-flavored stream/reader utilities.ContainerizationExtras,ContainerizationError,CShim— shared helpers and a tiny C bridge.
Sources/Integration/ is the macOS-only containerization-integration binary (the integration test runner; it is not a testTarget, it's an executableTarget that's invoked by make integration). Unit testTargets live under Tests/.
vminitd internals (vminitd/Sources/)
VminitdCore/Server+GRPC.swiftis the bulk of the guest agent — it implements every RPC declared inSandboxContext.proto.ManagedContainer.swift/ManagedProcess.swiftlaunch container processes viavmexecby default. Supplying an OCI runtime path switches both the init process (RuncProcess.swift) and execs (RuncExecProcess.swift) torunc, driven by the client inVminitdCore/Runc/.ProcessSupervisorreaps and dispatches exit events for both paths.Cgroup/handles cgroup v2 setup.LCShim/andCVersion/are small C bridges (the latter injectsGIT_COMMIT/GIT_TAG/BUILD_TIMEat compile time).vmexecruns a single container process inside the guest namespace and is whatvminitdexecs to launch container workloads.
Conventions
- License headers are required on every Swift file.
make check-licensesruns hawkeye againstscripts/license-header.txt. New files: runmake update-licenses(ormake fmt) before committing. - Formatting:
.swift-format(line length 180, 4-space indent). The lint config (.swift-format-nolint) is what CI enforces.NeverForceUnwrap,NeverUseForceTry, andNeverUseImplicitlyUnwrappedOptionalsare all on — don't introduce!/try!. - Package isolation: prefer adding code to the smallest applicable module. Don't pull
ContainerizationintoContainerizationOCIor similar — the leaf modules are intentionally light so they can be consumed standalone. SandboxContext.protois excluded from theContainerizationtarget (seePackage.swift). The generated.pb.swift/.grpc.swiftfiles are checked in.- Squash-and-merge: PRs land as a single commit, so the PR title/body becomes the commit message — write it accordingly. Commits must be signed (per
CONTRIBUTING.md).
Requirements
Apple silicon Mac, macOS 26, Xcode 26. The host-side build uses Xcode's Swift toolchain (/usr/bin/swift); the Linux guest is built inside the dev container, so the apple/container CLI is required (see the README). The pinned Swift version (.swift-version, currently 6.3.0) tags the dev image and the CI Swift Linux container. Older macOS releases are not supported.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

