Skip to content

CopilotKit/CopilotKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
Introducing CopilotKit  v1 50!
header

โšก๏ธ Quick Install

  npx copilotkit@latest create

Read the Docs โ†’ย ย ย  Try Copilot Cloud โ†’ย ย ย  Join our Discord โ†’

๐Ÿš€ Getting Started

  1. Install: Run a simple CLI command
  2. Configure: Add CopilotKit provider to your app
  3. Customize: Use headless UI or the customizable pre-built components
  4. Deploy: You're done!

Complete getting started guide โ†’

Best in class support across the ecosystem

โญ๏ธ useAgent

The v2 hook useAgent is a proper superset of useCoAgent, which gives more control over the agent connection.

Check out the useAgent docs to learn more.

CopilotKit.UseAgent.Graphic.Motion.mp4

โœจ Why CopilotKit?

  • Minutes to integrateย - Get started quickly with our CLI
  • Framework agnosticย - Works with React, Next.js, AGUI, and more
  • Production-ready UIย - Use customizable components or build with headless UI
  • Built-in securityย - Prompt injection protection
  • Open sourceย - Full transparency and community-driven

๐Ÿง‘โ€๐Ÿ’ป Real life use cases

Deploy deeply-integrated AI assistants & agents that work alongside your users inside your applications.

Headless UI

๐Ÿ–ฅ๏ธ Code Samples

Drop in these building blocks and tailor them to your needs.

Build with Headless APIs and Pre-Built Components

// Headless UI with full control
const { copilotkit } = useCopilotKit();
const { agent } = useAgent({ agentId: "my_agent" });
const { messages, addMessage, setMessages, state, ... } = agent;

copilotkit.runAgent({ agent })

// Pre-built components with deep customization options (CSS + pass custom sub-components)
<CopilotSidebar 
  instructions={"You are assisting the user as best as you can. Answer in the best way possible given the data you have."} 
  labels={{ title: "Sidebar Assistant", initial: "Need any help?" }} 
/>

Deeply integrate LLMs or agents into your application

// Programmatically access and control your agents
const { agent } = useAgent({ agentId: "my_agent" });

// Render and update your agent's state
return <div>
  <h1>{agent.state.city}</h1> 
  <button onClick={() => agent.setState({ city: "NYC" })}>
    Set City
  </button>
</div>
// Build generative UI based on your agent's state
useCoAgentStateRender({
  name: "my_agent",
  render: ({ state }) => <WeatherDisplay {...state.final_response} />,
});
// Frontend actions + generative UI, with full streaming support
useFrontendTool({
  name: "appendToSpreadsheet",
  description: "Append rows to the current spreadsheet",
  parameters: [
    { name: "rows", type: "object[]", attributes: [{ name: "cells", type: "object[]", attributes: [{ name: "value", type: "string" }] }] }
  ],
  render: ({ status, args }) => <Spreadsheet data={canonicalSpreadsheetData(args.rows)} />,
  handler: ({ rows }) => setSpreadsheet({ ...spreadsheet, rows: [...spreadsheet.rows, ...canonicalSpreadsheetData(rows)] }),
});
// Human in the Loop (Approval)
useHumanInTheLoop({
  name: "email_tool",
  parameters: [
    {
      name: "email_draft",
      type: "string",
      description: "The email content",
      required: true,
    },
  ],
  render: ({ args, status, respond }) => {
    return (
      <EmailConfirmation
        emailContent={args.email_draft || ""}
        isExecuting={status === "executing"}
        onCancel={() => respond?.({ approved: false })}
        onSend={() =>
          respond?.({
            approved: true,
            metadata: { sentAt: new Date().toISOString() },
          })
        }
      />
    );
  },
});
// Build generative UI on-top of your agent's tool calls
useRenderToolCall({
  name: "get_weather", // tool defined in your agent
  args: [{
    name: "city",
    type: "string",
    required: true,
  }],
  render: ({ args, result }) => {
    <WeatherCard  
      city={args.city}
      temperature={result.temperature}
      description={result.description}
    />
  }
})

๐Ÿ† Featured Examples

Banner 2 A Banner 2 A-1 Banner 2 A-2

๐Ÿ–ฅ๏ธ AG-UI: The Agentโ€“User Interaction Protocol

Connect agent workflow to user-facing apps, with deep partnerships and 1st-party integrations across the agentic stackโ€”including LangGraph, CrewAI, and more.

Learn more in the AG-UI README โ†’

๐Ÿค Community

Have questions or need help?

Join our Discord โ†’
Read the Docs โ†’
Try Copilot Cloud โ†’

Stay up to date with our latest releases!

Follow us on LinkedIn โ†’
Follow us on X โ†’

๐Ÿ™‹๐Ÿฝโ€โ™‚๏ธ Contributing

Thanks for your interest in contributing to CopilotKit! ๐Ÿ’œ

We value all contributions, whether it's through code, documentation, creating demo apps, or just spreading the word.

Here are a few useful resources to help you get started:

๐Ÿ“„ License

This repository's source code is available under the MIT License.