subagentswift

.com swift markdown
grounding

The macOS↔Linux conduit

Claude Desktop's own execution surface is local macOS. Most of this repo's real workloads — Cloudflare Workers, D1, the durable-store crates, CI — run fine there, but a growing slice of Swift work specifically needs to run on Linux: container images, CI runners, and any future Linux-hosted agent surface. The conduit is what makes that not a rewrite.

Swift itself already runs on Linux

Swift has shipped official Linux toolchains via swift.org for years — glibc-based builds for Ubuntu, and, more recently, musl-based static builds usable on Alpine. The official modelcontextprotocol/swift-sdk that apps/subagentswift-mcp is built on documents support across Ubuntu, Debian, Fedora, and Alpine — the same MCP server binary this repo builds for macOS 27 development compiles and runs unmodified on any of those.

One binary, two hosts

The conduit's core claim is narrow and checkable: the MCP server is the same binary on both sides of the divide. A macOS-built subagentswift-mcp exposes swift_toolchain_info, swift_build_check, semver_metadata, and markdown_patterns to a local Claude Desktop; the identical source, cross-compiled or rebuilt on a Linux VM, exposes the same four tools there. No separate Linux-only reimplementation exists or is planned — divergence would be the failure mode this design exists to avoid.

versions.json: the round-trip

Version and toolchain metadata produced by the typed uv/Python tooling on one side needs to be legible to Swift on the other. versions.json is the plain-data contract that makes that round-trip mechanical rather than ad hoc: Python writes it, Swift's semver_metadata tool reads it back, and neither side needs to know the other's language — only the shared JSON shape.

The record: conduit_runs

Every real invocation of this loop — which phase ran, on which platform/arch, against which Swift and Claude Desktop versions, and what the result was — is written to this Worker's own conduit_runs table rather than left as a fact only visible in a terminal scrollback. See the live conduit board or the JSON API.

See Parsing vs. Rendering for the other primitive this site catalogs, and the homepage for how the two fit together.