Files
langgraphjs/libs/sdk
github-actions[bot] 3dccad1391 chore: version packages (#2603)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-api@1.4.3

### Patch Changes

- Updated dependencies []:
  - @langchain/langgraph-ui@1.4.3
## @langchain/langgraph-cli@1.4.3

### Patch Changes

- [#2595](https://github.com/langchain-ai/langgraphjs/pull/2595)
[`dac8c2f`](https://github.com/langchain-ai/langgraphjs/commit/dac8c2fa7edfd643aa393a1d6407759b6cd8acf4)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore: bump langsmith to ^0.8.0

- Updated dependencies []:
  - @langchain/langgraph-api@1.4.3
## @langchain/langgraph@1.4.8

### Patch Changes

- [#2604](https://github.com/langchain-ai/langgraphjs/pull/2604)
[`42ec394`](https://github.com/langchain-ai/langgraphjs/commit/42ec39460bfe0c3be017fb043c668c3204c8a175)
Thanks [@hntrl](https://github.com/hntrl)! - fix(pregel): wait for
completed-superstep persistence with sync durability

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/langgraph-sdk@1.9.26

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- [#2602](https://github.com/langchain-ai/langgraphjs/pull/2602)
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)
Thanks [@HugoDurand](https://github.com/HugoDurand)! - fix(sdk): support
clearing a cron's end time via `crons.update(cronId, { endTime: null })`

`CronsClient.update` now accepts `endTime: null` to clear a previously
set cron end time; omitting `endTime` still leaves it unchanged. The
field was typed `string`, so callers could not express "clear" even
though the request already forwards an explicit `null`.
## @langchain/angular@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/react@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/svelte@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/vue@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/langgraph-ui@1.4.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-14 21:47:29 -07:00
..
2026-07-14 21:47:29 -07:00
2025-07-02 21:26:14 +02:00
2026-07-14 21:47:29 -07:00
2025-07-02 21:26:14 +02:00

@langchain/langgraph-sdk

The JavaScript / TypeScript SDK for talking to a LangGraph API server. Use it to create and manage assistants, threads, runs, cron schedules, and the KV store — and, most importantly, to stream graph executions in real time.

📚 Full documentation

Install

pnpm add @langchain/langgraph-sdk @langchain/core
# or: npm install @langchain/langgraph-sdk @langchain/core
# or: yarn add @langchain/langgraph-sdk @langchain/core

Quick start

import { Client } from "@langchain/langgraph-sdk";

const client = new Client({ apiUrl: "http://localhost:2024" });

// Open a thread-centric stream (the recommended way to stream).
const thread = client.threads.stream({ assistantId: "my-agent" });

await thread.run.start({
  input: { messages: [{ role: "user", content: "hello" }] },
});

for await (const message of thread.messages) {
  for await (const token of message.text) {
    process.stdout.write(token);
  }
}

console.log(await thread.output);
await thread.close();

With no apiUrl, the SDK points at http://localhost:2024 (the default langgraph dev URL).

What's in the SDK

Sub-client Purpose Docs
client.threads Create threads, manage state, and stream runs. Threads · Streaming
client.assistants CRUD for assistants (schemas, graphs, versions). Assistants
client.runs Trigger / join / cancel runs without streaming. Runs (legacy)
client.crons Schedule recurring runs. Crons
client.store Namespaced KV + semantic store. Store

Streaming

client.threads.stream(...) returns a ThreadStream with typed, lazy projections for every aspect of a run:

  • thread.messages / thread.toolCalls — assembled chat output.
  • thread.values / thread.output — graph state and final answer.
  • thread.interrupts / thread.interrupted — human-in-the-loop.
  • thread.subgraphs / thread.subagents — nested / deep-agent work.
  • thread.extensions.<name> — typed custom server projections.
  • thread.audio / thread.images / thread.video / thread.files — media.

Deprecated. The generator-based streaming APIs on client.runs.* (stream, joinStream) and client.threads.joinStream are preserved for backwards compatibility only. New code should use client.threads.stream(...). See Runs (legacy) for migration guidance.

Transports

Streaming defaults to Server-Sent Events (SSE) over HTTP. You can switch to WebSocket per-call or globally, or plug in a custom AgentServerAdapter:

const thread = client.threads.stream({
  assistantId: "my-agent",
  transport: "websocket",
});

See Transports for full details.

Framework adapters

If you're building a UI, use the framework-specific packages that wrap this SDK:

Use the SDK directly when you need low-level control, run it from a non-browser environment (Node.js server, edge workers, scripts), or integrate into a framework that does not yet have a first-party adapter.

Architecture

The client code is organized into sub-client modules under src/client/:

Path Module
client/assistants/ AssistantsClient
client/threads/ ThreadsClient (includes the v2 stream(...) primitive)
client/runs/ RunsClient (legacy streaming + CRUD)
client/crons/ CronsClient
client/store/ StoreClient
client/stream/ ThreadStream, assemblers, transports
client/base.ts BaseClient, shared config & helpers
client/index.ts Main Client class & re-exports

Change log

See CHANGELOG.md.