Contributing to OpenUI

February 16, 2026 · View on GitHub

Welcome! This guide covers the project structure, local development, and contribution workflow.


Project Structure

OpenUI is a monorepo using pnpm workspaces and turborepo.

Apps (apps/)

DirectoryDescription
cli/The OpenUI CLI — proxy server, toolbar host, plugin loader, IDE bridge
vscode-extension/VS Code extension that receives prompts from the toolbar and forwards to your IDE's AI agent

Packages (packages/)

PackageDescription
agent-interface-external/Agent communication protocol for connecting the toolbar to IDE agents
create-openui-plugin/npx create-openui-plugin scaffolding CLI
karton/WebSocket RPC framework for real-time state sync
karton-contract-bridged/Karton contract types for bridge mode
openui-ui/Internal UI component library for the toolbar (Tailwind + Base UI)
ui/Shared UI components (Radix-based)
typescript-config/Shared TypeScript configuration

Plugins (plugins/)

PluginDescription
react/React framework plugin
vue/Vue framework plugin
angular/Angular framework plugin
template/Plugin template for create-openui-plugin

Toolbar (toolbar/)

DirectoryDescription
bridged/The toolbar web app served by the CLI proxy
plugin-sdk/SDK for building OpenUI plugins

Examples (examples/)

Reference integrations for Next.js, Vue, Angular, Svelte, SolidJS, and Nuxt.


How It Works

Browser                    CLI                     IDE
┌──────────┐    WebSocket   ┌──────────┐   Extension  ┌──────────┐
│ Toolbar  │ ──────────────>│  Proxy   │ ──────────── │ AI Agent │
│ (select  │                │  Server  │              │ (Cursor, │
│ elements)│                │          │              │  Copilot)│
└──────────┘                └──────────┘              └──────────┘
  1. The toolbar (served by the CLI) lets users select DOM elements and type prompts
  2. The CLI proxy wraps the user's dev app and injects the toolbar
  3. The VS Code extension receives prompts via WebSocket and forwards to the IDE's AI chat

Local Development

Setup

pnpm install
pnpm build

Running the CLI

cd apps/cli
pnpm dev

Running the VS Code Extension

Open the apps/vscode-extension/ folder in VS Code, then press F5 to launch the Extension Development Host.

Useful Commands

CommandDescription
pnpm buildBuild all packages
pnpm devStart all dev servers
pnpm lintRun linters and type checks
pnpm testRun tests across packages

Changesets and Versioning

We use Changesets to manage versions and changelogs:

pnpm changeset

This will prompt you to select packages, choose a semver increment, and write a description. PRs without a changeset will fail CI if they modify published packages. For docs-only changes:

pnpm changeset --empty

Contribution Guidelines

  • Follow code style enforced by Biome and Lefthook
  • Write clear, descriptive commit messages (Conventional Commits)
  • Open a GitHub issue or draft PR before large changes
  • Add tests for new functionality
  • Prefer small, focused pull requests
  • Include a changeset for any change affecting published packages

Need Help?