Implement, debug, refactor, migrate, review, or explain Effect TypeScript code. Use when a task touches `effect` or `@effect/*` APIs, especially services, layers, schemas, runtime wiring, platform or CLI packages, Effect testing, or Promise-to-Effect migration.
98
100%
Does it follow best practices?
Impact
93%
1.16xAverage score across 3 eval scenarios
Passed
No known issues
Use this file for Effect packages beyond the core module: HTTP, CLI, platform services, streams, and schedules.
effect-solutions recommends wrapping HTTP behavior in a service and keeping decoding close to the response.
Default pattern:
HttpClient implementation such as FetchHttpClient.layerHttpClient.mapRequest(HttpClientRequest.prependUrl(...))HttpClientResponse.schemaBodyJson(...)Use a service when:
Use direct HttpClient calls when:
The platform package exports HttpApi, HttpApiGroup, HttpApiEndpoint, HttpApiSchema, HttpApiBuilder, and OpenAPI helpers.
Use HttpApi when you want:
Do not force HttpApi into tiny endpoints if plain HttpRouter or a direct platform handler is already the simpler fit.
effect-solutions treats @effect/cli as the standard way to build a typed Effect CLI.
Default pieces:
Command.make(...)Args.*Options.*Command.withSubcommands(...)Command.run(...)Keep CLI handlers thin:
Reach for Stream when the data is repeated, chunked, backpressured, subscription-like, or naturally continuous. Reach for plain Effect when the operation is a single request/response workflow.
Use Schedule for:
Typical boundary:
Effect plus ScheduleStreamChoose the smallest platform package that fits the host runtime.
@effect/platform-node@effect/platform-bun@effect/platform-browserAvoid mixing host-specific packages without a reason. Keep host selection at the edge so the core stays portable.
Schedule or Stream makes the control flow clearer.