Dev tools

Apple publishes a Swift library for the Xcode project format so tools do not have to reverse-engineer it

September 17, 2026 at 12:30 AM PT

The apple/xcode-project-format GitHub repository social card

Image: GitHub

Why it mattersEvery generator, linter and CI check that touches an Xcode project has read the old pbxproj format by guesswork for years, and Apple shipping the reference reader ends that guessing for the new JSON format from day one.

Apple published xcode-project-format on 15 September, an Apache-licensed Swift library that reads, writes and edits the new JSON-based Xcode project file. Apple's stated goal in the README is that tool authors, "generators, linters, verifiers, and validators," should not each have to reverse-engineer the file format from scratch. The repository picked up 103 stars in its first two days and carries a first tag of 0.1.0.

What the library covers

The library exposes a value-type model under the XCSchema namespace covering folders, file references, groups, targets, build phases, build rules and the rest of an Xcode project's structure. A caller writes typed Swift against those types instead of manipulating JSON keys, and a tool built on top can be sure it understands the same shape that Xcode itself writes. Apple also ships a companion command line tool called xcprojformatter in the same repository, so the library has a first user that Apple maintains.

Why this repository exists

The current project.pbxproj file inside an .xcodeproj package has been a lightly documented OpenStep-style plist for as long as Xcode has existed. Popular tools that touch it, XcodeGen, Tuist, SwiftLint's build hooks, CI wrappers, and every home-grown project generator, have read it by reading each other and Xcode's output. That guesswork is why a new Xcode version has often broken those tools until the maintainers can spot what changed.

Xcode has been moving to a JSON-based project format, and this library is Apple's own reader for that new format. Publishing it as Apache 2.0 in Apple's own GitHub organization is a departure from how the old format was treated: there is now a canonical answer to what a valid file looks like, and a tool that disagrees with the library is the tool that is wrong.

The bar for iOS tooling

The bar this raises for tool authors is straightforward. A generator that emits an xcodeproj can start from the same types Apple uses, so a file it writes is one Apple can read. A linter can walk the model rather than a raw JSON tree and know the names of the fields it is checking. A CI job that verifies a project file did not silently drift can compare two model values instead of two textual diffs.

The 0.1.0 tag says the library is early. There is one commit on main and no releases beyond the tag, so a project depending on it should expect the schema to move. The value in reading it today is knowing what Apple thinks the format is, on paper, before Xcode 27 makes that answer the default in every new project.

The 103-star count is small on its face and honest about what has happened so far: Apple shipped this on Monday, and every tool author on the platform is still catching up. The story here is that the reference reader for this file now exists at all, and it exists under apple/ with an Apache-2.0 licence.

Source

Source: Apple

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

More from AI News

OpenSpec crosses 68,000 stars as a shared spec framework for 40 AI coding assistants, and cuts a v1.13.1 release the same day

OpenSpec is an MIT-licensed spec framework by Fission-AI that plugs into Claude Code, Codex, Cursor, Copilot, Gemini CLI, Zed and 34 other AI coding assistants, and it reached 68,579 GitHub stars a day after its v1.13.1 release.

Source: Hacker NewsDev tools

Bolt.new offers Pro users 50 times more coding compute if they share sessions to train a new open model

The New Stack reports that Bolt.new launched a research preview called Forge, which gives individual Pro subscribers up to 50 times more usage on open-weight coding models through 14 October, provided they let their sessions train a new trillion-parameter model with Arcee AI.

Source: PressDev tools

ai-data-extractor pulls chat history off your machine as JSONL, and reads Claude Code, Cursor, Windsurf, Aider, Cline and eight others

The ai-data-extractor project is an MIT-licensed local tool that walks the disk for chat histories from Claude Code, Cursor, Windsurf, Aider, Cline and eight other coding assistants and normalises them into a single JSONL format, and it has picked up 825 stars in five days.

Source: GitHubDev tools