Skip to content

Release history

CopilotKit releases

The Frontend Stack for Agents & Generative UI. React + Angular. Makers of the AG-UI Protocol

All releases

28 shown

No immediate action
v1.59.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.59.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.59.1 Mixed

ENT-658 fix + license‑verifier bump

No immediate action
v1.59.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
python-sdk/v0.1.93 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.58.0 New feature

React Native chat UI

No immediate action
v1.57.4 Maintenance

Routine maintenance and dependency updates.

v1.57.3 Maintenance

Routine maintenance release for CopilotKit.

Changelog

Release v1.57.3

Review required
v1.57.2 Bug fix

Thread‑switch state reset fix

v1.57.1 New feature
⚠ Upgrade required
  • Dependency bump: @copilotkit/license-verifier 0.2.0 → 0.4.0 in runtime, shared, and root overrides
  • @copilotkit/react-native added to release pipeline; ensure installation of the new package alongside other CopilotKit packages
Notable features
  • @copilotkit/react-native: package for React Native apps with lightweight CopilotKitProvider and polyfills
  • registerProxiedAgent API in @copilotkit/core to mount frontend tools against a server‑defined runtime agent
  • BuiltInAgent MCP config now supports per‑call `getHeaders` resolver for dynamic request headers
Full changelog

CopilotKit v1.57.1

A patch release on the 1.57 line. Adds @copilotkit/react-native for using CopilotKit hooks in React Native apps, ships registerProxiedAgent for mounting frontend tools/context against a single runtime agent, adds a per-call getHeaders resolver to BuiltInAgent's MCP server config, and auto-mounts the IntelligenceIndicator pill when intelligence is configured on the runtime.

Install

npm install @copilotkit/[email protected] @copilotkit/[email protected] @copilotkit/[email protected]

