Skip to content

Roadmap ​

What works today, what's coming, and what deliberately isn't. For when something landed, see the changelog; hit a gap, or one not listed here? File an issue — compatibility reports are the most useful feedback we get.

What's supported ​

Measured against the LangGraph CLI and LangGraph Platform, since skein-js is a drop-in for the first and an open alternative to the second.

CLI and runtimes

CapabilityStatusNotes
dev / up / build / dockerfile✅Drop-in, plus skein-only start and import-langgraph. Details
Project scaffolding✅npm create skein-js@latest — no LangGraph Platform equivalent. Details
Node 24 production runtime✅Default production image and fallback
Bun / Deno production runtimes⚠️ previewFetch launchers and images ship; clean-artifact matrices must graduate each
Express · Fastify · NestJS · Next.js · Fetch✅Standalone or embedded in an app you already run. Details
Embed a graph in code, no CLI✅Details
A graph as a plain endpoint✅POST /invoke/:graph_id. Details

Protocol surface

Native embedded callers and optional BullMQ access share authorized admission, strict resume, retained results and the existing outbox. See native access and its security and operations guide. This adds no A2A/MCP features.

CapabilityStatusNotes
Assistants / threads / runs / store✅Routes and request bodies, guarded against SDK drift
Assistants CRUD + versioning✅Version history and rollback; graph/subgraph introspection. Details
Streaming, incl. true events mode✅Real streamEvents v2. Details
Human-in-the-loop (interrupt / resume)✅Via LangGraph checkpointers. Details
Time travel — fork from a checkpoint✅Read, update and run from any prior checkpoint. Details
Multitask / double-texting✅All four strategies, correct across instances. Details
Stateless + batch runs, thread count/prune✅POST /runs, /runs/batch, /runs/cancel
Auth + authorization✅LangGraph Auth parity, ownership filters in the driver query. Details
Run-completion webhooks✅Ordinary webhooks are also available on Platform; Skein adds durable, signed, retried, replayable delivery. Details
http.disable_* flags · GET /info✅/ok stays outside the table, so no flag can break the probe
Idempotent run creation✅No LangGraph Platform equivalent. Details
MCP endpoint (/mcp)✅Official SDK stateless Streamable HTTP; authorized assistants become tools
Generative UI (/ui/{agent})✅Public upstream compiler/watch API and compiled production assets
/docs OpenAPI page✅Generated from shared operation contracts; http.disable_docs hides the reference independently

Storage, scale and operations

CapabilityStatusNotes
In-memory (dev) · Postgres + pgvector✅Details
SQLite local deployment✅@skein-js/storage-sqlite and @skein-js/local; CLI, Electron and Tauri examples. Details
Bring your own store (store.adapter)✅Details
Store TTL · filter · namespace traversal✅Details
Thread TTL✅Past LangGraph OSS, which drops ttl on the floor
Multi-instance✅Atomic create guard, cross-instance cancel, per-thread execution claim. Details
Cron / scheduled runs✅Full Crons resource + scheduler, every driver. Details
Observability✅LangSmith, PostHog, OpenTelemetry. Details
Console / Studio equivalent✅Self-hosted at /console — no account, no tunnel. Details
Workflows & channels✅LangGraph workflows between authenticated sources and durable, allowlisted destinations. Details

Compatibility delivery and remaining work ​

Use the compatibility reference for verified SDK versions and intentional differences. Shipped capabilities include MCP/A2A, compiled graph UI and custom applications, OpenAPI/docs, diagnostics, and cross-thread run search. Bundled queues dispatch independent threads while another thread is busy.

Bun and Deno remain preview deployment targets. There is no global run-search screen in the console; use the HTTP endpoint when you need a server-wide query. Open issues and the changelog track further work; this page does not promise delivery dates. Dated implementation evidence belongs in the contributor testing guide.

Non-goals ​

  • ❌ 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. A 5-field expression can't express them, and accepting a 6-field one would run a schedule at a different time than its author's crontab says.
  • ❌ Backfilling missed cron occurrences. A cron due during an outage fires once on return and resyncs rather than replaying the backlog. Details.