Skip to content

Features

What skein-js can do, in one page. Find the row that matches what you're trying to build, then follow the link. ✅ ships today · ⚠️ preview · 🗺️ planned.

Comparing against LangGraph Platform specifically? roadmap.md has the same ground organised by parity instead.

Run agents

CapabilityStatusWhat it gets you
Background jobsFire-and-forget work: hand skein a job, get an id back, hear the result by webhook
Background runsReturn immediately, let the graph keep working, join the stream later
Wait / stream runsHold the connection for the answer, or stream tokens as they're produced
Stateless & batch runsOne-shot calls with no conversation to keep; up to 100 runs per request
Multitask / double-textingDecide what a second message does to the run already going — all four strategies
Cancel & rollbackStop a run, keeping its writes or discarding them
Run timeoutsBound a graph that hangs, instead of losing a worker slot
Idempotent run creationA retrying caller can't start the same run twice. No LangGraph Platform equivalent
Cron schedulesFire a graph on a schedule, exactly once across instances, no leader election
A graph as a plain endpointPOST /invoke/:graph_id — body in, final state out, no threads or runs

Hold a conversation

CapabilityStatusWhat it gets you
State, context & persistenceWhat the agent knows, what's only for this run, and what survives a restart
ThreadsConversations that persist, addressable by your own key (a ticket id, a phone number)
Streaming (SSE)Tokens, tool calls and reasoning as they happen — including a true events mode
Reconnect & joinResume a dropped stream, or tail the same run from a second client
Human-in-the-loopPause for approval and resume hours later, from anywhere
Time travelFork from any past checkpoint and run forward — "edit and resubmit"
Thread state & historyRead, patch, page, copy or prune a conversation's state
Thread TTLExpire conversations automatically. LangGraph OSS ignores ttl; skein doesn't
Assistants & versioningShip a prompt change without redeploying, and roll it back in one call
useStream and friendsThe LangChain client ecosystem works unchanged — React, Vue, Svelte, Angular

Remember things

CapabilityStatusWhat it gets you
The store, via getStore()Memory that outlives a conversation, reachable from inside a graph node
Semantic searchpgvector-backed recall, with optional HNSW indexing
Filters & namespace traversalQuery memory by value, and walk namespaces with wildcards
Store TTLExpire memories, optionally refreshing on read
Bring your own storePoint skein at a LangGraph BaseStore or your own implementation
Memory patternsProfile vs collection shapes, the dedup trap, recall, background writes

Build workflows across your systems

LangGraph owns workflow orchestration; it doesn't own provider integrations. Skein channels supply the authenticated sources and durable destinations around the graph.

CapabilityStatusWhat it gets you
Workflows & channelsTurn provider events into real processes with durable outcomes
Run-completion webhooksBe told a run finished — durably, so a receiver's redeploy doesn't lose the news
Signed callbacksReceivers can prove a callback is yours and reject replays. The verifier ships too
Deliveries & replaySee every attempt, and re-send one by hand when it never landed
Custom authLangGraph's Auth model, drop-in, with ownership filters pushed into the query
Telemetry sinksLangSmith, PostHog, OpenTelemetry — or your own TelemetrySink
MCP endpoint🗺️Expose your graphs as MCP tools

Operate it

CapabilityStatusWhat it gets you
The consoleTest graphs and track channel wiring, interrupts and deliveries at /console
Postgres + pgvectorThe production storage driver, with automatic migrations
Redis queue & pub/subDurable run queue and cross-instance streaming
Multi-instanceAtomic create guard, cross-instance cancel, per-thread execution claim
Errors & loggingWhat a failed run reports, and where — wire, log, and callback
Deploy anywhereOne image; guides for Cloud Run, Fly, Railway, Render, AWS, Kubernetes, a VPS
Performance tuningEvery knob in one table, plus symptom → knob triage
Bun / Deno runtimes⚠️ previewFetch launchers and images ship; the runtime matrices must graduate each

Build on it

CapabilityStatusWhat it gets you
Framework adaptersExpress, Fastify, NestJS, Next.js, native Fetch — standalone or embedded
Embed a graph in codeNo langgraph.json, no CLI — bring a compiled graph and mount it
Drop-in LangGraph CLIskein dev for langgraph dev, with your langgraph.json unchanged
Scaffoldingnpm create skein-js@latest — a working project, no API key needed
Your own adapterPut the handler table on any HTTP framework
Your own agent runtimeServe the Agent Protocol from something that isn't LangGraph

Deliberately not

  • WebSocket transport — SSE covers the client UX and doesn't affect the React SDK.
  • skein deploy to a hosted platform — self-hosted by design; there's no managed target.
  • Sub-minute cron schedules, and backfilling missed occurrences — see crons.md.
  • Exactly-once webhook delivery — delivery is durable and retried, but at-least-once, so every attempt carries a stable dedup key. See webhooks.md.

Something missing? File an issue — compatibility reports are the most useful feedback we get.