<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "FoundationModels",
  "identifier" : "/documentation/FoundationModels/LanguageModelExecutorGenerationChannel",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Foundation Models"
    ],
    "preciseIdentifier" : "s:16FoundationModels38LanguageModelExecutorGenerationChannelV"
  },
  "title" : "LanguageModelExecutorGenerationChannel"
}
-->

# LanguageModelExecutorGenerationChannel

A type you use to send model output deltas and updates to the framework.

```
struct LanguageModelExecutorGenerationChannel
```

## Overview

Use this to stream text as your model produces it. You can also use the channel
to report metadata and usage that helps developers track what’s happening, like
when you want to report model details and token usage updates:

```swift
func respond(
    to request: LanguageModelExecutorGenerationRequest,
    model: MyLanguageModel,
    streamingInto channel: LanguageModelExecutorGenerationChannel
) async throws {

    let entryID = UUID().uuidString

    // Calculate your total and cached tokens counts for the input.
    let totalTokens = 0
    let cachedTokens = 0

    // Send model identification.
    await channel.send(.response(entryID: entryID, action: .updateMetadata([
        "modelID": "my-model-2026-06-08",
        "requestID": request.id.uuidString
    ])))

    // Report prompt token usage upfront.
    await channel.send(.response(
        entryID: entryID,
        action: .updateUsage(
            input: .init(
                totalTokenCount: totalTokens,
                cachedTokenCount: cachedTokens
            ),
            output: .init(
                totalTokenCount: 0,
                reasoningTokenCount: 0
            )
        )
    ))
}
```

## Topics

### Creating a channel instance

[`init()`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/init())

Creates a generation channel instance.

### Sending an event

[`func send(LanguageModelExecutorGenerationChannel.Event) async`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/send(_:))

Sends a generation event on the channel.

[`struct Event`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/Event)

A generation event sent on a generation channel.

### Accessing the event types

[`struct Metadata`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/Metadata)

Snapshot of an entry’s metadata dictionary.

[`struct Reasoning`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/Reasoning)

A reasoning event.

[`struct ReasoningSignature`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/ReasoningSignature)

Payload for a reasoning entry’s signature update.

[`struct TextFragment`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/TextFragment)

Text appended to a streaming entry’s current text segment.

[`struct TextSegmentReplacement`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/TextSegmentReplacement)

A replacement for a streaming entry’s current text segment.

[`struct Response`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/Response)

A model-generated response event: text, segment replacements, citations,
advisories, custom segments, metadata, or usage.

[`struct ToolCalls`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/ToolCalls)

A tool-call lifecycle event, including per-call argument streaming, reasoning, metadata, usage,
or retraction.

[`struct Usage`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/Usage)

Snapshot of an entry’s token totals.

### Structures

[`struct DataEntry`](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/DataEntry)

A top-level data-entry event addressed to a transcript entry.

### Default Implementations

[AsyncSequence Implementations](/documentation/FoundationModels/LanguageModelExecutorGenerationChannel/AsyncSequence-Implementations)

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`AsyncSequence`](/documentation/Swift/AsyncSequence)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)