Demos

116 results

Most Popular

LangGraph (Python)LangGraph Platform

CLI Start Command

Copy-paste command to clone the canonical starter

LangGraph (Python)LangGraph Platform

Pre-Built: CopilotChat

Vanilla CopilotChat with three starter-prompt suggestions — the minimum-viable surface for free-form chat

LangGraph (Python)LangGraph Platform

Chat Customization: CSS

Default CopilotChat re-themed via CopilotKitCSSProperties

LangGraph (Python)LangGraph Platform

Generative UI: Tool Rendering (Default)

Out-of-the-box tool rendering — backend defines the tools; the frontend adds zero custom renderers and relies on CopilotKit's built-in default UI

LangGraph (Python)LangGraph Platform

Generative UI: Tool Rendering (Catch-all)

Single branded wildcard renderer via useDefaultRenderTool — the same app-designed card paints every tool call

LangGraph (Python)LangGraph Platform

Frontend Tools: In-app Actions

Agent invokes client-side handlers registered with useFrontendTool

LangGraph (Python)LangGraph Platform

Frontend Tools: Async

useFrontendTool with an async handler — agent awaits a client-side async operation (simulated notes DB query) and uses the returned result

LangGraph (Python)LangGraph Platform

Human In the Loop: In-chat

Time-slot picker rendered inline in the chat via `useHumanInTheLoop` — the agent requests user input, the frontend renders a TimePickerCard, and the user's choice resumes the agent.

LangGraph (Python)LangGraph Platform

Human in the Loop: In-app

Agent requests approval via useFrontendTool with an async handler; the approval UI pops up as an app-level modal OUTSIDE the chat, and a completion callback resolves the pending tool Promise with the user's decision

LangGraph (Python)LangGraph Platform

Generative UI: Tool Rendering (Custom)

Custom per-tool renderers (WeatherCard, FlightListCard) plus a wildcard catch-all for every other tool

LangGraph (Python)LangGraph Platform

Generative UI: Tool calls + reasoning

Per-tool renderers (WeatherCard, FlightListCard, custom catchall) interleaved with a reasoningMessage slot rendering the agent's reasoning tokens — combines reasoning-display + tool-rendering in one chat surface.

LangGraph (Python)LangGraph Platform

Generative UI: useComponent

Agent uses tools to trigger UI generation

LangGraph (Python)LangGraph Platform

Generative UI: Agent State

Agent-state-driven Gen UI — the agent plans a live step list via Command(update={steps}); the frontend subscribes through useAgent and renders the steps inside CopilotChat's messageView.children slot.

LangGraph (Python)LangGraph Platform

Shared State: Streaming

Per-token state delta streaming from agent to UI

LangGraph (Python)LangGraph Platform

Shared State: Read + Write

Bidirectional shared state — UI writes preferences via agent.setState; agent writes notes via a Command-returning tool

LangGraph (Python)LangGraph Platform

Shared State: Read-only

Recipe editor publishes form state via agent.setState; the agent reads the recipe context but does not mutate it (no backend tool — neutral default agent).

LangGraph (Python)LangGraph Platform

Sub-Agents

Multiple agents with visible task delegation

LangGraph (Python)LangGraph Platform

Pre-Built: Sidebar

Docked sidebar chat via <CopilotSidebar />

LangGraph (Python)LangGraph Platform

Pre-Built: Popup

Floating popup chat via <CopilotPopup />

LangGraph (Python)LangGraph Platform

Chat Customization: Slots

Customize CopilotChat via its slot system

LangGraph (Python)LangGraph Platform

Headless UI: Simple

Minimum viable headless chat — useAgent + useCopilotKit dressed in shadcn/ui primitives. No tool rendering, no generative UI, just text in / text out.

LangGraph (Python)LangGraph Platform

Headless UI: Complete

Full headless surface — hand-rolled CopilotChat replacement that wires every render hook (useRenderTool, useDefaultRenderTool, useComponent, useRenderToolCall, useRenderActivityMessage, useSuggestions, useAttachments) on top of shadcn primitives.

LangGraph (Python)LangGraph Platform

Reasoning: Default

Built-in CopilotChatReasoningMessage rendering with no slot override.

LangGraph (Python)LangGraph Platform

Reasoning: Custom

Visible reasoning/thinking chain alongside the final answer

LangGraph (Python)LangGraph Platform

Human in the Loop: Interrupts

Interactive component rendered inline in the chat via the lower-level `useInterrupt` primitive — direct control over the LangGraph interrupt lifecycle

LangGraph (Python)LangGraph Platform

Human in the Loop: Headless Interrupts

Same interrupt(...) backend pattern as gen-ui-interrupt, but the time-picker mounts in a separate app-surface pane (left) instead of inline inside the chat — uses useHeadlessInterrupt (custom-event subscribe + manual runAgent forwardedProps.command.resume).

