What Is Apple’s LanguageModel Protocol? A Plain-English Guide

At WWDC 2026, Apple shipped a small change with surprisingly big consequences. Let me explain the LanguageModel protocol the way I wish someone had explained it to me.
Written by

Chris C

Updated on

Jun 19 2026

Table of contents

    If you have been anywhere near Apple developer news since WWDC 2026, you have probably seen the phrase LanguageModel protocol thrown around. It sounds like the kind of thing only a framework engineer needs to care about.

    It is not.

    It is actually one of the more useful ideas to understand if you want to build AI features into an iOS app, and you do not need a computer science degree to get it.

    Here is the one-sentence version.

    The LanguageModel protocol is a standard “shape” that any AI model can fit into, so your app can switch from one model to another without rewriting your code.

    Apple’s own on-device model fits that shape. So does Claude. So does Gemini. They all plug into the same spot.

    In this guide I will walk you through what problem this solves, how the pieces fit together, and why it matters for what you build. No prior AI experience needed.

    Let’s start with the big picture.

    Your app’s code
    LanguageModelSession
    LanguageModel
    On-device Private Cloud Claude Gemini Open models

    Your code talks to one session. Any model that fits the standard plug can sit behind it.

    First, a Quick Refresher: The Foundation Models Framework

    Before we talk about the protocol, we need to talk about Apple’s Foundation Models framework.

    This framework lets your app talk to Apple’s built-in AI model. The model can summarize text, classify content, generate structured data, and help with many language-based tasks.

    The important part is that the model can run on the user’s device, which means it can be private, fast, free for the developer, and available offline when the device supports it.

    A simple example looks like this:

    import FoundationModels
    
    // Open a conversation with Apple's on-device model
    let session = LanguageModelSession()
    
    let response = try await session.respond(to: "Summarize this note in one sentence.")
    print(response.content)

    That is the dream version. You create a session, send a prompt, and get a response.

    Originally, though, the session was really tied to Apple’s own model. If you wanted to use another model, like Claude or Gemini, you usually had to install another SDK and write a separate code path.

    That is the part Apple changed.

    So What Changed at WWDC 2026?

    At WWDC 2026, Apple opened up the Foundation Models framework so that other models can plug into the same session API.

    Instead of your app only talking to Apple’s on-device model, your app can talk to anything that conforms to the LanguageModel protocol.

    That sounds abstract, so here is the practical meaning:

    Before · iOS 26

    Your app

    Apple on-device model only.

    Anything else meant a separate SDK.

    One model. No choices.
    After · iOS 27

    Your app

    LanguageModelSession can sit in front of Apple on-device, Private Cloud Compute, Claude, Gemini, and more.

    Same code. Swappable model.

    That is the big deal. The session API becomes the stable part. The model behind it becomes a choice.

    What the LanguageModel Protocol Actually Is

    A protocol in Swift is like a checklist.

    If a type says, “I conform to this protocol,” it is promising to provide certain abilities. Other code can then trust that those abilities exist.

    The LanguageModel protocol is the checklist for “things that can behave like a language model inside Foundation Models.”

    Your app does not need to care whether the model is Apple’s on-device model, a cloud model, or an open model running locally. If it conforms to the protocol, the session knows how to use it.

    The Two Pieces Under the Hood

    There are two ideas worth separating:

    LanguageModel

    The spec sheet. It says what the model can do, exposes configuration, and stays small and predictable.

    LanguageModelExecutor

    The engine. It warms up the model, translates conversations, runs requests, and streams replies back.

    The protocol tells the session what a model looks like. The executor does the actual work.

    If that still feels a little abstract, think of it like this:

    The LanguageModel is the restaurant menu. It tells you what is available.

    The LanguageModelExecutor is the kitchen. It actually prepares the meal.

    As an app developer, you usually do not have to think much about the kitchen. You mostly create a session with the model you want and ask it to respond.

    Which Models Already Speak This Protocol?

    Apple and several partners showed examples of models that fit into this system.

    Model Where it runs Best for
    SystemLanguageModel On the device Free, private, offline. Everyday text tasks like summarizing and tagging.
    PrivateCloudComputeLanguageModel Apple’s private cloud Bigger context and stronger reasoning while keeping Apple’s privacy guarantees.
    CoreAILanguageModel On the device Running a model you package and bundle yourself. Open sourced by Apple.
    MLXLanguageModel On Apple silicon Running open models from the community. Aimed at the Mac in the current beta.
    Claude Anthropic’s cloud Frontier quality for genuinely hard tasks.
    Gemini Google’s cloud Frontier quality and the Google ecosystem.

    The key idea is not that you must use all of these. It is that they can now sit behind one shared interface.

    What This Means for You: The One-Line Swap

    Let’s say you start with Apple’s built-in model:

    import FoundationModels
    
    // Apple's on-device model: free, private, works offline
    let model = SystemLanguageModel.default
    let session = LanguageModelSession(model: model)
    
    let response = try await session.respond(to: "Summarize this contract.")

    Later, maybe the task is too large or too difficult for the local model. You want to move the same feature to Private Cloud Compute:

    // Same session code. Just point it at a different model.
    let model = PrivateCloudComputeLanguageModel()
    let session = LanguageModelSession(model: model)
    
    let response = try await session.respond(to: "Summarize this contract.")

    Notice what changed.

    Not the way you ask the question.

    Not the way you receive the answer.

    Just the model you pass into the session.

    That is why this matters. Your app code becomes less married to one AI provider.

    A Few Things Worth Clearing Up

    Does this mean my app now sends data to the cloud?

    No. Not automatically. If you use Apple’s on-device model, work happens on the device. If you choose a cloud model, then yes, you are choosing to send that request to that provider. The protocol gives you options; it does not make that decision for you.

    Do I have to learn a whole new API?

    Mostly no. That is the point. The Foundation Models session API stays familiar. The model behind it can change.

    Is this set in stone yet?

    No. This is early beta material, and Apple can still change details before release. But the direction is clear: Apple wants Foundation Models to be a common way to talk to language models from Apple platforms.

    Using AI to Go Deeper on This

    If you want to really understand this, use AI as a tutor. Do not just ask it to write code. Ask it to explain the moving parts back to you.

    Deepen Your Understanding

    Use AI as a patient tutor, no code generation required

    “Explain Apple’s LanguageModel protocol to me like I know Swift protocols but I am new to AI.”

    “Give me three examples where I would use an on-device model, Private Cloud Compute, and Claude in the same app.”

    Connect It to Your Project

    Make the concept concrete for what you are building

    “I am building a journaling app. What AI features would make sense with Apple’s on-device model, and which ones might need a stronger cloud model?”

    Questions like that will help you build a mental model instead of just copying snippets.

    Summary

    • The Foundation Models framework lets your app talk to language models.
    • Originally, it was mostly tied to Apple’s own on-device model.
    • The new LanguageModel protocol lets other models plug into the same session API.
    • That includes Apple’s on-device model, Private Cloud Compute, open local models, Claude, and Gemini.
    • The big benefit is flexibility. You can swap models without rewriting the whole feature.

    For beginners, the main takeaway is simple:

    Build your AI feature around the session. Treat the model as something you can choose.

    That mindset will make your apps easier to improve as Apple’s AI tools keep evolving.