Agentsop Streaming Output
agentsope/SkillAlchemy
Enhancement-overlay decision protocol for STREAMING the output of long-running LLM / agent runs from the backend, not just wiring a typing animation in the UI.
Agent skill
by jeremylongshore in jeremylongshore/tons-of-skills-marketplace
Pick the correct LangGraph 1.0 streammode ("messages" vs "updates" vs "values"), wire it into SSE or WebSocket without proxy-buffering gotchas, and filter astreamevents(v2) server-side before…
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streaming --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .claude/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .claude/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streamingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streaming --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .agents/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .agents/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streaming --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .cursor/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .cursor/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/langchain-langgraph-streaming--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streaming --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .gemini/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .gemini/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streamingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .github/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .github/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-streaming --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/langchain-langgraph-streaming .opencode/skills/langchain-langgraph-streaming && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "langchain-langgraph-streaming" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-streaming into .opencode/skills/langchain-langgraph-streaming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-streaming", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
langchain-langgraph-streamingPick the correct LangGraph 1.0 streammode ("messages" vs "updates" vs "values"), wire it into SSE or WebSocket without proxy-buffering gotchas, and filter astreamevents(v2) server-side before…
Langchain Langgraph Streaming is an agent skill from jeremylongshore/tons-of-skills-marketplace. Pick the correct LangGraph 1.0 streammode ("messages" vs "updates" vs "values"), wire it into SSE or WebSocket without proxy-buffering gotchas, and filter astreamevents(v2) server-side before forwarding to the browser. Use when building a live-token chat UI, a per-node progress bar, a debug/time-travel view, or diagnosing a LangGraph stream that hangs over a production proxy. Trigger with "langgraph streaming", "streammode messages", "streammode updates", "streammode values", "langgraph SSE", "langgraph…
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/astream-events-filtering.md`, `references/one-pager.md` and `references/sse-endpoint-template.md`). Compatibility notes: Designed for Claude Code
It sits in AI & LLM Engineering, covering Building AI agents and Realtime and WebSockets. It works with LangGraph, LangChain, Cloud Run and NGINX. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBash(python:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
fastapiuvicorncurlFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
langchain-ai.github.iofastapi.tiangolo.compython.langchain.comcloud.google.comnginx.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Langchain Langgraph Streaming loads about 4k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 152 tokens; SKILL.md has 1,389 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,389 words, ~4,037 tokens.
.claude/skills/langchain-langgraph-streaming/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.An engineer ships stream_mode="values" to a token-level chat UI because it
"seemed the most complete." Every single token causes the full graph state —
message history, scratchpad, plan — to be re-sent and re-rendered. At ~60
tokens/sec the browser overdraws, the React reconciler can't keep up, the tab
freezes, and users blame the model. The correct answer was stream_mode="messages",
which emits an AIMessageChunk delta per token (typically 5-50 bytes) — one
token's worth of DOM work. This is pain-catalog entry P19 and it is the #1
LangGraph integration mistake in the 1.0 generation.
Then the same UI ships to Cloud Run and hangs forever. No error. No logs. The
server is emitting tokens; they just never reach the browser. Default proxy
buffering (Nginx, Cloud Run's HTTP/1.1 path, Cloudflare Free) holds the last
chunk waiting for more bytes. This is P46 — SSE streams from LangGraph
drop the final end event over proxies that buffer — and the fix is three
headers: X-Accel-Buffering: no, Cache-Control: no-cache, Connection: keep-alive.
And then the debug view starts crashing browser tabs on long runs. The engineer
forwarded astream_events(version="v2") raw to the client because "it has more
detail" — but v2 emits thousands of events per invocation (per-token, per-node,
per-runnable lifecycle), and a 60-second agent run easily hits 3,000 events.
Browsers freeze on the JSON deserialize queue. This is P47 — filter
server-side, forward only on_chat_model_stream tokens (and optionally
on_tool_start / on_tool_end).
This skill ships the decision matrix, a production-grade FastAPI SSE endpoint
with the anti-buffering headers and a 15-second heartbeat, a server-side v2
event filter that drops ~90% of noise, and a WebSocket variant with
reconnect-by-thread_id that resumes from the LangGraph checkpointer. Pin:
langgraph 1.0.x, langchain-core 1.0.x. Pain-catalog anchors: P19, P46,
P47, P48, P67, plus P16 for the thread_id rule and P22 for checkpointer
persistence.
langgraph >= 1.0, < 2.0, langchain-core >= 1.0, < 2.0fastapi >= 0.110, uvicorn[standard] (for SSE/WebSocket hosting)langgraph.checkpoint.memory.MemorySaver for dev, or
langgraph.checkpoint.postgres.PostgresSaver for prodstream_mode for your UIThe three modes emit fundamentally different payloads. Match the mode to the UI shape before writing any server code.
| UI type | stream_mode | Payload each tick | Emit rate | Overdraw risk | Typical bandwidth per 5s run |
|---|---|---|---|---|---|
| Live-token chat | "messages" | (AIMessageChunk, metadata) delta | ~30-80 tokens/sec | Low | ~5-15 KB |
| Per-node progress bar / status line | "updates" | {node_name: state_diff} | 1 per node (~2-20 per run) | Low | ~1-5 KB |
| Debug / time-travel / state replay | "values" | Entire graph state dict | 1 per node (~2-20 per run) | High (state size × steps) | ~20 KB to MBs |
| Hybrid (progress + tokens) | ["updates", "messages"] | (mode, payload) interleaved | Sum of above | Depends on inner modes | Sum |
| Non-browser observability | astream_events(v2) + filter | Filtered dicts | Depends on filter | Low (server-controlled) | Controlled |
Decision tree:
Do you need LLM tokens rendered live in the UI?
├── Yes → stream_mode="messages"
│ (add "updates" to the list if you also want per-node progress)
└── No, I need per-step progress
├── Full state for debug/replay? → stream_mode="values"
└── Just what changed (most UIs) → stream_mode="updates"Full payload samples and combined-mode examples are in Stream Mode Comparison.
import asyncio, json
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from langchain_core.messages import HumanMessage
from langgraph.checkpoint.memory import MemorySaver
from app.graph import build_graph
app = FastAPI()
graph = build_graph(checkpointer=MemorySaver())
def sse(event: str, data: dict) -> str:
return f"event: {event}\ndata: {json.dumps(data, default=str)}\n\n"
async def stream_tokens(thread_id: str, user_input: str):
config = {"configurable": {"thread_id": thread_id}}
async for chunk, metadata in graph.astream(
{"messages": [HumanMessage(user_input)]},
config=config,
stream_mode="messages",
):
# chunk.content may be list[dict] on Claude tool-use turns (P02)
text = chunk.text if hasattr(chunk, "text") else (
chunk.content if isinstance(chunk.content, str) else None
)
if text:
yield sse("token", {"text": text, "node": metadata.get("langgraph_node")})
yield sse("done", {"thread_id": thread_id})Always use graph.astream(...) (async). Never call graph.stream(...) (sync)
from inside an async handler — it blocks the event loop and one slow request
blocks every other connection (P48).
@app.get("/stream")
async def stream(thread_id: str, q: str):
return StreamingResponse(
stream_tokens(thread_id, q),
media_type="text/event-stream",
headers={
"X-Accel-Buffering": "no", # Nginx / Cloud Run / Cloudflare
"Cache-Control": "no-cache", # Block intermediate caches
"Connection": "keep-alive", # Hold the TCP connection
},
)These three headers are non-negotiable in production. Without them, your stream works on localhost and hangs on Cloud Run. See SSE Endpoint Template for the full template with a 15-second heartbeat (required to survive Cloud Run's 60s idle timeout and corporate-proxy timeouts) plus reverse-proxy snippets for Nginx, Traefik, and Cloud Run.
astream_events(version="v2") server-sideIf your UI needs richer events than "messages" provides — tool start/end,
progress markers, retrieval events — do not forward astream_events
raw. A single 60-second agent run can emit 3,000+ events. Filter on the
server and forward only what the browser uses.
FORWARD = {"on_chat_model_stream", "on_tool_start", "on_tool_end"}
async def filtered(graph, inputs, config):
async for event in graph.astream_events(inputs, config=config, version="v2"):
kind = event["event"]
if kind == "on_chat_model_stream":
chunk = event["data"]["chunk"]
text = chunk.text if hasattr(chunk, "text") else None
if text:
yield {"type": "token", "text": text,
"node": event["metadata"].get("langgraph_node")}
elif kind == "on_tool_start":
yield {"type": "tool_start", "tool": event["name"]}
elif kind == "on_tool_end":
yield {"type": "tool_end", "tool": event["name"]}
# Drop: on_chain_*, on_parser_*, on_prompt_*, on_retriever_* (P47)Never use astream_log() in new code — soft-deprecated in 1.0 (P67), scheduled
for removal in 2.0. Use astream_events(version="v2") instead. Full event
taxonomy and compression/backpressure patterns in
Astream Events Filtering.
Use WebSocket instead of SSE when the user may cancel, interrupt, or send follow-up messages mid-stream. WebSocket also sidesteps Cloudflare Free's default response buffering.
from fastapi import WebSocket, WebSocketDisconnect
@app.websocket("/ws/{thread_id}")
async def ws(websocket: WebSocket, thread_id: str):
await websocket.accept()
config = {"configurable": {"thread_id": thread_id}} # P16 — always
try:
while True:
msg = json.loads(await websocket.receive_text())
if msg["type"] == "user_message":
async for chunk, metadata in graph.astream(
{"messages": [HumanMessage(msg["text"])]},
config=config,
stream_mode="messages",
):
text = chunk.text if hasattr(chunk, "text") else None
if text:
await websocket.send_json({"type": "token", "text": text})
await websocket.send_json({"type": "done"})
except WebSocketDisconnect:
pass # Checkpointer persists state; reconnect with same thread_id resumesBecause LangGraph checkpointers persist state per thread_id, a client that
reconnects to /ws/{same-thread-id} automatically sees the prior conversation
history on the next turn — no special "resume" handshake required for
between-turn reconnects. For mid-stream reconnects and cancellation handling,
see WebSocket & Reconnect.
A stream that works on uvicorn --reload main:app on your laptop will hang
behind Cloud Run. Before you ship, walk this checklist:
Content-Type: text/event-stream (or 101 Switching Protocols for WebSocket)X-Accel-Buffering: no and Cache-Control: no-cachecurl -N https://your.app/stream?... shows tokens arriving incrementally — NOT all at once at the end--use-http2 (HTTP/2 end-to-end flushes chunks reliably): heartbeat\n\n SSE comment every 15s) so idle streams don't get killed by the 60s timeoutTest behind your actual proxy, not just localhost.
stream_mode chosen deliberately from the decision matrix ("messages" for tokens, "updates" for progress, "values" for debug)graph.astream(..., stream_mode="messages") in an async handlerX-Accel-Buffering, Cache-Control, Connection) on the StreamingResponseastream_events(version="v2") filter that forwards only on_chat_model_stream + on_tool_start + on_tool_endthread_id required at the route and checkpointer-backed resume| Symptom | Cause | Fix |
|---|---|---|
| Browser tab freezes on token stream | Shipped stream_mode="values" to a token UI; full state on every tick (P19) | Switch to stream_mode="messages" — emits per-token deltas only |
| Per-node progress bar never advances | Shipped stream_mode="messages" to a per-node UI; no node-boundary events (P19) | Switch to stream_mode="updates" |
| Stream works on localhost, hangs on Cloud Run | Proxy buffering holds last chunk (P46) | Add X-Accel-Buffering: no, Cache-Control: no-cache headers; deploy Cloud Run with --use-http2 |
| Stream closes after ~60s with no data | Idle-connection timeout on proxy | Send : heartbeat\n\n SSE comment every 15s |
Browser tab freezes on long astream_events run | Forwarded unfiltered v2 events; 3,000+ events per run (P47) | Filter server-side: forward only on_chat_model_stream + optional tool events |
DeprecationWarning: astream_log is deprecated | Using soft-deprecated API (P67) | Migrate to astream_events(version="v2") |
| Agent has amnesia on every WebSocket message | Missing thread_id in config (P16) | Require thread_id at route; assert in middleware |
AttributeError: 'list' object has no attribute 'lower' on chunk.content | Claude streams content blocks, not plain strings on tool-use turns (P02) | Use chunk.text (1.0+) or check isinstance(chunk.content, str) before calling string methods |
| One slow request blocks all other WebSocket clients | Sync graph.stream() or graph.invoke() inside async handler (P48) | Always use graph.astream() / graph.ainvoke() in async contexts |
| Cloudflare Free plan buffers SSE | Free-tier response buffering | Upgrade plan with page rule to disable buffering, or switch endpoint to WebSocket |
stream_mode="messages" plus SSE plus the three anti-buffering headers. One
token per SSE frame (~5-50 bytes each), 30-80 frames/sec during active model
generation, heartbeat every 15s during tool waits. See
SSE Endpoint Template for the complete
FastAPI example including heartbeat, reverse-proxy config, and the client
EventSource code.
stream_mode="updates" yields one event per node (typically 2-20 per
invocation). Render as discrete status ticks: "Planning..." → "Searching..." →
"Summarizing..." → "Done." Payload is tiny (~100 bytes per tick). Combine with
"messages" (stream_mode=["updates", "messages"]) to show both progress
ticks and streaming tokens in the active node's pane. Full payload samples in
Stream Mode Comparison.
"values"stream_mode="values" yields the entire graph state after each node. Useful
for state replay, test recording, observability pipelines — not for
browser UIs where state size × steps × re-render quickly freezes the tab.
Pipe to a server-side log (or LangSmith), not to the browser. Example and
caveats in Stream Mode Comparison.
thread_idWhen users can cancel mid-stream or send follow-up messages before the
previous turn finishes. The thread_id is required at the route; the
checkpointer persists history; reconnecting with the same thread_id
automatically sees prior turns. Cancellation is implemented via
asyncio.Task.cancel() on the active astream iteration. Worked example
with half-open connection detection in
WebSocket & Reconnect.
astream_events v2StreamingResponseproxy_buffering directivedocs/pain-catalog.md (entries P16, P19, P22, P46, P47, P48, P67)© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/.curated/langchain-langgraph-streaming of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Langchain Langgraph Streaming next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Langchain Langgraph Streaming this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~4k | Automated safety check: Pass | MIT | |
| Agentsop Streaming Outputagentsope/SkillAlchemy | 436 | — | ~5.3k | Automated safety check: Pass | MIT | |
| Mem0 Platform SDKmem0ai/mem0 | 67k | 1 repos | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| LangSmith Trace DebuggingComposioHQ/awesome-claude-skills | 77k | 8 repos | ~2.7k | Automated safety check: Pass | None | |
| Add Example AgentGetBindu/Bindu | 10k | — | ~1.1k | Automated safety check: Notes | Custom licence | |
| Failproof AI SDK IntegrationFailproofAI/failproofai | 5.3k | — | ~6k | Automated safety check: Pass | Custom licence |
agentsope/SkillAlchemy
Enhancement-overlay decision protocol for STREAMING the output of long-running LLM / agent runs from the backend, not just wiring a typing animation in the UI.
mem0ai/mem0
Adds persistent memory to AI apps with the Mem0 Python and TypeScript SDKs: store, search, update and delete user memories, with framework integrations.
ComposioHQ/awesome-claude-skills
Debugs LangChain and LangGraph agents by pulling recent execution traces with the langsmith-fetch CLI and reporting errors, tool calls, timings and token use.
GetBindu/Bindu
Add a new self-contained example agent under examples/. An agent skill from GetBindu/Bindu.
FailproofAI/failproofai
Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.
TencentEdgeOne/edgeone-makers-tools
Migrate existing AI agent projects (LangChain, LangGraph, OpenAI Agents SDK, Claude Agent SDK, CrewAI) to EdgeOne Makers platform conventions.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Categories
Pick the correct LangGraph 1.0 streammode ("messages" vs "updates" vs "values"), wire it into SSE or WebSocket without proxy-buffering gotchas, and filter astreamevents(v2) server-side before…. Langchain Langgraph Streaming is an agent skill from jeremylongshore/tons-of-skills-marketplace.0 streammode ("messages" vs "updates" vs "values"), wire it into SSE or WebSocket without proxy-buffering gotchas, and filter astreamevents(v2) server-side before forwarding to the browser.
Langchain Langgraph Streaming fits situations like: building a live-token chat UI; A per-node progress bar; A debug/time-travel view; diagnosing a LangGraph stream that hangs over a production proxy.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a claude-code`. Or copy the skill folder (skills/.curated/langchain-langgraph-streaming in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/langchain-langgraph-streaming in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a codex`. Or copy the skill folder (skills/.curated/langchain-langgraph-streaming in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/langchain-langgraph-streaming in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-streaming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/langchain-langgraph-streaming, .gemini/skills/langchain-langgraph-streaming, .github/skills/langchain-langgraph-streaming and .opencode/skills/langchain-langgraph-streaming in your project.
Going by SKILL.md and its folder, Langchain Langgraph Streaming needs the command-line tools its instructions call (fastapi, uvicorn and curl). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(python:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 5 domains. As links in the text: langchain-ai.github.io, fastapi.tiangolo.com, python.langchain.com, cloud.google.com and nginx.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Langchain Langgraph Streaming is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 10k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Langchain Langgraph Streaming: Agentsop Streaming Output (agentsope/SkillAlchemy, 436 stars), Mem0 Platform SDK (mem0ai/mem0, 67k stars), LangSmith Trace Debugging (ComposioHQ/awesome-claude-skills, 77k stars) and Add Example Agent (GetBindu/Bindu, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.