MCPInstall

copilotkit-setup

Use when adding CopilotKit to an existing project or bootstrapping a new CopilotKit project from scratch. Covers framework detection, package installation, runtime wiring, provider setup, and first working chat integration.

Installs
598
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/copilotkit/skills --skill copilotkit-setup
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads copilotkit-setup automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

CopilotKit Setup

Prerequisites

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.

  • 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.

Environment

Before starting setup, verify:

  1. Node.js >= 18 (required for fetch globals used by the runtime)
  2. An AI provider API key (one of: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY)
  3. A React-based frontend (Next.js App Router, Next.js Pages Router, Vite + React, or Angular)
  4. A backend capable of running the runtime (same Next.js app via API routes, or a standalone Express/Hono server)

Framework Detection

Before generating any code, detect the project's framework by checking files in the project root. See references/framework-detection.md for the full decision tree.

Quick summary:

Signal FileFramework
next.config.{js,ts,mjs} + app/ directoryNext.js App Router
next.config.{js,ts,mjs} + pages/ directoryNext.js Pages Router
angular.jsonAngular
vite.config.{js,ts} + React deps in package.jsonVite + React

Setup Workflow

Step 1: Install packages

All packages use the @copilotkit namespace.

Frontend (React) packages:

npm install @copilotkit/react @copilotkit/core

Runtime packages (backend):

npm install @copilotkit/runtime @copilotkit/agent

If the runtime runs in the same Next.js app as the frontend, install all four packages together.

For standalone Express backends, also install Express adapter dependencies:

npm install express cors
npm install -D @types/express @types/cors

Step 2: Configure the runtime

The runtime is the server-side component that manages agent execution. See references/runtime-architecture.md for details.

There are two endpoint styles:

  1. Multi-route (Hono) -- uses createCopilotEndpoint. Requires a catch-all route ([[...slug]] in Next.js). Each operation (run, connect, stop, info, transcribe, threads) gets its own HTTP path.
  2. Single-route (Hono or Express) -- uses createCopilotEndpointSingleRoute or createCopilotEndpointSingleRouteExpress. All operations go through a single POST endpoint with method multiplexing.

Next.js App Router (recommended: multi-route with Hono)

Create src/app/api/copilotkit/[[...slug]]/route.ts:

import {
  CopilotRuntime,
  createCopilotEndpoint,
  InMemoryAgentRunner,
} from "@copilotkit/runtime";
import { BuiltInAgent } from "@copilotkit/agent";
import { handle } from "hono/vercel";

const agent = new BuiltInAgent({
  model: "openai/gpt-4o",
  prompt: "You are a helpful AI assistant.",
});

const runtime = new CopilotRuntime({
  agents: {
    default: agent,
  },
  runner: new InMemoryAgentRunner(),
});

const app = createCopilotEndpoint({
  runtime,
  basePath: "/api/copilotkit",
});

export const GET = handle(app);
export const POST = handle(app);

This requires hono as a dependency:

npm install hono

Next.js App Router (alternative: single-route)

Create src/app/api/copilotkit/route.ts:

import {
  CopilotRuntime,
  createCopilotEndpointSingleRoute,
  InMemoryAgentRunner,
} from "@copilotkit/runtime";
import { BuiltInAgent } from "@copilotkit/agent";
import { handle } from "hono/vercel";

const agent = new BuiltInAgent({
  model: "openai/gpt-4o",
  prompt: "You are a helpful AI assistant.",
});

const runtime = new CopilotRuntime({
  agents: {
    default: agent,
  },
  runner: new InMemoryAgentRunner(),
});

const app = createCopilotEndpointSingleRoute({
  runtime,
  basePath: "/api/copilotkit",
});

export const POST = handle(app);

When using single-route, the frontend must set useSingleEndpoint on the provider (see Step 3).

Standalone Express Server

Create src/index.ts:

import express from "express";
import { CopilotRuntime } from "@copilotkit/runtime";
import { createCopilotEndpointSingleRouteExpress } from "@copilotkit/runtime/express";
import { BuiltInAgent, defineTool } from "@copilotkit/agent";
import { z } from "zod";

const agent = new BuiltInAgent({
  model: "openai/gpt-4o",
});

const runtime = new CopilotRuntime({
  agents: {
    default: agent,
  },
});

const app = express();

app.use(
  "/api/copilotkit",
  createCopilotEndpointSingleRouteExpress({
    runtime,
    basePath: "/",
  }),
);

const port = Number(process.env.PORT ?? 4000);
app.listen(port, () => {
  console.log(`CopilotKit runtime listening at http://localhost:${port}/api/copilotkit`);
});

