Documents
README
README
Type
External
Status
Published
Created
Mar 17, 2026
Updated
Mar 17, 2026

@assistant-ui/react-google-adk#

Google ADK (Agent Development Kit) adapter for assistant-ui.

Connects Google ADK JS agents to assistant-ui's React runtime with streaming, tool calls, multi-agent support, tool confirmations, auth flows, and session state management.

Installation#

npm install @assistant-ui/react @assistant-ui/react-google-adk

Quick Start#

Proxy Mode (with a Next.js API Route)#

Server (app/api/adk/route.ts):

import { createAdkApiRoute } from "@assistant-ui/react-google-adk/server";
import { runner } from "./agent";

export const POST = createAdkApiRoute({
  runner,
  userId: "default-user",
  sessionId: (req) =>
    new URL(req.url).searchParams.get("sessionId") ?? "default",
});

Client:

import { useAdkRuntime, createAdkStream } from "@assistant-ui/react-google-adk";

const runtime = useAdkRuntime({
  stream: createAdkStream({ api: "/api/adk" }),
});

Direct Mode (connecting to an ADK server)#

import {
  useAdkRuntime,
  createAdkStream,
  createAdkSessionAdapter,
} from "@assistant-ui/react-google-adk";

const { adapter, load } = createAdkSessionAdapter({
  apiUrl: "http://localhost:8000",
  appName: "my-app",
  userId: "user-1",
});

const runtime = useAdkRuntime({
  stream: createAdkStream({
    api: "http://localhost:8000",
    appName: "my-app",
    userId: "user-1",
  }),
  sessionAdapter: adapter,
  load,
});

API Reference#

Client Exports#

createAdkStream(options)#

Creates an AdkStreamCallback that connects to an ADK endpoint via SSE.

OptionTypeDescription
apistringURL to POST to (proxy route or ADK server base URL)
appNamestring?ADK app name (enables direct mode when set)
userIdstring?ADK user ID (required with appName)
headersRecord<string, string> | (() => ...)Static or dynamic request headers

createAdkSessionAdapter(options)#

Creates a RemoteThreadListAdapter backed by ADK's session REST API.

Returns { adapter, load } where load reconstructs messages from session events.

OptionTypeDescription
apiUrlstringADK server base URL
appNamestringADK app name
userIdstringADK user ID
headersRecord<string, string> | (() => ...)Static or dynamic request headers

useAdkRuntime(options)#

Main hook that creates a full AssistantRuntime.

OptionTypeDescription
streamAdkStreamCallbackStream callback (use createAdkStream)
sessionAdapterRemoteThreadListAdapter?Alternative to cloud for thread persistence
cloudAssistantCloud?Cloud adapter for thread persistence
load(threadId: string) => Promise<{messages}>Load thread history
autoCancelPendingToolCallsboolean?Auto-cancel pending tools on new message (default: true)
unstable_allowCancellationboolean?Enable stream cancellation
getCheckpointId(threadId, messages) => Promise<string?>Enable edit/reload
adapters{attachments?, speech?, feedback?}Optional adapters
eventHandlers{onError?, onCustomEvent?, onAgentTransfer?}Event callbacks

Hooks#

HookDescription
useAdkAgentInfo()Current agent name and branch path
useAdkSessionState()Accumulated session state delta
useAdkSend()Send raw ADK messages
useAdkLongRunningToolIds()Pending tool IDs awaiting input
useAdkToolConfirmations()Tool confirmation requests
useAdkAuthRequests()Auth credential requests
useAdkArtifacts()Artifact delta (filename → version)
useAdkEscalation()Escalation flag
useAdkMessageMetadata()Per-message grounding/citation/usage

Server Exports (/server)#

createAdkApiRoute(options)#

One-liner API route handler combining request parsing and SSE streaming.

OptionTypeDescription
runnerAdkRunnerADK Runner instance
userIdstring | (req) => stringStatic or dynamic user ID
sessionIdstring | (req) => stringStatic or dynamic session ID
onError(error) => voidError handler

adkEventStream(events, options?)#

Converts an ADK event async generator into an SSE Response.

parseAdkRequest(request)#

Parses an incoming HTTP request into a structured ADK request.

toAdkContent(parsed)#

Converts a parsed request into a Google GenAI Content object.

Documentation#

See the full documentation for setup guides, advanced APIs, and examples.

License#

MIT