Features

  • @copilotkit/react-native — New package for using CopilotKit in React Native apps. Ships a lightweight CopilotKitProvider (no DOM, CSS, Radix, Lit, or A2UI deps), an installStreamingFetch() XHR-based shim that gives response.body.getReader() support, and granular polyfills for ReadableStream, TextEncoder, crypto, DOMException, and window.location. All hooks (useAgent, useFrontendTool, useHumanInTheLoop, etc.) re-export directly from react-core over a shared context. Backed by an extraction of CopilotKitContext and useCopilotKit into a standalone @copilotkit/react-core/v2/context entry point so cross-platform consumers don't pull web-only deps via the barrel. (#3633)

    // index.js — entry point, before other imports
    import "@copilotkit/react-native/polyfills";
    import { installStreamingFetch } from "@copilotkit/react-native";
    installStreamingFetch();
    
    // App.tsx
    import { CopilotKitProvider, useAgent } from "@copilotkit/react-native";
    
  • registerProxiedAgent in @copilotkit/core — New API for mounting a frontend-side agent (with frontend tools, context, render hooks) against a server-defined runtime agent. CopilotKitCore.registerProxiedAgent({ agentId, runtimeAgentId }) mints a ProxiedCopilotRuntimeAgent under a local registry id and routes its outbound HTTP requests (/agent/<id>/run, /connect, /stop) to the named runtime agent. Returns { agent, unregister } for useEffect cleanup. Throws on duplicate agentId (collisions with agents__unsafe_dev_only or another registerProxiedAgent are loud, not silent). Replaces the implicit per-thread agent cloning from earlier work, which has been reverted because it wiped agent state on tool calls — the registry now keeps a single agent per id. (#4629)

    const { copilotkit } = useCopilotKit();
    useEffect(() => {
      const { unregister } = copilotkit.registerProxiedAgent({
        agentId: "chat-1",         // local registry id (subscriber bookkeeping)
        runtimeAgentId: "default", // runtime id (URL routing only)
      });
      return unregister;
    }, [copilotkit]);
    // <CopilotChat agentId="chat-1" />
    
  • Configurable MCP server on BuiltInAgent@copilotkit/runtime/v2's BuiltInAgent MCP config now accepts an authToken (static Bearer shorthand) and a getHeaders resolver that runs on every outbound HTTP request — initialize, tools/list, tools/call, reconnects. The resolver receives MCPRequestContext (requestHeaders, input, mcpServerUrl) so headers can be derived per request rather than baked into the client config. The MCP layer now sits directly on @ai-sdk/mcp (MCPClient, MCPTransport, OAuthClientProvider, OAuthTokens, and UnauthorizedError re-exported from @copilotkit/runtime/v2); the agent module no longer imports @modelcontextprotocol/sdk directly. Side-effect fix: SSE static headers now reach the wire — the previous direct-SDK construction silently dropped them. (#4420)

    import {
      BuiltInAgent,
      INTELLIGENCE_USER_ID_HEADER,
    } from "@copilotkit/runtime/v2";
    
    new BuiltInAgent({
      model: "openai/gpt-4o",
      mcpServers: [{
        type: "http",
        url: `${process.env.INTELLIGENCE_API_URL}/mcp`,
        authToken: process.env.INTELLIGENCE_API_KEY!,
        getHeaders: ({ requestHeaders }) => {
          const userId = requestHeaders[INTELLIGENCE_USER_ID_HEADER]?.trim();
          if (!userId) throw new Error("missing user-id");
          return { [INTELLIGENCE_USER_ID_HEADER]: userId };
        },
      }],
    });
    
  • IntelligenceIndicator auto-mounts in @copilotkit/react-core — When intelligence is configured on the runtime (/info returns intelligence), CopilotChatMessageView mounts a "Using CopilotKit Intelligence" pill on the canonical message slot — no factory, no provider, no renderCustomMessages registration. The indicator self-gates: only the last message of the latest in-flight run with a tool call matching DEFAULT_TOOL_PATTERNS (currently [/^bash$/]) renders. Per-instance phase machine (spinner → debounced checkfadinghidden) absorbs step-boundary RUN_FINISHED → RUN_STARTED blips. Pill width follows content; gate no longer depends on getRunIdForMessage; the indicator stays through tool-result interleaving. (#4632)

Dependency hygiene

  • Bump @copilotkit/license-verifier 0.2.0 → 0.4.0 — applied in packages/runtime, packages/shared, and the root pnpm overrides block. (#4699)

Build / packaging

  • @copilotkit/react-native wired into the release system — added to changesets configuration and the release pipeline so the new package is versioned and published alongside the rest of the monorepo. (9328de4a)

Packages republished at 1.57.1

@copilotkit/runtime, @copilotkit/react-core, @copilotkit/react-ui, @copilotkit/react-native, @copilotkit/core, @copilotkit/shared, @copilotkit/runtime-client-gql, @copilotkit/sdk-js, @copilotkit/voice, @copilotkit/web-inspector, @copilotkit/a2ui-renderer, @copilotkit/react-textarea, and @copilotkit/sqlite-runner.

v1.57.0 New feature
Notable features
  • Threads tab in `@copilotkit/web-inspector` with Conversation, Agent State, and AG-UI Events sub‑views
  • `registerProxiedAgent` API for mounting frontend agents against server‑defined runtime agents
  • `IntelligenceIndicator` now auto‑mounts when intelligence is configured
Full changelog

CopilotKit v1.57.0

A minor release on the 1.57 line. The headline is a new Threads tab in the web inspector — backed by a thread-store registry in @copilotkit/core, a useThreads hook, and per-thread inspection endpoints in the runtime — plus registerProxiedAgent for mounting frontend tools/context against a server-defined agent, IntelligenceIndicator auto-mount, and requiresUser for OAuth-gated MCP HTTP servers.

Install

npm install @copilotkit/[email protected] @copilotkit/[email protected] @copilotkit/[email protected]

Features

  • Threads tab in @copilotkit/web-inspector — Each agent's threads now appear in a dedicated tab with three sub-views: Conversation (historical messages with expandable tool-call blocks), Agent State (last STATE_SNAPSHOT payload), and AG-UI Events (full event stream with payload highlighting). Backed by:

    • ThreadStoreRegistry in @copilotkit/core (keyed by agentId) and a new onAgentRunStarted subscriber event so the inspector subscribes before agent.runAgent() snapshots the subscriber list.
    • useThreads hook in @copilotkit/react-core that fetches threads and subscribes to a Phoenix WebSocket channel for real-time metadata.
    • New runtime endpoints GET /threads/:id/events and GET /threads/:id/state, plus list/update/archive/delete handlers, wired through both InMemoryAgentRunner and the Intelligence platform's _inspect/threads/:id/{events,state} endpoints. getThreadState() walks per-run compacted events and returns the latest STATE_SNAPSHOT payload.
    • All thread mutations authenticate via identifyUser(request); userId in the request body is ignored.
    • Inspector UI built in Lit, with tab DOM mounted once and toggled via display:none so switching sub-views is a CSS swap rather than a re-render.

    The tab is publicly accessible and integrates out-of-the-box into [CopilotKit Enterprise Intelligence](https://docs.copilotkit.ai/threads?ref=1.57.0-release-notes).

  • registerProxiedAgent in @copilotkit/core — New API for mounting a frontend-side agent (with frontend tools, context, render hooks) against a server-defined runtime agent. Replaces an earlier per-thread cloning approach, which has been reverted because it wiped agent state on tool calls. The registry now keeps a single agent per id. ([e576bc16](https://github.com/CopilotKit/CopilotKit/commit/e576bc16), reverts [#3525](https://github.com/CopilotKit/CopilotKit/pull/3525))

    ts copilotkit.registerProxiedAgent({ id: "research", agent: clientAgent });

  • IntelligenceIndicator auto-mounts in @copilotkit/react-core — When intelligence is configured on the <CopilotKit> provider, the indicator now mounts automatically. No manual placement required. ([678d143b](https://github.com/CopilotKit/CopilotKit/commit/678d143b))

  • requiresUser flag on MCPClientConfigHTTP — The runtime now accepts a requiresUser flag for HTTP MCP clients, signaling that the tool requires an authenticated end user (OAuth flow). Pairs with per-call MCP HTTP header resolution on BuiltInAgent, so headers can be derived per request rather than baked into the client config. ([8a2e6bd3](https://github.com/CopilotKit/CopilotKit/commit/8a2e6bd3), [5ee569e0](https://github.com/CopilotKit/CopilotKit/commit/5ee569e0))

Core fixes (@copilotkit/core)

  • ThreadStoreRegistry hardening — guard auto-unregister against the initial empty-agents seed; forward prevStore on unregister and freeze getAll() snapshots; tighten notify ordering so subscribers don't observe partial state during register/unregister. Internal ɵMAX_SOCKET_RETRIES is now exported for tests. ([bd9fe016](https://github.com/CopilotKit/CopilotKit/commit/bd9fe016), [9b7c0517](https://github.com/CopilotKit/CopilotKit/commit/9b7c0517), [f5787e0b](https://github.com/CopilotKit/CopilotKit/commit/f5787e0b), [9fdfe23b](https://github.com/CopilotKit/CopilotKit/commit/9fdfe23b))

React fixes (@copilotkit/react-core)

  • Pin-to-send re-anchors on reflow — when chat content reflows underneath the pinned send button, the anchor now recomputes instead of leaving the button visually orphaned. ([4c41270e](https://github.com/CopilotKit/CopilotKit/commit/4c41270e))
  • Drop redundant copilotkit.headers from useEffect deps — prevents needless re-runs when the reference is stable. ([cdffd840](https://github.com/CopilotKit/CopilotKit/commit/cdffd840))

Inspector fixes (@copilotkit/web-inspector)

  • Announcement banner — moved into the scrollable area, hardened copy-button helpers, scoped per-button reset timeouts, and consolidated escapeHtml into a module-level helper. ([#4639](https://github.com/CopilotKit/CopilotKit/pull/4639))
  • Tab DOM caching — keep tab DOM mounted, cache panel templates, defer off-screen events. Switching between Conversation / Agent State / AG-UI Events is now a CSS visibility swap rather than a re-render. ([e05c5ef1](https://github.com/CopilotKit/CopilotKit/commit/e05c5ef1))
  • Tool-call status from parsed args — frontend-rendered generative-UI tools (charts, custom UI) never produce a role: tool result message. The inspector now derives DONE from parsed-args presence so they no longer appear stuck in IN_PROGRESS. ([ce004920](https://github.com/CopilotKit/CopilotKit/commit/ce004920))
  • Lazy-load events/state with spinner — tab clicks feel instant; the heavy fetch happens after the panel is visible. ([762eb79d](https://github.com/CopilotKit/CopilotKit/commit/762eb79d))
  • Live conversation updates — re-fetch on active-agent message emit; silent background re-fetch keeps the panel in sync without flicker. ([94305c09](https://github.com/CopilotKit/CopilotKit/commit/94305c09), [09970072](https://github.com/CopilotKit/CopilotKit/commit/09970072))
  • Type / JSDoc tightening — runtime+inspector types aligned with reality after the threads work; data-staleness, error-swallowing, and silent parse-fail paths plugged. ([3d616661](https://github.com/CopilotKit/CopilotKit/commit/3d616661), [daf52a20](https://github.com/CopilotKit/CopilotKit/commit/daf52a20))

Packages republished at 1.57.0

@copilotkit/runtime, @copilotkit/react-core, @copilotkit/react-ui, @copilotkit/core, @copilotkit/shared, @copilotkit/runtime-client-gql, @copilotkit/sdk-js, @copilotkit/voice, @copilotkit/web-inspector, @copilotkit/a2ui-renderer, @copilotkit/react-textarea, and @copilotkit/sqlite-runner.

v1.56.5 Breaking risk
Breaking changes
  • Package @copilotkit/vscode-extension removed from the CopilotKit monorepo and moved to https://github.com/CopilotKit/vscode-extension
Notable features
  • LangGraph state injection helper `ExposeStateOption` added to `@copilotkit/sdk-js`
  • `@copilotkit/a2ui-renderer` now republished without the redundant `prepack` script
Full changelog

CopilotKit v1.56.5

A patch release on the 1.56 line. No breaking API changes — fixes to the runtime stream converters, reasoning lifecycle, LangGraph wrappers, Express compatibility, and React chat surfaces, plus a new LangGraph state-injection helper and a new memory runner package.

Install

npm install @copilotkit/[email protected] @copilotkit/[email protected] @copilotkit/[email protected]

Features

  • LangGraph state injection in @copilotkit/sdk-jscreateCopilotkitMiddleware now exposes an ExposeStateOption (boolean | readonly string[]) that injects selected graph state into the CopilotKit middleware. (#4354)

Runtime fixes (@copilotkit/runtime)

  • TanStack converter — stop converting the stream after RUN_FINISHED. The TanStack chat() engine runs a multi-turn agent loop and calls processToolCalls() on frontend-only tools, which produced an unmatched TOOL_CALL_END and tripped the AG-UI verify middleware. (#4476)
  • TanStack state-tool detection — fall back to rawContent ?? raw.result so state-tool results are recognised even when only the legacy field is populated. (a48e9a17)
  • Reasoning lifecycle — close any open reasoning message on REASONING_END, and reopen cleanly when a new REASONING_START arrives. (18f6c1e2)
  • Reasoning lifecycle — track REASONING message-open and run-open state separately to avoid duplicate REASONING_MESSAGE_END events. (7bcd2f81)
  • LangGraph subagents — default streamSubgraphs to true in the agent wrapper. @ag-ui/langgraph 0.0.31+ flipped the default to undefined, breaking subagent streaming; this restores the previous behaviour while preserving any explicit caller override via nullish coalescing. (#4446)
  • Express 4/5 compatibility — replace string wildcards with RegExp routes in the Express adapter and switch to {*splat} syntax for path-to-regexp v8, so the runtime works across Express 4, 4.20+, and 5. (#4447)

SDK fixes (@copilotkit/sdk-js)

  • Zod v4 state fields preserved in LangGraph output_schema — adds a zodState helper that attaches a ~standard.jsonSchema.input hook to Standard-Schema-compatible schemas. Without it, Zod v4 fields carry only ~standard.validate + vendor, so LangGraph's isStandardJSONSchema() returned false and getJsonSchemaFromSchema silently dropped fields from the graph's output_schema, which then filtered them out of STATE_SNAPSHOT events. (#4358)

React fixes (@copilotkit/react-core, @copilotkit/react-ui)

  • Suggestions on the welcome screen — pills marked available: "always" now render on the welcome screen when a runtimeUrl is configured, instead of being hidden until the first message. (#4462)
  • Input overlay observer — re-attach the chat-input overlay observer when leaving the welcome screen, so overlays mount correctly on the first user interaction after welcome. (#4472)
  • Image attachments — render image attachments as compact 80×80 thumbnails laid out in a horizontal row above the message text (rather than 300×300 stacked below), aligning with conventional chat UIs. (#4459)

Dependency hygiene

  • Bump @ag-ui/* packages to 0.0.53. (#4477)
  • Deep security sweep across the workspace — 155 advisories down to 3 unfixable transitives (parse-git-config, elliptic). Includes ~36 new pnpm overrides for resolvable transitives plus storybook/vite/vitest devDep bumps. (868f6b17)

Build / packaging

  • @copilotkit/a2ui-renderer — remove a redundant prepack script that was breaking canary publishes with ENOENT. (#4467)

Monorepo

Packages republished at 1.56.5

@copilotkit/runtime, @copilotkit/react-core, @copilotkit/react-ui, @copilotkit/core, @copilotkit/shared, @copilotkit/runtime-client-gql, @copilotkit/sdk-js, @copilotkit/voice, @copilotkit/web-inspector, @copilotkit/a2ui-renderer, @copilotkit/react-textarea, and @copilotkit/sqlite-runner.

v1.56.4 Maintenance

Routine maintenance release for CopilotKit.

Changelog

Release v1.56.4

v1.56.3 Maintenance

Routine maintenance release for CopilotKit.

Changelog

Release v1.56.3

showcase-previews Maintenance

Minor fixes and improvements.

Changelog

Auto-generated demo preview videos for the showcase platform. Updated by CI.

v1.54.0 Mixed
Notable features
  • Standard Schema support as alternative to Zod validation
  • New copilotkit.runTool() API for programmatic tool execution
  • Fixed hook render registrations in React Strict Mode
Full changelog

@copilotkit/react-core

1.54.0

Minor Changes

  • fa0d1cd: Add support for Standard Schema (instead of just Zod)

Patch Changes

  • c80498e: feat(core): add copilotkit.runTool() for programmatic tool execution
  • af11b1e: Fixed hook render registrations lost under React Strict Mode.
  • Updated dependencies [eb1e0bf]
  • Updated dependencies [3780c6a]
  • Updated dependencies [6e0cddf]
  • Updated dependencies [fa0d1cd]
  • Updated dependencies [c80498e]
  • Updated dependencies [d746e4f]
  • Updated dependencies [f1571ef]

@copilotkit/react-ui

1.54.0

Patch Changes

@copilotkit/sdk-js

1.54.0

Patch Changes

@copilotkit/react-textarea

1.54.0

Patch Changes

@copilotkit/runtime

1.54.0

Minor Changes

  • fa0d1cd: Add support for Standard Schema (instead of just Zod)

Patch Changes

@copilotkit/runtime-client-gql

1.54.0

Patch Changes

@copilotkit/shared

1.54.0

@copilotkit/react-core

1.54.0

Minor Changes

  • fa0d1cd: Add support for Standard Schema (instead of just Zod)

Patch Changes

  • c80498e: feat(core): add copilotkit.runTool() for programmatic tool execution
  • af11b1e: Fixed hook render registrations lost under React Strict Mode.
  • Updated dependencies [eb1e0bf]
  • Updated dependencies [3780c6a]
  • Updated dependencies [6e0cddf]
  • Updated dependencies [fa0d1cd]
  • Updated dependencies [c80498e]
  • Updated dependencies [d746e4f]
  • Updated dependencies [f1571ef]

@copilotkit/react-ui

1.54.0

Patch Changes

@copilotkit/sdk-js

1.54.0

Patch Changes

@copilotkit/react-textarea

1.54.0

Patch Changes

@copilotkit/runtime

1.54.0

Minor Changes

  • fa0d1cd: Add support for Standard Schema (instead of just Zod)

Patch Changes

@copilotkit/runtime-client-gql

1.54.0

Patch Changes

@copilotkit/shared

1.54.0

v1.53.0 Mixed
⚠ Upgrade required
  • AI SDK updated from v5 to v6
Notable features
  • MCP and A2UI middleware can be enabled directly from runtime
  • onError callback added to CopilotChat and CopilotKitProvider
  • Messages exposed in afterRequestMiddleware for request/response introspection
Full changelog

@copilotkit/react-core

1.53.0

Patch Changes

  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • f1eaa4c: Fixing a regression with setModalOpen
  • ac31331: - Prevents error propagating out of CPK when an agent runtime is defined but not reachable
    • Adds an onError callback to CopilotChat and CopilotKitProvider
  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/react-ui

1.53.0

Patch Changes

@copilotkit/sdk-js

1.53.0

Patch Changes

  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/react-textarea

1.53.0

Patch Changes

@copilotkit/runtime

1.53.0

Minor Changes

  • f822c05: Updating the path and devex for mcp apps

Patch Changes

  • d1f7aba: feat(runtime): expose messages in afterRequestMiddleware
  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • 8e0f94f: Bump AI SDK from v5 to v6
  • 501e8d7: surpress sse warning in middleware callback
  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/runtime-client-gql

1.53.0

Patch Changes

  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/shared

1.53.0

Patch Changes

  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • bf1fc6f: fix: convertJsonSchemaToZodSchema drops enum constraints

@copilotkit/react-core

1.53.0

Patch Changes

  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • f1eaa4c: Fixing a regression with setModalOpen
  • ac31331: - Prevents error propagating out of CPK when an agent runtime is defined but not reachable
    • Adds an onError callback to CopilotChat and CopilotKitProvider
  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/react-ui

1.53.0

Patch Changes

@copilotkit/sdk-js

1.53.0

Patch Changes

  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/react-textarea

1.53.0

Patch Changes

@copilotkit/runtime

1.53.0

Minor Changes

  • f822c05: Updating the path and devex for mcp apps

Patch Changes

  • d1f7aba: feat(runtime): expose messages in afterRequestMiddleware
  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • 8e0f94f: Bump AI SDK from v5 to v6
  • 501e8d7: surpress sse warning in middleware callback
  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/runtime-client-gql

1.53.0

Patch Changes

  • Updated dependencies [1510f64]
  • Updated dependencies [bf1fc6f]

@copilotkit/shared

1.53.0

Patch Changes

  • 1510f64: feat: enable mcp and a2ui middleware directly from copilotkit runtime
  • bf1fc6f: fix: convertJsonSchemaToZodSchema drops enum constraints
v1.52.1 Bug fix

Allows overriding useSingleEndpoint configuration in CopilotKit provider.

v1.52.0 Breaking risk
Notable features
  • useInterrupt hook for handling interrupt events with UI/handler support
  • useComponent hook for custom UI in chat context
  • Fixes Tailwind style scoping to prevent CSS leakage into host applications
v1.51.2 Maintenance

@copilotkit and @copilotkitnext dependencies moved from peer dependencies to dependencies

Beta — feedback welcome: [email protected]