What problem does it solve? Managing bidirectional socket connections in TypeScript involves tricky lifecycle ownership, framing, reconnection, and error handling. This Skill teaches agents how to use Effect's Socket API correctly so connections are scoped, frames are decoded, and retries reacquire resources instead of leaking them. ## Core Features & Use Cases - Pull-based readers and writers: Acquire a scoped reader that yields batches of string or Uint8Array frames, and a writer with backpressured write and writeAll operations. - Multiple transports: Create WebSocket clients, TCP, Unix, and TLS sockets via NodeSocket and BunSocket, including STARTTLS upgrades and socket servers with bound addresses. - Framing and reconnects: Compose NDJSON or SchemaBinary duplex channels over sockets, and retry scoped reader acquisition with schedules for resilient reconnects. - Use Case: Build a WebSocket client that subscribes to a feed, decodes each frame with a schema, and automatically reconnects with exponential backoff when the connection drops. ## Quick Start Ask the agent to write an Effect WebSocket client that connects to a URL, sends a subscribe message, logs incoming frames, and reconnects on abnormal close.