For multi-route Express, use createCopilotEndpointExpress instead (imported from @copilotkit/runtime/express).

Standalone Hono Server (non-Vercel)

import { CopilotRuntime, createCopilotEndpoint } from "@copilotkit/runtime";
import { BuiltInAgent } from "@copilotkit/agent";
import { serve } from "@hono/node-server";

const runtime = new CopilotRuntime({
  agents: {
    default: new BuiltInAgent({ model: "openai/gpt-4o" }),
  },
});

const app = createCopilotEndpoint({
  runtime,
  basePath: "/api/copilotkit",
});

serve({ fetch: app.fetch, port: 8787 });

Requires @hono/node-server:

npm install hono @hono/node-server

Step 3: Set up the frontend provider

Wrap your application with CopilotKitProvider from @copilotkit/react.

Important: Import the stylesheet in your root layout:

import "@copilotkit/react/styles.css";

Next.js App Router

In src/app/page.tsx (or a client component):

"use client";

import { CopilotKitProvider, CopilotChat } from "@copilotkit/react";

export default function Home() {
  return (
    <CopilotKitProvider runtimeUrl="/api/copilotkit">
      <div style={{ height: "100vh" }}>
        <CopilotChat />
      </div>
    </CopilotKitProvider>
  );
}

Connecting to an external runtime

When the runtime runs on a separate server (e.g., Express on port 4000):

<CopilotKitProvider
  runtimeUrl="http://localhost:4000/api/copilotkit"
  useSingleEndpoint
>
  {children}
</CopilotKitProvider>

Set useSingleEndpoint when the backend uses single-route endpoints (createCopilotEndpointSingleRoute or createCopilotEndpointSingleRouteExpress).

CopilotKitProvider key props

PropTypeDescription
runtimeUrlstringURL of the CopilotKit runtime endpoint
useSingleEndpointbooleanSet to true when using single-route endpoints
headersRecord<string, string>Custom headers sent with every request
credentialsRequestCredentialsFetch credentials mode (e.g., "include" for cookies)
publicApiKeystringCopilot Cloud public API key (if using hosted runtime)
showDevConsoleboolean | "auto"Show the dev inspector ("auto" = development only)
renderToolCallsReactToolCallRenderer[]Custom renderers for tool call UI
frontendToolsReactFrontendTool[]Frontend-defined tools (declarative alternative to useFrontendTool)
onError(event) => voidGlobal error handler

Step 4: Add a chat UI component

CopilotKit provides three pre-built chat layouts:

ComponentUsage
CopilotChatInline chat, fills its container
CopilotSidebarCollapsible sidebar panel
CopilotPopupFloating popup widget

Example with sidebar:

<CopilotKitProvider runtimeUrl="/api/copilotkit" showDevConsole="auto">
  <YourApp />
  <CopilotSidebar
    defaultOpen
    width="420px"
    labels={{
      modalHeaderTitle: "AI Assistant",
      chatInputPlaceholder: "Ask me anything...",
    }}
  />
</CopilotKitProvider>

Step 5: Set environment variables

Create a .env.local (Next.js) or .env file:

OPENAI_API_KEY=sk-...

