gekro
GitHub LinkedIn
AI

Streaming Response Player

Paste any LLM streaming log → replay it at 1× or 5×, see first-token latency, inter-token deltas, throughput.

Paste streaming log

Playback controls Stopped

Replay output

0 / 0 chunks

First-token latency

Time from request to first chunk

Total stream time
Total chunks
Output tokens
Throughput
Inter-token p50
Inter-token p95

🔒 All parsing runs in your browser. Logs never leave the page.

As-is, no warranty. These apps are free under their listed license and run entirely in your browser. Use at your own risk — don't blame me if your PC catches fire, your dog runs away, or the math turns out wrong. Verify anything that actually matters. None of this is professional financial, medical, legal, or engineering advice.

© 2026 Rohit Burani · MIT · Built at gekro.com · View source ↗

Guide

What It Does

Paste a streaming log from any LLM API and this tool:

  • Detects the format automatically (OpenAI SSE, Anthropic content-block-delta, Bedrock event-stream, generic ndjson, or bracketed-timestamp format)
  • Reconstructs the chunk timeline
  • Replays the response at 1× (real-time), 0.5×, 2×, 5×, or instant
  • Reports time-to-first-token (TTFT), total stream duration, chunk count, approximate output tokens, throughput (tokens/sec), and inter-token p50 / p95 deltas

When To Use It

  • “The API got slower” claims — replay your saved logs side-by-side and prove (or disprove) it with hard numbers
  • TTFT regressions — first-token latency hides inside the “looks fine” total stream time
  • Provider comparisons — same prompt, different providers, see whose streaming is actually smoother
  • Demo prep — record a fast streaming response, replay at 1× during a meeting

Supported Log Formats

FormatExample
OpenAI SSEdata: {"choices":[{"delta":{"content":"hi"}}]}
Anthropic SSEdata: {"type":"content_block_delta","delta":{"text":"hi"}}
Bedrock event-stream{"bytes":"<base64>"} (auto-decoded best-effort)
Bracketed timestamp[12.456] {"delta":{"text":"hi"}}
Generic ndjson{"text":"hi","ts":420}

The parser also handles _ts / ts / timestamp / t fields when present. If no timestamp is in the log, it falls back to 50ms-per-chunk spacing so you can still see relative ordering.

What’s NOT In Scope

For informational purposes only. Not financial, medical, or legal advice. You are solely responsible for how you use these tools.