New:Socket for Asana Is Now Available.Learn more โ†’
Get Started

@langchain/langgraph-sdk

Package Overview
Dependencies
Maintainers
2
Versions
215
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@langchain/langgraph-sdk

Client library for interacting with the LangGraph API

latest
Source
npmnpm
Version
1.10.0
Version published
Weekly downloads
3M
-0.19%
Maintainers
2
Weekly downloads
ย 
Created
Source

@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-clientPurposeDocs
client.threadsCreate threads, manage state, and stream runs.Threads ยท Streaming
client.assistantsCRUD for assistants (schemas, graphs, versions).Assistants
client.runsTrigger / join / cancel runs without streaming.Runs (legacy)
client.cronsSchedule recurring runs.Crons
client.storeNamespaced 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/:

PathModule
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.tsBaseClient, shared config & helpers
client/index.tsMain Client class & re-exports

Change log

See CHANGELOG.md.

FAQs

Package last updated on 26 Aug 2026

Related posts