effect-uai-streaming-tool-output

Installation
SKILL.md

effect-uai streaming-tool-output

A tool's run is an Effect that computes the model-facing Output, plus an emit side channel for intermediate events. Emitted events flow to the user as ToolEvent.Progress in real time; the model only ever sees the Output that run returns. There is no separate finalize: fold the events into the output inside run as they stream by.

Reach for this when the user says any of:

  • "Show progress while a tool runs"
  • "Stream sub-agent reasoning to the UI but give the parent model the final answer"
  • "I want a download / search tool with live progress and a clean structured result"

Pattern 1: progress + terminal result

emit is (event) => Effect<void>, so it drops straight into Stream.runForEach/Stream.runFoldEffect. Fold the events into the output in a single pass (no buffering of the whole event log):

Installs
6
GitHub Stars
31
First Seen
May 4, 2026
effect-uai-streaming-tool-output — betalyra/effect-uai