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
| Capability | Status | Notes |
|---|---|---|
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 | ⚠️ preview | Fetch 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.
| Capability | Status | Notes |
|---|---|---|
| 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
| Capability | Status | Notes |
|---|---|---|
| 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 deployto 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.