# CopilotKit: the agent renders the UI, and the quickstart hands you to a coding agent

> CopilotKit is an MIT licensed SDK for agentic applications, with generative UI, shared state and human-in-the-loop pauses, and it now claims React, Angular, Vue, React Native, Slack and Teams from one agent backend. The parts worth reading closely are the parts the README treats as settled: Vue has no quickstart, the root build excludes four language runtimes by name, and the durable thread layer sits behind CopilotKit Intelligence.

**CopilotKit/CopilotKit** — The Frontend Stack for Agents & Generative UI. React, Angular, Mobile, Slack, and more. Makers of the AG-UI Protocol.

- Repository: https://github.com/CopilotKit/CopilotKit
- Website: https://docs.copilotkit.ai
- Stars: 37,565 · Forks: 4,664
- Language: TypeScript
- License: MIT
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/copilotkit-copilotkit

## Onboarding is three npx commands with three different blast radii

The quick start does not ask you to install a package. It asks you to hand the install to a coding agent, and the prompt it tells you to paste is a text block:

```text
Help me get started with CopilotKit. From the root of my project, run this
command and follow the instructions:

npx --yes copilotkit@latest onboard start
```

Two more commands sit below it. This one adds the project's own agent skills, so your coding agent can build features and debug issues with CopilotKit in context:

```bash
npx copilotkit@latest skills install
```

And this one scaffolds a new project:

```bash
npx copilotkit@latest create
```

The three are not interchangeable, and the README draws the distinction for exactly one of them. create scaffolds in its own directory and does not modify an app you already have. onboard start is the opposite: it runs from the root of your project and instructs the agent to inspect that project and guide the integration, so it is the one that will read and change your code. The --yes flag on that command is what lets it run unattended. Pick deliberately, because one of these three is safe by design and one is not.

The repository is built by the same assumption. It ships AGENTS.md and CLAUDE.md, a .claude/ directory, a .claude-plugin/ directory, a .cursor/ directory, an .mcp.json file, a skills/ directory, plus .coderabbit.yaml and .kodiak.toml for review bots. CopilotKit does not just integrate with agent tooling, it is developed under it.

## Backend tool rendering moves the trust boundary from text to components

This is where the design decision actually lives, and it is worth being plain about it. Backend Tool Rendering lets agents call backend tools that return UI components rendered directly in the client. Generative UI goes further, letting agents generate and update UI components dynamically at runtime based on user intent and agent state. Shared State is a synchronized layer that both agents and UI components read from and write to in real time, and Human-in-the-Loop lets an agent pause execution to request user input, a confirmation, or an edit before continuing.

Put those four together and the agent's output is no longer a string in a transcript. It is a component tree, plus writes into application state, plus the ability to block and wait for a human. That is the mechanism behind the claim that the same agent can power a web app, a mobile app and a Slack or Microsoft Teams workspace: the contract is the component, not the chat window.

The cost is that the boundary you have to reason about moves. A model that returns text needs output escaping and nothing else. A model that returns rendered components needs a decision about what a component is allowed to do, and the README describes the capability in detail while saying nothing about validation, sandboxing or an allowlist for what an agent may return. The Human-in-the-Loop feature is the project's answer to the riskiest part of that, and it is opt-in behaviour rather than a containment layer. If your agent can write shared state, that is an authorization question for your application, not for the SDK.

## Vue is marked Supported with a quickstart still to come

The platform table is the fastest way to calibrate expectations, because it grades itself. React and Next.js is the only entry marked GA. Angular, Vue and React Native are each marked Supported, and the Get Started column differs for all three. Angular offers source code and a quickstart, pointing into packages/angular in the monorepo. Vue offers source code with the note that the quickstart is coming soon. React Native offers a quickstart through the documentation site.

So the headline claim about any framework is not the same as the documentation available for it. For a Vue team the honest summary is that the package exists and the instructions do not, which is a different position from Angular, where the source and the quickstart are both in the repository. The package layout confirms the split: packages/angular and packages/vue are directories you can read, while React goes through docs.copilotkit.ai.

There is a second signal in the build scripts. Alongside the general build there is a dedicated build:vue script that runs a single package target rather than the whole workspace, and a linting and formatting pair built on oxlint and oxfmt with their own configuration files, not the eslint and prettier defaults. Vue is the framework in this project that still needs its own build command, which tells you where the rough edge is.

## Threads that survive a reload are not in the MIT package

The feature list includes Rich Threads, described as conversations that survive reloads, devices and sessions with their generative UI intact, and Automatic Learning, where completed threads become reviewed Skills with no fine-tuning pipeline. Both of those also appear under a separate heading, CopilotKit Intelligence, which is described as adding rich threads with generative UI, user memories, product analytics, inspection and automatic learning to agents you already have, working with your existing app and agent framework.

That layer has a commercial shape. It is available as a hosted platform or deployed in your own Kubernetes cluster, VPC or data boundary, and the README closes the section by pointing you to an overview page for what each plan includes, naming no plan and no price. The MIT licence covers the SDK. Durable conversations, user memories that are recalled semantically rather than by keyword, and product analytics sit behind the plans.

This is the decision point for most teams, and the README's own framing points at it, since the Intelligence section says to add it when the project goes to production. A demo where threads live for the session is an SDK exercise. A product where a user returns on a different device and expects their conversation, with its generated components, to still be there is a purchase. Both of those bullets appear in the open feature list too, which is the part that blurs the line when you are reading quickly.

## The root build command excludes four language runtimes by name

This is a TypeScript monorepo that is no longer only TypeScript. The build script runs nx across packages and then carries a long exclude list naming runtime-python, runtime-go, runtime-ruby and runtime-dotnet, followed by four more packages: intelligence-delivery-python-core, intelligence-langgraph-python, intelligence-adk-python and intelligence-agent-framework-dotnet. The test script carries the same list.

