mcpField
C
copilotkit-upgrade

copilotkit-upgrade

github.com/copilotkitDevelopment38.3k2.6k installsUpdated today
Repository

About copilotkit-upgrade

A migration skill for CopilotKit developers moving from v1 to v2. It guides API audits, replacements, dependency and runtime changes, and includes an MCP server for searching current documentation and source code.

Key features

  1. 01Audits v1 imports and APIs
  2. 02Maps APIs to v2 replacements
  3. 03Updates dependencies and runtime configuration
  4. 04Verifies the migrated application

Use cases

  1. 01Migrating a CopilotKit app from v1 to v2
  2. 02Finding replacements for legacy hooks and components
  3. 03Checking current v2 API usage

MCP support

The plugin includes the copilotkit-docs MCP server with search-docs and search-code tools for querying live CopilotKit documentation and source code. It is auto-configured for Claude Code; Codex requires manual setup.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/copilotkit/copilotkit --skill copilotkit-upgrade

After installing, type/copilotkit-upgradein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

sources.md
references/
breaking-changes.md
deprecation-map.md
v1-to-v2-migration.md

Details

From the project README

CopilotKit v1 to v2 Migration Skill

Live Documentation (MCP)

This plugin includes an MCP server (copilotkit-docs) that provides search-docs and search-code tools for querying live CopilotKit documentation and source code. Useful for looking up current v2 API signatures during migration.

  • Claude Code: Auto-configured by the plugin's .mcp.json -- no setup needed.
  • Codex: Requires manual configuration. See the copilotkit-debug skill for setup instructions.

Overview

