streaming-responses

SkillAI & models

Use when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the streaming-responses skill

What this skill tells your AI

The instructions your AI receives, as published by xberg-io/liter-llm in plugin/skills/streaming-responses/SKILL.md and read by ahel’s review.

Streaming Responses

Use chat_stream(...) to receive tokens as they are produced instead of waiting for the full completion. The proxy streams over SSE; bindings expose async iterators.

Python

import asyncio, os
from liter_llm import create_client
from liter_llm._internal_bindings import ChatCompletionRequest

async def main() -> None:
    client = create_client(api_key=os.environ["OPENAI_API_KEY"])
    request = ChatCompletionRequest.from_json(
        '{"model":"openai/gpt-4o","messages":[{"role":"user","content":"Tell me a story"}],"stream":true}'
    )
    async for chunk in client.chat_stream(request):
        if chunk.choices and chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)
    print()

asyncio.run(main())

TypeScript

import { createClient } from "@xberg-io/liter-llm";

const client = createClient(process.env.OPENAI_API_KEY!);
const chunks = await client.chatStream({
  model: "openai/gpt-4o",
  messages: [{ role: "user", content: "Tell me a story" }],
});
for await (const chunk of chunks) {
  process.stdout.write(chunk.choices?.[0]?.delta?.content ?? "");
}

Notes

  • The first and last chunks often carry null content. Always null-check chunk.choices[0].delta.content (Python) or chunk.choices[0]?.delta?.content (TypeScript) before using it.
  • Tool-call deltas arrive in delta.tool_calls (Python) / delta.toolCalls (TypeScript); accumulate function.arguments fragments across chunks before parsing.
  • Through the proxy, request streaming with "stream": true on /v1/chat/completions.

Signals

GitHub stars
252
Forks
21
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
streaming-responses
Source
github.com/xberg-io/liter-llm