LangGraph (Python)LangGraph Platform

Declarative UI: Dynamic A2UI

Canonical A2UI BYOC — custom catalog (Card/StatusBadge/Metric/InfoRow/PrimaryButton) wired via a2ui.catalog on the provider

LangGraph (Python)LangGraph Platform

Declarative UI: Fixed A2UI

Render an A2UI tree from a fixed, server-side schema — the agent streams data into a pre-authored component tree

LangGraph (Python)LangGraph Platform

MCP Apps

MCP server-driven UI via activity renderers

LangGraph (Python)LangGraph Platform

Shared State: Frontend Context

Frontend provides read-only context to the agent via useAgentContext

LangGraph (Python)LangGraph Platform

Declarative UI: json-render

Streaming hierarchical JSON UI spec rendered via @json-render/react, with a Zod-validated catalog (MetricCard + PieChart + BarChart)

LangGraph (Python)LangGraph Platform

Beautiful Chat

Canonical polished starter chat — brand fonts, theme tokens, suggestion pills

LangGraph (Python)LangGraph Platform

Attachments

Image and PDF uploads via CopilotChat attachments, processed by a vision-capable agent

LangGraph (Python)LangGraph Platform

Authentication

Bearer-token gate via runtime onRequest hook with unauthenticated / authenticated states

LangGraph (Python)LangGraph Platform

Declarative UI: Hashbrown

Streaming structured output via @hashbrownai/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)

LangGraph (Python)LangGraph Platform

Open Generative UI: Default

Agent composes UI from a registered component library — distinct from Tool Rendering, which attaches a custom renderer to a *named* backend tool. Use Open Generative UI when you want the agent to assemble UI freely from a palette you control.

LangGraph (Python)LangGraph Platform

Open Generative UI: Custom

Same Open Generative UI surface, with the iframe-rendered components able to call back into frontend sandbox functions (e.g., a Calculator app whose buttons trigger handlers in the host page).

LangGraph (Python)LangGraph Platform

Voice

Speech-to-text via @copilotkit/voice with a bundled sample audio button

LangGraph (Python)LangGraph Platform

Agent Config Object

Forward a typed config object (tone / expertise / response length) from the provider to the agent's dynamic system prompt

Agent Frameworks

Google ADKGoogle AI Studio

CLI Start Command

Copy-paste command to clone the canonical starter

Google ADKGoogle AI Studio

Pre-Built: CopilotChat

Vanilla CopilotChat with three starter-prompt suggestions — the minimum-viable surface for free-form chat

Google ADKGoogle AI Studio

Chat Customization (CSS)

Default CopilotChat re-themed via CopilotKitCSSProperties

Google ADKGoogle AI Studio

Tool Rendering (Default Catch-all)

Out-of-the-box tool rendering — backend defines the tools; the frontend adds zero custom renderers and relies on CopilotKit's built-in default UI

Google ADKGoogle AI Studio

Tool Rendering (Custom Catch-all)

Single branded wildcard renderer via useDefaultRenderTool — the same app-designed card paints every tool call

Google ADKGoogle AI Studio

Frontend Tools (In-App Actions)

Agent invokes client-side handlers registered with useFrontendTool

Google ADKGoogle AI Studio

Frontend Tools (Async)

useFrontendTool with an async handler — agent awaits a client-side async operation and uses the returned result

Google ADKGoogle AI Studio

Human In the Loop: In-chat

Time-slot picker rendered inline in the chat via `useHumanInTheLoop` — the agent requests user input, the frontend renders a TimePickerCard, and the user's choice resumes the agent.

Google ADKGoogle AI Studio

MCP Apps

Runtime mcpApps config wires an Excalidraw MCP server; the built-in MCPAppsActivityRenderer renders the sandboxed iframe inline in the chat with no app-side renderer

Google ADKGoogle AI Studio

In-App Human in the Loop (Frontend Tools + async HITL)

Agent requests approval via a frontend tool with an async handler; the approval UI pops up as an app-level modal OUTSIDE the chat, and a completion callback resolves the pending tool Promise with the user's decision

Google ADKGoogle AI Studio

Human in the Loop: Interrupts

Interactive time-picker rendered inline in the chat. ADK has no LangGraph interrupt() primitive, so this uses the Strategy-B adaptation — the agent calls a frontend schedule_meeting tool (useHumanInTheLoop) whose Promise resolves only once the user picks a slot, giving the same inline-card UX as the LangGraph reference.

Google ADKGoogle AI Studio

Tool Rendering

Custom per-tool renderers (WeatherCard, FlightListCard) plus a wildcard catch-all for every other tool