So pnpm run build is not a full monorepo build. Four native language runtimes and four Intelligence skill adapters are built and tested by separate commands, build:native-runtimes and test:native-runtimes for the runtimes, build:skill-adapters and test:skill-adapters for the adapters, each scoped with -p to a named list. There is a sdk-python/ directory at the root as well. The reason is visible in the shape of the command: the general build targets every project under packages, and those excluded ones are built by toolchains the JavaScript pipeline does not own.

For a contributor this is the first thing to know. If you touch a Python or Go runtime, running the default test command tells you nothing, and the failure mode is silence rather than an error. For an adopter it is the reason there is a Python SDK in a TypeScript repository at all, which is also why the AG-UI Protocol exists as a separate artefact rather than a CopilotKit-specific wire format.

## v1.75.0 and v1.75.1 shipped a day apart, and codemods/ exists for that

The release cadence is the first thing that changes how you should use this project. Three of the most recent tags are v1.74.0 on 2026-09-25, v1.75.0 on 2026-09-28 and v1.75.1 on 2026-09-29, and the last push to the repository was on 2026-09-27. Two minor releases and a patch inside five days is what a project at this velocity looks like, and it makes an unpinned dependency on a @copilotkit package a liability rather than a convenience.

The answer to that velocity is present in the tree. codemods/ and migrations.json sit at the root, examples/ carries both v1 and v2 example sets, and the release machinery around it is unusually complete: release.config.json, commitlint.config.js, lefthook.yml, dangerfile.js and renovate.json. Renovate for dependency updates, commitlint for message shape, lefthook for local hooks, danger for diff review. CHANGELOG.md is committed at the root as well.

The v1 and v2 example directories are the clearest signal that breaking changes are normal here and are planned for. If you are on an older major, the path forward is a codemod rather than a careful read of a diff, and migrations.json is the file that tells you which ones apply.

## AG-UI is the protocol, and it is separable from the SDK

The project describes itself as the company behind the AG-UI Protocol, and states that the protocol is adopted by Google, LangChain, AWS, Microsoft, Mastra, PydanticAI and others. That claim is the project's own, stated in the README rather than demonstrated in it, so treat it as positioning. The structural point stands on its own, though: the protocol is not the product, and it lives at a different address, in the ag-ui-protocol/ag-ui repository rather than this one.

That separation is the reason people search for CopilotKit against AG-UI and get a confusing answer, since the SDK is one implementation of a protocol other vendors also implement. If you are building agents that need to reach a React front end, you have two routes: adopt the SDK and get the components, shared state and human-in-the-loop wiring with it, or implement the protocol and keep only the wire format. The SDK route costs a dependency on a project shipping patch releases daily. The protocol route costs you the runtime behaviour and leaves you to rebuild it.

One more thing the repository does that is worth knowing before you clone it. The clean script is git clean -fdX with an exclude that preserves .env, which tells you the project expects a local environment file that is not committed, and it tells you that the clean command is the one to read before you run.

## Conclusion

Adopt CopilotKit if your team is building agent features in React and wants the agent to return rendered components rather than text, and you are willing to track a fast-moving release line. Do not adopt it on the strength of the framework list, because Vue arrives without a quickstart and only React is marked GA, and do not assume the persistence layer is in the MIT package, since conversations that survive a reload belong to CopilotKit Intelligence, which is priced by plan. Before you start, pin an exact version, because v1.75.0 and v1.75.1 shipped a day apart, and read the release notes against the codemods/ directory and migrations.json rather than upgrading by hand.

## FAQ

### What does CopilotKit do?

It connects your UI, your agents and your tools into a single interaction loop. That is what lets agents ask users for input, lets tools return UI rendered in the client, keeps stateful workflows across steps and sessions, and lets one agent be deployed across web, mobile and chat platforms.

### Is CopilotKit free to use?

The SDK is MIT licensed. The separate CopilotKit Intelligence layer, which adds persistent rich threads, user memories, product analytics and automatic learning, is available hosted or self-hosted and is described by plan, with the README linking to an overview page for what each plan includes rather than naming plans or prices.

### Is CopilotKit open source?

Yes, under the MIT licence, with the packages published individually, for example @copilotkit/react-core on npm. The root package is marked private, so the repository itself is not the installable artefact, and parts of the tree, including the AG-UI Protocol, live in separate repositories.

### What is CopilotKit used for?

Building full-stack agentic applications, generative UI and chat applications. It started as a React library and is now positioned as a layer between agents and users, covering React, Angular, Vue, React Native, Slack and Microsoft Teams from one agent backend.

### How do I use CopilotKit?

The quick start has you give a coding agent the prompt containing npx --yes copilotkit@latest onboard start and let it inspect your project. Two related commands exist: npx copilotkit@latest skills install to add the agent skills, and npx copilotkit@latest create, which scaffolds a new project in its own directory and does not modify an app you already have.

### CopilotKit vs AG-UI: what is the difference?

CopilotKit is the SDK, and AG-UI is the protocol. The project describes itself as the company behind the AG-UI Protocol, which is maintained in its own repository, so you can implement the wire format without the SDK or adopt the SDK and get the component rendering, shared state and human-in-the-loop behaviour with it.

## Sources

- [Official documentation](https://docs.copilotkit.ai)
- [Official README](https://github.com/CopilotKit/CopilotKit#readme)
- [Project repository](https://github.com/CopilotKit/CopilotKit)
- [Release notes](https://github.com/CopilotKit/CopilotKit/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/copilotkit-copilotkit
