Structured output from an on-device LLM
Replies, breakdowns and draft reviews are produced as typed Swift structs through guided generation rather than parsed from free text.
ReplyCoach helps people answer the messages they don't want to get wrong. It reads a pasted conversation or up to eight screenshots, asks what you want to achieve, and drafts three strategy-based replies — all generated on-device with Apple's Foundation Models, so conversations never leave the phone.
A SwiftUI app in Swift 6 with strict concurrency, organised as a product loop — Understand → Decide → Reply → Check → Continue — over a domain layer that is independent of the AI provider.
ConversationInput, ConversationSession, GeneratedReply, ConversationUnderstanding and DraftReview are Codable value types. Sessions stay backward-decodable across versions so 1.0 history still opens.
A single ReplyGenerating protocol backs Reply, Understand and Draft Check. AppleFoundationReplyGenerator drives LanguageModelSession with @Generable guided generation; a deterministic fallback powers previews and tests.
ConversationMemoryEngine summarises earlier rounds and pinned context so long threads fit within the on-device model's context budget.
LocalAuthentication for App Lock, App Groups for shared state, App Intents for Shortcuts entry points and a privacy manifest.
ReplyCoachNo third-party dependencies — Apple SDKs only.
Stack detected automatically from the repository on 27 Oct 2026.
Replies, breakdowns and draft reviews are produced as typed Swift structs through guided generation rather than parsed from free text.
Long multi-round conversations are compressed into memory and pinned facts so the model keeps the thread without exceeding its window.
Newer multimodal paths are gated behind the same domain types, so the iOS 26 experience stays complete.