What problem does it solve? Consuming typed RPC services in Effect v4 requires correctly assembling protocol layers, serialization codecs, headers, streaming, interruption, and error handling, and mistakes in any of these cause transport failures or untyped errors that are hard to debug. ## Core Features & Use Cases - Client construction: Create typed clients with RpcClient.make, wrap them in Context.Service layers, and satisfy middleware requirements with RpcMiddleware.layerClient. - Transport and serialization pairing: Choose between HTTP, WebSocket, raw TCP, and worker protocol layers, paired correctly with json, ndjson, msgpack, or JSON-RPC codecs based on framing rules. - Streaming, interruption, and errors: Consume stream RPCs as Stream or Queue, propagate interrupts to the server, handle the RpcClientError taxonomy, and configure reconnection with ConnectionHooks. - Use Case: You need to call a UserRpcs group from a browser app over WebSocket with ndjson, attach a bearer token via client middleware, and retry transient socket errors with backoff. ## Quick Start Use the effect-rpc-client skill to build a typed client for my RpcGroup over WebSocket with ndjson serialization and auth headers.