Apple Intelligence in Xcode: Worth Turning On, and Where the MDM Ceiling Is

Xcode 27.1 has been shipping since 15 October, with 27.2 sitting in release candidate since the 19th. Somewhere in that run, Xcode stopped being an IDE with a chat panel bolted on and became a host for coding agents that read your project, edit across files, build it, run its tests and iterate on failures. It also grew a bridge that hands the same access to agents running outside Xcode entirely.
If you write Swift for a living, that is a tooling story, and we have already argued the tool choice here — "Claude vs. Codex vs. Native Xcode Intelligence" picked a lane for people shipping apps. This is the other question, the one you get asked in a change review: what does an admin actually get out of this, and what can you enforce when a developer turns it on?
What is actually in the box
Open Xcode > Settings > Intelligence and you get three sections: Agents, Model Context Protocol and Chat. No model is enabled by default, and no agent is installed until someone asks for one.
Under Agents, each available agent has a Get button that downloads and installs it, then an Account row with a More button that takes you through a browser sign-in. Agents that are not listed can be added by hand through Add an Agent, provided they speak the Agent Client Protocol. Under Chat, ChatGPT in Xcode can be turned on with or without an account, Claude Sonnet & Opus needs a sign-in, and Add a Chat Provider lets you point Xcode at anything that implements the Chat Completions API — either Internet Hosted, where you supply a URL, or Locally Hosted, where you supply a port. Xcode expects two endpoints from such a provider: {Model provider URL}/v1/models and {Model provider URL}/v1/chat/completions.
What the agents can do, Apple demonstrated at WWDC26: agent conversations "appear as an editor, so it works with tabs, split editor panes," a /plan command gathers context without making changes and "can kick of sub-agents to work in parallel," a coding assistant sidebar tracks conversations that "need any input or have unread messages," and the Organizer gained a Generate Recommendations… action that works through diagnostic data.
What it is worth if you open Xcode four times a year
The chat panel is the least interesting part. For someone whose Swift output is one small signed tool a quarter, a browser assistant does the same job.
Two things are worth the setup. The first is Locally Hosted chat providers. A port number and a local runtime is the only configuration in that whole settings pane that involves no account, no vendor and no data leaving the Mac — which makes it the one option you can describe to a security reviewer in a sentence. The second is the agent's ability to drive Xcode itself: building, running tests and reading the Organizer's diagnostics are exactly the parts of Xcode an occasional user is worst at. If you have ever shipped a small menu-bar tool and then spent an afternoon on code signing, that is where the time goes, not in writing the Swift.
Separately, there is predictive code completion, the inline on-device completion model. It is not part of Intelligence settings at all — it is an optional component, managed under Xcode > Settings > Components, and it has its own MDM key. Treat it as a different feature with a different risk profile, because Apple does.
The data question, in Apple's words
Apple publishes a privacy page for this, and it is unusually direct. The load-bearing sentence is that "Before any information is sent to a third-party model provider, you must enable a model in Intelligence in Xcode." Once you have, enabled models can reach project information including files and source code, and Apple says it collects limited metadata about requests and responses — counts and approximate sizes — to operate the service, prevent fraud and improve the feature. It does not say your source code goes to Apple.
The part to put in front of a reviewer is about the providers, not Apple. Conversation history is stored locally in Xcode and you can view or delete it. But providers "may log requests, session history, and attachments, including project files and sources" under their own policies, and may use that data to train their models. ChatGPT used without an account is the exception: OpenAI must "not store your request or any responses it provides, unless required under applicable laws," and must not train on it. Two caveats, both Apple's: signing in to a ChatGPT account replaces it with OpenAI's ordinary privacy practices, and it does not extend to OpenAI's agentic coding tool. Agents launched from Xcode, Apple says, are automatically granted access to project information and Xcode's capabilities.
The two keys, and what they do not cover
Apple's own documentation points admins at exactly one restriction for the coding assistant, and the deployment guide lists a second for predictive completion. Both live in a com.apple.dt.Xcode payload.
CodingAssistantAllowExternalIntegrations | IDEProhibitOnDeviceModelInteraction | |
Payload domain | com.apple.dt.Xcode | com.apple.dt.Xcode |
Value to set | false | true |
Minimum macOS | macOS 26 | macOS 15.1 |
Supervision required | Yes | No |
Apple's description | "The coding assistant can be turned off using device management in Xcode 26" | "Prevents Xcode Predictive Code Completion" |
Covers the Xcode MCP bridge | Not stated by Apple - test it | No, a separate feature |
Three things that table does not say, and they matter more than the two rows that are in it.
There is no provider allow-list. You cannot permit a locally hosted model and deny a signed-in cloud account; you cannot pin a team to one vendor. It is on or off.
There is no audit surface. Conversation history lives in Xcode on the developer's Mac, where the developer can delete it, and whatever the provider logs is in the provider's tenant, not yours.
And Apple documents no key for the Model Context Protocol toggle. "Allow external agents to use Xcode tools," under Model Context Protocol in Intelligence settings, is what lets an agent you started in Terminal reach into your open project and Xcode's build and test capabilities — Apple's own example is claude mcp add --transport stdio xcode -- xcrun mcpbridge. Whether CodingAssistantAllowExternalIntegrations closes that toggle too is stated on neither Apple's coding-intelligence article nor its restrictions list: the key name says "external integrations," and Apple's restrictions entry describes it as turning off "the coding assistant." Those are not obviously the same scope. Test it on a supervised pilot Mac before you tell anyone it is covered.
Shipping it
Neither key has a vendor-published profile template, so this is two keys you write yourself in a com.apple.dt.Xcode payload and then validate before it goes anywhere — same discipline as any hand-authored profile.
In Intune it goes out as a custom profile. Microsoft's own constraints: macOS settings "must be in an .xml or .mobileconfig file," the max file size is 1000000 bytes, and the deployment channel is a one-way door — "After you select a channel and save the profile, you can't change the channel. To select a different channel, create a new profile." Creating one needs the Policy and Profile Manager role.
Worth knowing while you are in Components: xcodebuild can fetch components once and reuse them, which Apple frames as "download Xcode components once and then install them across multiple Mac computers" via -exportPath and -importComponent. The documented example value for -downloadComponent is metalToolchain; the page names no predictive-completion component, so do not expect to pre-stage that one from a script until you have confirmed a name.
What this looks like at fleet scale
On a 10,000-device Mac estate, Xcode lives on a few dozen machines. That cuts both ways. It means this is a scoped policy rather than a fleet-wide one, so the blast radius of getting it wrong is small — but it also means the machines in scope are the ones with repository access, build credentials and signing identities, which is the worst possible population to be casual about. And because the coding-assistant key requires supervision, your coverage is exactly your supervised population - in practice, the Macs that came in through Automated Device Enrollment. A developer whose own Mac arrived through user enrollment is not supervised, and so is outside this control whatever your profile says.
The practical takeaway
Turn it on for the engineers, and turn it off everywhere else.
Concretely: ship CodingAssistantAllowExternalIntegrations set to false to every supervised Mac that is not an engineering machine. It costs those users nothing — they do not open Xcode — and it removes an unmonitored path from your estate to a third-party model provider. On the engineering machines, leave it on, and spend the effort on the thing MDM cannot do for you: make the provider a written policy rather than a per-developer decision, because Apple's privacy page says plainly that the guarantees change depending on whether there is an account behind the model.
Leave IDEProhibitOnDeviceModelInteraction alone unless you have a specific reason. Inline on-device completion is the least exposed AI feature in the whole IDE, and disabling it buys you nothing you were worried about.
And do not write "AI coding assistants are blocked by MDM" in a control document until you have put a supervised Mac on a bench, set the key, and tried to connect Claude Code through xcrun mcpbridge. Right now that is an open question, not a control.
Sources: Apple Developer — Setting up coding intelligence, Apple Developer — Giving external agents access to Xcode, Apple Legal — Intelligence in Xcode & Privacy, Apple Platform Deployment — Device management restrictions for Mac computers, Apple Developer — What's new in Xcode 27 (WWDC26), Apple Developer — Downloading and installing additional Xcode components, Apple Developer — Releases, Microsoft Learn — Add custom settings to Apple devices in Microsoft Intune, Underside — Apple Intelligence: frame MDM and Xcode restrictions in enterprise, Lickability — Predictive Code Completion in Xcode



Comments