Skip to main content
.use(...) accepts native oRPC middleware, Effect generator middleware, and middleware callbacks that return an Effect. Use Effect middleware when the middleware needs Effect services, Effect errors, or Effect control flow.

Gate middleware

A gate runs checks and lets the pipeline continue automatically.
gate.ts

Wrap middleware

A wrap calls next(...) explicitly and returns its result.
wrap.ts

Transform output

output-transform.ts

Effect-returning middleware

Effect-returning middleware can use Effect.fn(...) or return Effect.gen(...) directly.
effect-returning.ts
Guard-only Effect middleware can return void; the pipeline continues automatically.

Reusable Effect middleware

Use .middleware(...) to define Effect middleware once and pass it to .use(...).
reusable.ts

Native oRPC middleware still works

native.ts
Native middleware can split contiguous Effect runtime boundaries. If you need request-local FiberRef continuity across those boundaries in Node, see Node fiber context bridge.

Next step

Use contracts with Contract-first APIs.
Last modified on June 15, 2026