Google ADKGoogle AI Studio

Tool-Based Generative UI

Agent uses tools to trigger UI generation

Google ADKGoogle AI Studio

Agentic Generative UI

Canonical agent-state-driven Gen UI — the agent plans a live step list and emits it via state["steps"]; the frontend renders it via useAgent

Google ADKGoogle AI Studio

Shared State: Read-only

Recipe editor publishes form state via agent.setState; the agent reads the recipe context but does not mutate it (no backend tool — neutral default agent).

Google ADKGoogle AI Studio

Shared State: Read + Write

Bidirectional shared state — UI writes preferences via agent.setState; agent writes notes via a Command-returning tool

Google ADKGoogle AI Studio

State Streaming

Per-token state delta streaming from agent to UI via PredictStateMapping

Google ADKGoogle AI Studio

Sub-Agents

Multiple agents with visible task delegation

Google ADKGoogle AI Studio

Pre-Built: Sidebar

Docked sidebar chat via <CopilotSidebar />

Google ADKGoogle AI Studio

Pre-Built: Popup

Floating popup chat via <CopilotPopup />

Google ADKGoogle AI Studio

Chat Customization (Slots)

Customize CopilotChat via its slot system

Google ADKGoogle AI Studio

Headless Chat (Simple)

Minimal custom chat surface built on useAgent

Google ADKGoogle AI Studio

Headless Chat (Complete)

Full chat implementation built from scratch on useAgent

Google ADKGoogle AI Studio

Reasoning: Custom

Visible reasoning/thinking chain alongside the final answer (Gemini 3.1 thinking mode)

Google ADKGoogle AI Studio

Reasoning: Default

Built-in CopilotChatReasoningMessage rendering with no slot override.

Google ADKGoogle AI Studio

Declarative Generative UI (A2UI)

Canonical A2UI BYOC — custom catalog (Card/StatusBadge/Metric/InfoRow/PrimaryButton) wired via a2ui.catalog on the provider; the runtime injects the render_a2ui tool automatically (injectA2UITool=true) and the ag_ui_adk adapter auto-injects generate_a2ui

Google ADKGoogle AI Studio

Declarative Generative UI (A2UI — Fixed Schema)

A2UI rendering against a known client-side schema

Google ADKGoogle AI Studio

A2UI Error Recovery

Makes the A2UI validate->retry recovery loop visible — an invalid first render heals to a valid one, and an always-invalid render shows a graceful recovery-exhausted fallback. ADK-only (the recovery loop + hard-fail live in the ag_ui_adk middleware; the langgraph-python runtime path has no equivalent). Backend-owned via get_a2ui_tool (injectA2UITool=false); reuses the declarative-gen-ui catalog.

Google ADKGoogle AI Studio

Readonly State (Agent Context)

Frontend provides read-only context to the agent via useAgentContext

Google ADKGoogle AI Studio

Tool Rendering + Reasoning Chain (testing)

Sequential tool calls with reasoning tokens rendered side-by-side

Google ADKGoogle AI Studio

Declarative UI: json-render

Streaming hierarchical JSON UI spec rendered via @json-render/react, with a Zod-validated catalog (MetricCard + PieChart + BarChart)

Google ADKGoogle AI Studio

Beautiful Chat

Canonical polished starter chat — brand fonts, theme tokens, suggestion pills

Google ADKGoogle AI Studio

Multimodal Attachments

Image and PDF uploads via CopilotChat attachments, processed by a Gemini multimodal agent

Google ADKGoogle AI Studio

Authentication

Bearer-token gate via runtime onRequest hook with unauthenticated / authenticated states

Google ADKGoogle AI Studio

Declarative UI: Hashbrown

Streaming structured output via @hashbrownai/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)

Google ADKGoogle AI Studio

Fully Open-Ended Generative UI

Agent generates UI from an arbitrary component library

Google ADKGoogle AI Studio

Open-Ended Gen UI (Advanced: with frontend function calling)

Agent-authored UI that can invoke frontend sandbox functions from inside the iframe

Google ADKGoogle AI Studio

Voice Input

Speech-to-text via @copilotkit/voice with a bundled sample audio button

Google ADKGoogle AI Studio

Agent Config Object

Forward a typed config object (tone / expertise / response length) from the provider to the agent's dynamic system prompt

Enterprise

Spring AI

Agentic Chat

Natural conversation with frontend tool execution

Spring AI

Chat Customization (CSS)

Default CopilotChat re-themed via scoped CSS overrides

Spring AI

Frontend Tools (In-App Actions)

Agent invokes client-side handlers registered with useFrontendTool

Spring AI

Frontend Tools (Async)

useFrontendTool with an async handler — agent awaits a client-side async operation and uses the returned result