CopilotKit v2 is a ground-up rewrite built on the AG-UI protocol (@ag-ui/client / @ag-ui/core). Users continue to install and import @copilotkit/* packages -- the v2 changes are exposed through the same package names (under their /v2 subpaths) with updated APIs (new hook names, component names, runtime configuration). The underlying @ag-ui/* packages are an internal implementation detail re-exported through @copilotkit/react-core/v2, so users never need to install them directly.

Migration Workflow

1. Audit Current Usage

Scan the codebase for all v1 imports and API usage:

@copilotkit/react-core    -> hooks, CopilotKit provider, types
@copilotkit/react-ui      -> CopilotChat, CopilotPopup, CopilotSidebar
@copilotkit/react-textarea -> CopilotTextarea (removed in v2)
@copilotkit/runtime       -> CopilotRuntime, service adapters, framework integrations
@copilotkit/runtime-client-gql -> GraphQL client, message types
@copilotkit/shared         -> utility types, constants
@copilotkit/sdk-js         -> LangGraph/LangChain SDK
2. Identify Deprecated APIs

Key hooks and components to find and replace:

v1 APIv2 Replacement
useCopilotActionuseFrontendTool
useCopilotReadableuseAgentContext
useCopilotChatuseAgent
useCoAgentuseAgent
useCoAgentStateRenderuseRenderTool / useRenderActivityMessage
useCopilotContextuseCopilotKit (from @copilotkit/react-core/v2/context)
useLangGraphInterruptuseInterrupt
useCopilotChatSuggestionsuseConfigureSuggestions + useSuggestions
useCopilotAdditionalInstructionsuseAgentContext
useMakeCopilotDocumentReadableuseAgentContext
CopilotKit (root import)CopilotKit (from @copilotkit/react-core/v2)
CopilotTextareaRemoved -- use standard textarea + useFrontendTool
3. Map to v2 Equivalents

Refer to references/v1-to-v2-migration.md for detailed before/after code examples.

4. Update Package Dependencies

The @copilotkit/* package names stay the same. v2 does not introduce new package names -- the v2 APIs ship from the /v2 subpath of the existing packages (@copilotkit/react-core/v2, @copilotkit/runtime/v2). There is no @copilotkit/react or @copilotkit/agent package. Update to the latest v2 versions:

@copilotkit/react-core         -> @copilotkit/react-core (v2 symbols under the /v2 subpath)
@copilotkit/react-ui           -> chat components move to @copilotkit/react-core/v2; react-ui contributes only styles in v2
@copilotkit/react-textarea     -> removed (no v2 equivalent)
@copilotkit/runtime            -> @copilotkit/runtime (v2 symbols under the /v2 subpath)
@copilotkit/runtime-client-gql -> removed (replaced by AG-UI protocol; @ag-ui/client types are re-exported from @copilotkit/react-core/v2)
@copilotkit/shared             -> @copilotkit/shared (same package)
@copilotkit/sdk-js             -> removed (BuiltInAgent now ships from @copilotkit/runtime/v2)
5. Update Runtime Configuration

The v1 CopilotRuntime accepted service adapters (OpenAI, Anthropic, LangChain, etc.) and endpoint definitions. The v2 CopilotRuntime accepts AG-UI AbstractAgent instances directly.

v1 pattern (service adapter + endpoints):

import { CopilotRuntime, OpenAIAdapter } from "@copilotkit/runtime";
const runtime = new CopilotRuntime({ actions: [...] });
// used with framework handlers like copilotRuntimeNextJSAppRouterEndpoint() (Next.js), etc.

v2 pattern (agents + Hono endpoint):

import {
  CopilotRuntime,
  BuiltInAgent,
  createCopilotHonoHandler,
} from "@copilotkit/runtime/v2";
const runtime = new CopilotRuntime({
  agents: { myAgent: new BuiltInAgent({ model: "openai/gpt-4o" }) },
});
const app = createCopilotHonoHandler({ runtime, basePath: "/api/copilotkit" });

Use createCopilotHonoHandler (from @copilotkit/runtime/v2) as the canonical Hono endpoint factory. createCopilotEndpoint is a deprecated alias for it -- avoid it in new code. For Express, use createCopilotExpressHandler from @copilotkit/runtime/v2/express (createCopilotEndpointExpress is its deprecated alias).

6. Update Provider

The provider component keeps the name CopilotKit -- only the import path changes. The package root (@copilotkit/react-core) is the legacy v1 provider; the /v2 subpath is the migration target.

v1 (root import):

import { CopilotKit } from "@copilotkit/react-core";
<CopilotKit runtimeUrl="/api/copilotkit">{children}</CopilotKit>;

v2 (/v2 import):

import { CopilotKit } from "@copilotkit/react-core/v2";
<CopilotKit runtimeUrl="/api/copilotkit">{children}</CopilotKit>;

Note: @copilotkit/react-core/v2 also exports a CopilotKitProvider component. Do not migrate to it -- it is a functionality subset of CopilotKit, which is the compatibility bridge across v1 and v2 and accepts every CopilotKitProvider prop.

7. Verify
  • Run the application and check for runtime errors
  • Verify all agent interactions work (chat, tool calls, interrupts)
  • Check that tool renderers display correctly
  • Confirm suggestions load and display

Quick Reference

Conceptv1v2
Package scope@copilotkit/*@copilotkit/* (same scope, updated APIs)
ProtocolGraphQLAG-UI (SSE)
Provider componentCopilotKit (from @copilotkit/react-core)CopilotKit (from @copilotkit/react-core/v2)
Define frontend tooluseCopilotActionuseFrontendTool
Share app stateuseCopilotReadableuseAgentContext
Agent interactionuseCoAgentuseAgent
Handle interruptsuseLangGraphInterruptuseInterrupt
Render tool callsuseCopilotAction({ render })useFrontendTool({ render }) or useRenderTool (render-only)
Chat suggestionsuseCopilotChatSuggestionsuseConfigureSuggestions
Runtime classCopilotRuntime (adapters)CopilotRuntime (agents, from @copilotkit/runtime/v2)
Endpoint setupcopilotRuntimeNextJSAppRouterEndpoint()createCopilotHonoHandler() (createCopilotEndpoint is a deprecated alias)
Agent definitionLangGraphAgent endpointAbstractAgent / BuiltInAgent (from @copilotkit/runtime/v2)
Chat componentsCopilotChat, CopilotPopup, CopilotSidebarCopilotChat, CopilotPopup, CopilotSidebar (from @copilotkit/react-core/v2)

Comments

Markdown supported