Open SDK  ·  MIT License  ·  React 18+
Radix UI+shadcn/ui+Tailwind CSS

Ship React UI faster with
ready-made, themeable and AI-ready components

ComposeKit gives you production-ready components — charts, forms, cards, and more — that you can drop into any React app and style to match your brand. Use the AI Playground to generate widgets or end-to-end prototypes from a prompt, screenshot, or JSON data — then share instantly with a preview or code link. The Server SDK generates UI layout schemas from LLM or AI output — the Client SDK renders them Just-In-Time, making ComposeKit ideal for AI agent responses and dynamic LLM-driven interfaces.

terminal
# install the SDK
npm install @brainpiper/composekit

# peer dependencies
npm install react react-dom

Everything you need to ship UI fast

Production-ready components

Built on Radix UI primitives and shadcn/ui, styled with Tailwind CSS. Input, Select, Button, Chart, Card, Tabs, Stepper, Accordion, and more — accessible, composable, and theme-aware out of the box.

CDN mode — zero build step

Point ComposeKitRenderer at a widget ID and it fetches, loads, and renders the widget at runtime. Publish in Studio and changes go live instantly.

Build-time mode for full control

Import individual component plugins and assemble layouts in code. Tree-shakeable, typed, and Webpack / Vite compatible.

AI-powered generation & sharing

Use the AI Playground to generate React widgets or end-to-end UI prototypes from a prompt, screenshot, or JSON data — no signup required. Share instantly with a preview link or a code link. For single widgets, BrainPiper Studio lets you refine with drag-and-drop and publish to CDN.

Server SDK — Just-In-Time UI for AI agents

The Server SDK generates UI layout schemas from LLM or AI output. The Client SDK renders them using design system components — enabling dynamic, Just-In-Time UI for AI agent responses and LLM-driven interfaces.

Live data binding

Pass a data object and receive granular onUpdate callbacks. Every field change is reported with a dot-path — no global form state needed.

Full theming with CSS variables

Override any design token — colours, radius, shadows — with a single theme object or by setting CSS custom properties globally.

Use however you want

Pick the mode that fits your workflow — or mix them in the same app.

1

Individual components

Import any component directly — no renderer, no schema. Use ComposeKit as a styled component library inside your own layouts.

import { ComposeKitChart } from '@brainpiper/composekit/chart';

<ComposeKitChart
  type="bar"
  series={salesData}
  seriesKeys={['revenue']}
  xAxisKey="month"
/>
2

CDN mode

Plugins load from BrainPiper's CDN at runtime. Pass a widgetId (Studio-built) or a layout JSON (static or from ComposeKitServer) — widgetId takes priority if both are provided.

import { ComposeKitClient, ComposeKitRenderer } from '@brainpiper/composekit';

ComposeKitClient.init({
  clientId: 'YOUR_CLIENT_ID'
});

<ComposeKitRenderer
  widgetId="4c6e51bc-59c1-4d54-afff-20bb54311dab"
  data={{ userId: 'u_001' }}
  onUpdate={(path, val) => console.log(path, val)}
/>
3

Build-time mode

All plugins bundled into your app. Pass a widgetId (Studio-built) or a layout JSON (static or from ComposeKitServer) — widgetId takes priority if both are provided.

import { ComposeKitClient, ComposeKitRenderer } from '@brainpiper/composekit';

ComposeKitClient.init({
  clientId: 'YOUR_CLIENT_ID',
  disableCdn: true
});

<ComposeKitRenderer
  widgetId="YOUR_WIDGET_ID"
  data={{ revenue: 42000 }}
  onUpdate={(path, val) => console.log(path, val)}
/>

Components out of the box

All components are fully typed, accessible, and theme-aware.

Inputs
InputSelectTextareaToggleRadioGroup
Actions
ButtonButtonGroupNavigationMenunew
Display
CardAvatarBadgeImageCarouselTree
Data & Charts
ChartGridPaginationnew
Feedback
AlertAccordionTabsStepperOverlayupdatedToastSpinner
Layout & Typography
SectionSeparatorHeadingParagraphList

Install in seconds

ComposeKit is published to the public npm registry under the @brainpiper scope. It supports React 18+ and ships with full TypeScript types.

  • Zero runtime dependencies — peer deps only (React, react-dom)
  • TypeScript declarations bundled in the package
  • Individual plugin entry points for tree-shaking
  • Webpack and Vite compatible
  • MIT licensed — free for commercial use
View on npm
shell
# npm
npm install @brainpiper/composekit

# yarn
yarn add @brainpiper/composekit

# pnpm
pnpm add @brainpiper/composekit

Your AI editor, design-system aware

Connect the BrainPiper MCP server to Claude Code, Cursor, Codex, Windsurf, or any MCP-compatible editor. Add one config file and your AI gets live access to your component library — correct component names, real prop signatures, and working code examples on every generation.

  • Works with Claude Code, Cursor, Codex, Windsurf, and more
  • AI queries live props and examples — no hallucinated APIs
  • Generate full pages or individual components from a prompt
  • One config file, any project
Setup guide →
.mcp.json
// .mcp.json  (project root)
{
  "mcpServers": {
    "brainpiper-mcp": {
      "type": "http",
      "url": "https://studio.brainpiper.com/portal/be/nodejs/apis/mcps/page-builder",
      "headers": {
        "client-id": "your-client-id",
        "api-key":   "your-api-key"
      }
    }
  }
}

Build your first end-to-end prototype or widget in minutes

Use the AI Playground to generate widgets or end-to-end prototypes from a prompt, then share with a preview or code link — or open BrainPiper Studio to design visually and embed with one line of JSX.