Spring AI

Agentic Generative UI

Long-running agent tasks with generated UI

Spring AI

Pre-Built: Sidebar

Docked sidebar chat via <CopilotSidebar />

Spring AI

Pre-Built: Popup

Floating popup chat via <CopilotPopup />

Spring AI

Chat Customization (Slots)

Customize CopilotChat via its slot system

Spring AI

Headless Chat (Simple)

Minimal custom chat surface built on useAgent

Spring AI

Readonly State (Agent Context)

Frontend provides read-only context to the agent via useAgentContext

Spring AI

Authentication

Bearer-token gate via runtime onRequest hook with unauthenticated / authenticated states

Spring AI

Open Generative UI (Minimal)

Agent streams HTML + CSS into a sandboxed iframe via the built-in OpenGenerativeUIActivityRenderer

Spring AI

Open Generative UI (Advanced)

Sandboxed UI can call host-side functions (evaluateExpression, notifyHost) via the provider's sandboxFunctions registration

Spring AI

Voice

CopilotChat mic button via a runtime mounted with TranscriptionServiceOpenAI; transcribed text is forwarded to the Spring AI backend

Spring AI

Agent Config Object

Frontend forwards typed config (tone, expertise, responseLength) to Spring, which rebuilds the system prompt per request

Spring AI

A2UI Fixed Schema

Dedicated Spring tool emits a fixed flight-card component tree plus a data model; frontend catalog renders each component

Spring AI

Headless Chat (Complete)

Full chat built from scratch on useAgent plus low-level render hooks (useRenderToolCall, useRenderActivityMessage, useRenderCustomMessages)

Spring AI

Beautiful Chat

Polished brand-themed chat surface over the Spring AI agent with seeded suggestion pills

Spring AI

Tool Rendering (Reasoning Chain)

Per-tool renderers (WeatherCard, FlightListCard) plus custom reasoningMessage slot composed in a single chat

Spring AI

Declarative Generative UI

A2UI dynamic-schema against a branded catalog; backend owns the `generate_a2ui` tool

Spring AI

Shared State (Read + Write)

Bidirectional shared state — UI writes preferences into agent state; the agent's set_notes tool mutates state.notes and emits a STATE_SNAPSHOT back to the UI

Spring AI

Shared State Streaming

Per-token state streaming — the agent's write_document tool streams content into state.document via STATE_SNAPSHOT events; the frontend renders the growing document live

Spring AI

Sub-Agents

Supervisor delegates to research / writing / critique sub-agents (each its own ChatClient call). Every delegation appends a Delegation entry to state.delegations and emits a STATE_SNAPSHOT for a live UI log

Spring AI

Multimodal Attachments

CopilotChat AttachmentsConfig for images + PDFs; sample files inject through the same pipeline as the paperclip upload

Spring AI

In-Chat Human in the Loop

User approves agent actions before execution via text input inside the chat

Spring AI

In-App Human in the Loop

Agent requests approval via useFrontendTool; the approval UI pops up as an app-level modal OUTSIDE the chat

Spring AI

Human in the Loop (Steps)

Multi-step HITL flow where the agent pauses for user confirmation at each step

Spring AI

Tool Rendering

Backend agent tools rendered as UI components

Spring AI

CLI Start Command

Copy-paste command to clone the canonical Spring AI starter

Spring AI

Tool-Based Generative UI

Frontend registers per-tool component renderers via useComponent; the Spring agent calls render tools that paint chart components inline in the chat

Spring AI

Tool Rendering (Default Catch-all)

Out-of-the-box tool rendering — the Spring backend defines tools; the frontend adds zero custom renderers and relies on CopilotKit's built-in default UI

Spring AI

Tool Rendering (Custom Catch-all)

Single branded wildcard renderer via useDefaultRenderTool — the same app-designed card paints every Spring tool call

Spring AI

In-Chat HITL (Booking)

Time-picker card rendered inline via useHumanInTheLoop for a booking flow against the Spring AI agent

Spring AI

MCP Apps

MCP server-driven UI via the runtime mcpApps middleware; sandboxed iframe rendered via the built-in MCPAppsActivityRenderer

Spring AI

Declarative UI: Hashbrown

Streaming structured output via @hashbrownai/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)

Spring AI

Declarative UI: json-render

Streaming structured output via @json-render/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)

Spring AI

Generative UI (Interrupt)

Time-picker card rendered inline via useFrontendTool with an async handler that blocks until the user picks a slot — Strategy B adaptation of LangGraph's interrupt() primitive

Spring AI

Headless Interrupt

Time-picker popup rendered in the app surface (outside the chat) via useFrontendTool with an async handler — headless variant of the interrupt-adapted pattern

76b653f39
CopilotKit Showcase