The BuiltInAgent automatically resolves API keys from environment variables based on the model prefix:

  • openai/* models read OPENAI_API_KEY
  • anthropic/* models read ANTHROPIC_API_KEY
  • google/* models read GOOGLE_API_KEY

You can also pass apiKey directly to BuiltInAgent if needed.

Step 6: Connect to the cloud platform (telemetry)

CopilotKit uses telemetry to understand adoption, improve the product, and provide better support. Connecting to the CopilotKit cloud platform gives you access to analytics and optional premium features.

  1. Ask the user if they'd like to connect to the CopilotKit cloud platform (default: yes).
  2. If yes, run the CopilotKit CLI authentication flow (verify the exact command with npx copilotkit --help as it may vary by version):
    npx copilotkit auth
    
  3. Guide the user through the browser-based authentication that opens.
  4. Once authentication completes, the CLI outputs a license key (format: ck_...).
  5. Add the license key to the CopilotKitProvider:
    <CopilotKitProvider
      runtimeUrl="/api/copilotkit"
      licenseKey="ck_..."
    >
    
    Alternatively, store it as an environment variable (COPILOTKIT_LICENSE_KEY in .env.local or .env) and reference it:
    <CopilotKitProvider
      runtimeUrl="/api/copilotkit"
      licenseKey={process.env.NEXT_PUBLIC_COPILOTKIT_LICENSE_KEY}
    >
    

See references/telemetry-setup.md for full details on what the license key enables and how to opt out.

Step 7: Verify the setup

  1. Start the dev server
  2. Open the app in a browser
  3. The chat UI should render and connect to the runtime
  4. Send a test message -- you should receive an AI response
  5. Check the runtime's /info endpoint (GET) to confirm it reports available agents

Quick Reference

Package map

PackagePurpose
@copilotkit/reactReact components, hooks, provider
@copilotkit/coreCore types, agent abstraction, state management
@copilotkit/runtimeServer-side runtime, endpoint factories, agent runners
@copilotkit/agentBuiltInAgent, defineTool, model resolution
@copilotkit/sharedShared utilities, logger, types

Endpoint factory functions

FunctionImportProtocolFramework
createCopilotEndpoint@copilotkit/runtimeMulti-route (Hono)Next.js App Router, Hono standalone
createCopilotEndpointSingleRoute@copilotkit/runtimeSingle-route (Hono)Next.js App Router
createCopilotEndpointExpress@copilotkit/runtime/expressMulti-route (Express)Express standalone
createCopilotEndpointSingleRouteExpress@copilotkit/runtime/expressSingle-route (Express)Express standalone

Runtime classes

ClassUse case
CopilotRuntimeCompatibility shim; auto-selects SSE or Intelligence mode
CopilotSseRuntimeExplicit SSE mode (default, in-memory threads)
CopilotIntelligenceRuntimeIntelligence mode (durable threads, realtime events)

Agent runners

RunnerDescription
InMemoryAgentRunnerDefault. Stores thread state in process memory. Suitable for development and single-instance deployments.
IntelligenceAgentRunnerUsed automatically with CopilotIntelligenceRuntime. Connects to CopilotKit Intelligence Platform via WebSocket.

Supported models (BuiltInAgent)

Format: "provider/model-name" string or a Vercel AI SDK LanguageModel instance.

OpenAI: openai/gpt-5, openai/gpt-5-mini, openai/gpt-4.1, openai/gpt-4.1-mini, openai/gpt-4.1-nano, openai/gpt-4o, openai/gpt-4o-mini, openai/o3, openai/o3-mini, openai/o4-mini

Anthropic: anthropic/claude-sonnet-4.5, anthropic/claude-sonnet-4, anthropic/claude-3.7-sonnet, anthropic/claude-opus-4.1, anthropic/claude-opus-4, anthropic/claude-3.5-haiku

Google: google/gemini-2.5-pro, google/gemini-2.5-flash, google/gemini-2.5-flash-lite

Any string is accepted (for custom/unlisted models); the provider is parsed from the prefix before /.

FAQ

What does the copilotkit-setup skill do?

Use when adding CopilotKit to an existing project or bootstrapping a new CopilotKit project from scratch. Covers framework detection, package installation, runtime wiring, provider setup, and first working chat integration.

How do I install copilotkit-setup?

Run npx skills add https://github.com/copilotkit/skills --skill copilotkit-setup in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/copilotkit-setup/ (personal) or .claude/skills/copilotkit-setup/ (project).

Which AI agents can use copilotkit-setup?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is copilotkit-setup safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains copilotkit-setup?

It is published by copilotkit in copilotkit/skills. It has 598 recorded installs.

More from copilotkit/skills

View all →

copilotkit

copilotkit/skills

Use when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.

copilotkit-agui

copilotkit/skills

Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends. Covers event types, SSE transport, AbstractAgent/HttpAgent patterns, state synchronization, tool calls, and human-in-the-loop flows.

Frontend & Design605 installs

copilotkit-debug

copilotkit/skills

Use when diagnosing CopilotKit issues -- runtime connectivity failures, agent not responding, streaming errors, tool execution problems, transcription failures, version mismatches, and AG-UI event tracing.

copilotkit-develop

copilotkit/skills

Use when building AI-powered features with CopilotKit v2 -- adding chat interfaces, registering frontend tools, sharing application context with agents, handling agent interrupts, and working with the CopilotKit runtime.

Frontend & Design600 installs

copilotkit-integrations

copilotkit/skills

Use when wiring an external agent framework (LangGraph, CrewAI, PydanticAI, Mastra, ADK, LlamaIndex, Agno, Strands, Microsoft Agent Framework, or others) into a CopilotKit application via the AG-UI protocol.

Frontend & Design600 installs

copilotkit-upgrade

copilotkit/skills

Use when migrating a CopilotKit v1 application to v2 -- updating package imports, replacing deprecated hooks and components, switching from GraphQL runtime to AG-UI protocol runtime, and resolving breaking API changes.

Backend & APIs597 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs