skein-js 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -49
- package/package.json +9 -8
package/README.md
CHANGED
|
@@ -1,81 +1,104 @@
|
|
|
1
1
|
# skein-js
|
|
2
2
|
|
|
3
|
-
> The skein
|
|
3
|
+
> The `skein` CLI — a drop-in replacement for the LangGraph CLI (`dev` / `up` / `build` / `dockerfile`).
|
|
4
4
|
|
|
5
|
-
Part of **[skein-js](
|
|
5
|
+
Part of **[skein-js](../../README.md)** — a TypeScript [Agent Protocol](https://github.com/langchain-ai/agent-protocol) server for [LangGraph.js](https://github.com/langchain-ai/langgraphjs), and a drop-in replacement for the LangGraph CLI.
|
|
6
6
|
|
|
7
7
|
**Status:** 🚧 Pre-alpha — `dev`, `up`, `build`, and `dockerfile` all work today.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
This is the only package most projects install. Point `skein` at your existing `langgraph.json` and
|
|
10
|
+
your graph code, config, and clients keep working unchanged — the swap from the LangGraph CLI is a
|
|
11
|
+
one-word change (`langgraph dev` → `skein dev`).
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Contents
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| Local `dev` | free in-memory dev server (Hono) | free in-process dev server, hot reload |
|
|
22
|
-
| Self-hosting in production | requires an enterprise license key (Elastic License 2.0) | Apache-2.0, **no license key** |
|
|
23
|
-
| Production path | LangGraph Platform (hosted, or licensed self-host) | self-hosted Docker Compose you own (`skein up`) |
|
|
24
|
-
| Persistence | platform-managed | your Postgres (+ pgvector) and Redis |
|
|
25
|
-
| HTTP framework | Hono | Express (Fastify / NestJS to follow) |
|
|
26
|
-
|
|
27
|
-
### When the LangGraph Platform is the better call
|
|
28
|
-
|
|
29
|
-
skein-js isn't strictly better — it's a different trade, and it's worth being clear about what the Enterprise plan actually buys. It isn't hosting: even on LangGraph's self-hosted tier you still run your own Postgres, Redis, and infrastructure. What you're paying for is **LangChain's support** — dedicated support, response-time SLAs, and architectural guidance from the team that builds LangGraph — plus enterprise features like SSO, RBAC, and SOC2. If you're an established product with real revenue and you want a vendor standing behind your agent stack, that's genuine value, and the Platform is a sound choice.
|
|
30
|
-
|
|
31
|
-
skein-js gives you the code and full ownership — not a support contract. **It's for you if** you're earlier-stage or cost-sensitive, don't need (or don't want to buy) an enterprise support relationship, want to keep data in your own infrastructure, run a TypeScript/Node stack, or just want to own your agent infrastructure end to end with no license and no vendor lock-in.
|
|
32
|
-
|
|
33
|
-
The graph code and `langgraph.json` stay unchanged — see the full [Why skein-js comparison](../../README.md#why-skein-js) and the [reuse-first architecture](../../docs/reuse.md).
|
|
34
|
-
|
|
35
|
-
## What it does
|
|
36
|
-
|
|
37
|
-
`skein dev` (in-process, hot reload, no Docker), `skein up` (Docker Compose: app + Postgres + Redis), `skein build` / `skein dockerfile`. The one-word swap from `langgraph dev` → `skein dev`.
|
|
38
|
-
|
|
39
|
-
## Reuse
|
|
40
|
-
|
|
41
|
-
Mirrors `@langchain/langgraph-cli` semantics and reads an unchanged `langgraph.json`. Reuses `@skein-js/config` (built on `@langchain/langgraph-api`'s parser) for graph loading.
|
|
15
|
+
- [Install](#install)
|
|
16
|
+
- [Usage](#usage)
|
|
17
|
+
- [Commands](#commands)
|
|
18
|
+
- [`skein dev` flags](#skein-dev-flags)
|
|
19
|
+
- [Self-hosted, no lock-in](#self-hosted-no-lock-in)
|
|
20
|
+
- [When the managed platform may fit you better](#when-the-managed-platform-may-fit-you-better)
|
|
21
|
+
- [Learn more](#learn-more)
|
|
22
|
+
- [License](#license)
|
|
42
23
|
|
|
43
24
|
## Install
|
|
44
25
|
|
|
45
26
|
```bash
|
|
46
|
-
pnpm add skein-js
|
|
27
|
+
pnpm add -D skein-js # or: npm i -D skein-js · yarn add -D skein-js
|
|
47
28
|
```
|
|
48
29
|
|
|
49
30
|
## Usage
|
|
50
31
|
|
|
51
|
-
Swap it into your `package.json` scripts
|
|
52
|
-
|
|
32
|
+
Swap it into your `package.json` scripts — your `langgraph.json` is unchanged:
|
|
33
|
+
|
|
34
|
+
```jsonc
|
|
35
|
+
{
|
|
36
|
+
"scripts": {
|
|
37
|
+
"dev": "skein dev", // was: "langgraph dev"
|
|
38
|
+
"up": "skein up", // was: "langgraph up"
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Then run the dev server (in-process, hot reload, no Docker):
|
|
53
44
|
|
|
54
45
|
```bash
|
|
55
|
-
|
|
46
|
+
pnpm skein dev # → http://127.0.0.1:2024
|
|
56
47
|
```
|
|
57
48
|
|
|
58
|
-
|
|
49
|
+
Talk to it with the official `@langchain/langgraph-sdk` client, `useStream`, Agent Chat UI, or
|
|
50
|
+
LangGraph Studio — any Agent Protocol client works with only a URL change. See the
|
|
51
|
+
[Quick start](../../README.md#quick-start).
|
|
59
52
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
| `skein
|
|
65
|
-
| `skein
|
|
53
|
+
## Commands
|
|
54
|
+
|
|
55
|
+
| Command | What it does | LangGraph CLI equivalent | Key flags |
|
|
56
|
+
| ------------------ | -------------------------------------------------------------- | ------------------------ | ---------------------------------------------- |
|
|
57
|
+
| `skein dev` | In-process dev server, hot reload, `.skein/` state, no Docker. | `langgraph dev` | see [`skein dev` flags](#skein-dev-flags) |
|
|
58
|
+
| `skein up` | Self-hosted stack via Docker Compose (app + Postgres + Redis). | `langgraph up` | `-p, --port` (8123) · `--host` (0.0.0.0) |
|
|
59
|
+
| `skein build` | Build a deployable Docker image from the config. | `langgraph build` | `-t, --tag` (defaults to the project dir name) |
|
|
60
|
+
| `skein dockerfile` | Emit a standalone Dockerfile (stdout by default). | `langgraph dockerfile` | `-o, --output <path>` |
|
|
66
61
|
|
|
67
62
|
All commands take `-c, --config <path>` (default `langgraph.json`).
|
|
68
63
|
|
|
64
|
+
## `skein dev` flags
|
|
65
|
+
|
|
66
|
+
| Flag | Values | Default | Notes |
|
|
67
|
+
| ------------------ | -------------------- | ----------- | -------------------------------------------------------------- |
|
|
68
|
+
| `-p, --port` | number | `2024` | Port to listen on. |
|
|
69
|
+
| `--host` | host | `127.0.0.1` | Interface to bind. |
|
|
70
|
+
| `--store <driver>` | `memory`, `postgres` | `memory` | `postgres` reads `DATABASE_URL`; also selects `PostgresSaver`. |
|
|
71
|
+
| `--queue <driver>` | `memory`, `redis` | `memory` | `redis` reads `REDIS_URL` (BullMQ queue + Redis Streams bus). |
|
|
72
|
+
| `--no-persist` | — | persists | Don't snapshot dev state to `.skein/` across restarts. |
|
|
73
|
+
| `--no-reload` | — | reloads | Disable hot reload on source change. |
|
|
74
|
+
| `-v, --verbose` | — | off | Log per-run activity (tool calls, interrupts, timing). |
|
|
75
|
+
|
|
69
76
|
`skein dev --store postgres --queue redis` is a capability the LangGraph CLI does **not** offer: it
|
|
70
77
|
lets you develop against **production-shaped** storage (durable Postgres checkpoints, pgvector
|
|
71
|
-
search, cross-instance Redis streaming) with hot reload and no Docker.
|
|
72
|
-
`
|
|
78
|
+
search, cross-instance Redis streaming) with hot reload and no Docker. Full mapping and the
|
|
79
|
+
annotated `langgraph.json`: [docs/langgraph-cli-compat.md](../../docs/langgraph-cli-compat.md).
|
|
80
|
+
|
|
81
|
+
## Self-hosted, no lock-in
|
|
82
|
+
|
|
83
|
+
skein-js is **Apache-2.0** and builds only on the **MIT-licensed** `@langchain/*` packages, so you
|
|
84
|
+
run your LangGraph.js graphs behind the standard Agent Protocol on **your own infrastructure** — no
|
|
85
|
+
license key, no per-deployment fee, and no vendor lock-in. `skein up` brings up a Docker Compose
|
|
86
|
+
stack (app + your Postgres + your Redis) that you own end to end.
|
|
87
|
+
|
|
88
|
+
## When the managed platform may fit you better
|
|
89
|
+
|
|
90
|
+
skein-js gives you the code and full ownership, not a support contract. If you're an established
|
|
91
|
+
product that wants a vendor standing behind your agent stack — dedicated support with response-time
|
|
92
|
+
SLAs, plus enterprise features like SSO, RBAC, and SOC2 — LangGraph Platform's Enterprise plan is a
|
|
93
|
+
sound choice. Your graph code and `langgraph.json` stay unchanged either way, so switching between
|
|
94
|
+
them is cheap. See the [reuse-first architecture](../../docs/reuse.md) for how little skein-js adds
|
|
95
|
+
on top of the open LangGraph runtime.
|
|
73
96
|
|
|
74
97
|
## Learn more
|
|
75
98
|
|
|
76
|
-
- [
|
|
77
|
-
- [Reuse-first architecture](../../docs/reuse.md)
|
|
78
|
-
- [
|
|
99
|
+
- [LangGraph CLI compatibility](../../docs/langgraph-cli-compat.md) — commands + `langgraph.json` fields
|
|
100
|
+
- [skein-js overview](../../docs/index.md) · [Reuse-first architecture](../../docs/reuse.md) · [Roadmap](../../docs/roadmap.md)
|
|
101
|
+
- [skein-js root README](../../README.md)
|
|
79
102
|
|
|
80
103
|
## License
|
|
81
104
|
|
package/package.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skein-js",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "The skein-js CLI — a drop-in replacement for the LangGraph CLI (dev/up/build/dockerfile).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Maina Wycliffe <wmmaina7@gmail.com>",
|
|
7
|
-
"homepage": "https://github.com/mainawycliffe/skein/tree/main/packages/cli#readme",
|
|
7
|
+
"homepage": "https://github.com/mainawycliffe/skein-js/tree/main/packages/cli#readme",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/mainawycliffe/skein.git",
|
|
10
|
+
"url": "git+https://github.com/mainawycliffe/skein-js.git",
|
|
11
11
|
"directory": "packages/cli"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/mainawycliffe/skein/issues"
|
|
14
|
+
"url": "https://github.com/mainawycliffe/skein-js/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
|
+
"typescript",
|
|
17
18
|
"langgraph",
|
|
18
19
|
"cli",
|
|
19
20
|
"agent-protocol",
|
|
@@ -47,10 +48,10 @@
|
|
|
47
48
|
"@langchain/langgraph-checkpoint-postgres": "^1.0.4",
|
|
48
49
|
"commander": "~13.1.0",
|
|
49
50
|
"vite": "^8.1.0",
|
|
50
|
-
"@skein-js/config": "0.1
|
|
51
|
-
"@skein-js/
|
|
52
|
-
"@skein-js/
|
|
53
|
-
"@skein-js/runtime": "0.1
|
|
51
|
+
"@skein-js/config": "0.2.1",
|
|
52
|
+
"@skein-js/core": "0.2.1",
|
|
53
|
+
"@skein-js/express": "0.2.1",
|
|
54
|
+
"@skein-js/runtime": "0.2.1"
|
|
54
55
|
},
|
|
55
56
|
"peerDependencies": {
|
|
56
57
|
"@langchain/langgraph": "^1.4.0"
|