What problem does it solve? Building LLM-powered features in TypeScript often leads to untyped responses, ad-hoc error handling, and callback-heavy streaming code. This Skill provides patterns for using the Effect AI LanguageModel service so LLM interactions are type-safe, composable, and integrated with Effect's error handling and concurrency model. ## Core Features & Use Cases - Text Generation: Use generateText for single-turn completions, multi-turn conversations with prompt history, and tool calling with configurable toolChoice modes. - Structured Output: Use generateObject with Effect Schema to force schema-validated responses, including tagged ADT extraction. - Streaming: Use streamText to process real-time text, reasoning, and tool-parameter deltas as typed Stream parts. - Provider Implementation: Build custom LanguageModel providers with LanguageModel.make, plus multi-provider fallback via ExecutionPlan. - Use Case: You are building a chat feature that extracts structured contact data from user messages, streams responses to the UI, and falls back between Anthropic and OpenAI providers on failure. ## Quick Start Ask the AI to write an Effect program that uses LanguageModel.generateObject with a Schema to extract structured data from a user prompt.