Turn MCP JSON into ChatGPT-ready UIs: Figma-aligned, accessible, and truly AI-native.
👋 A Quick Backstory
When I started building with the ChatGPT Apps SDK, I found myself spending more time wiring UI than building features.
Every app needed the same boilerplate, parsing JSON, managing runtime state, handling themes, and rebuilding layouts that already exist inside ChatGPT.
That friction inspired AI Native Kit UI, the first open-source React component library built for the AI-native era.
⚙️ The Problem We All Face
Every developer building ChatGPT Apps hits the same wall:
You’ve got structured JSON from your Model Context Protocol (MCP) server, and now you need to render it into a polished UI that feels native to ChatGPT.
What should take five minutes turns into hours of:
- Wiring React components manually
- Managing state sync with the ChatGPT host
- Ensuring design consistency with OpenAI’s system
- Handling display mode transitions
- Debugging layout constraints
AI Native Kit UI eliminates this entire layer of complexity.
⏰ Why This Matters Now
ChatGPT Apps are exploding, but most developers are still need hand-code UIs.
As MCP adoption grows, the gap between AI capabilities and UI implementation widens.
The Apps SDK is powerful, but without the right UI toolkit, you’re rebuilding the same patterns from scratch while others ship faster.
AI Native Kit bridges that gap today.
⚡ Instant JSON -> UI with SummaryCard
Here’s what rendering a restaurant listing looks like using AI Native Kit’s SummaryCard:
import { SummaryCard } from '@ainativekit/ui';
import '@ainativekit/ui/styles';
const restaurantData = {
  title: "Little Nona's",
  subtitle: "1427 Via Campania",
  rating: "9.2",
  description:
    "A tiny, brick-walled trattoria tucked down a side street. The windows glow warm gold at night.",
  images: [
    { src: "https://images.unsplash.com/photo-1513104890138-7c749659a591?w=400", alt: "Pizza" },
    { src: "...", alt: "Pasta" },
    { src: "...", alt: "Salad" }
  ]
};
export function RestaurantListing() {
  return (
    <SummaryCard
      images={restaurantData.images}
      title={restaurantData.title}
      subtitle={restaurantData.subtitle}
      badge={restaurantData.rating}
      badgeVariant="success"
      description={restaurantData.description}
      buttonText="Add to Order"
      onButtonClick={() => navigate(`/restaurant/${restaurantData.id}`)}
    />
  );
}
✅ No manual JSON parsing
✅ No event wiring or theme detection
✅ No layout debugging
It automatically:
- Syncs with ChatGPT’s runtime via window.openai
- Adapts to light/dark themes
- Respects layout height constraints
- Persists state across sessions
🧱 Composable Layouts with Card.Parts
When you need more control, build rich UIs using Card and its sub-components:
import { Card, Features, useOpenAiGlobal } from '@ainativekit/ui';
import '@ainativekit/ui/styles';
export function DocumentCard() {
  const theme = useOpenAiGlobal('theme'); // Auto theme detection
  return (
    <Card elevationLevel="1" interactive>
      <Card.Header>
        <Card.ChipGroup>
          <Card.Chip variant="neutral" size="sm">ChatGPT Apps Native</Card.Chip>
          <Card.Chip variant="neutral" size="sm">AI-Native</Card.Chip>
        </Card.ChipGroup>
      </Card.Header>
      <Card.Image
        src="..."
        alt="AINativeKit UI library documentation"
      />
      <Card.Body>
        <Card.Title as="h3">Building AI-Native UIs</Card.Title>
        <Card.Description>
          Build modern, accessible UI with AINativeKit. Master reusable component patterns that scale.
        </Card.Description>
        <Card.Meta>
          <Features
            items={[
              { icon: 'clock', label: '10 min read' },
              { icon: 'calendar-today', label: 'October 30, 2025' }
            ]}
            iconSize={12}
          />
        </Card.Meta>
      </Card.Body>
      <Card.Footer>
        <Card.Actions align="start">
          <Card.ActionButton variant="primary">Explore Docs</Card.ActionButton>
        </Card.Actions>
      </Card.Footer>
    </Card>
  );
}
🎨 Built on OpenAI’s Design Language
Every pixel aligns with OpenAI’s Figma system — your apps look native, not bolted-on.
- 417 type-safe icons across 7 categories
- Semantic color tokens for dark/light modes
- Typography & spacing matched to ChatGPT’s style
- WCAG 2.1 AA accessibility compliance
import { SettingsCog, Terminal, Star } from '@ainativekit/ui/icons';
<SettingsCog size="md" />
<Terminal size="lg" />
<Star size="sm" filled />
🪝 Deep ChatGPT Apps SDK Integration
These specialized React hooks make integration seamless:
import {
  useOpenAiGlobal,
  useDisplayMode,
  useMaxHeight,
  useWidgetState,
  useWidgetProps
} from '@ainativekit/ui';
export function AdaptiveWidget() {
  const theme = useOpenAiGlobal('theme'); // 'light' | 'dark'
  const locale = useOpenAiGlobal('locale');    
  const displayMode = useDisplayMode(); // 'inline' | 'pip' | 'fullscreen'        
  const maxHeight = useMaxHeight(); // container constraint           
  const [favorites, setFavorites] = useWidgetState<string[]>([]);
  const data = useWidgetProps<any>(); // syncs MCP output
  return (
    <div data-theme={theme} style={{ maxHeight }}>
      {/* Your adaptive content */}
    </div>
  );
}
💡 Real-World Impact
Before AI Native Kit UI:
const [theme, setTheme] = useState('light');
useEffect(() => { /* manual theme + JSON parsing */ }, []);
After:
import { SummaryCard, useWidgetProps } from '@ainativekit/ui';
export function MyWidget() {
  const data = useWidgetProps();
  return <SummaryCard {...data} />;
}
>70% less code. 10× faster shipping.
🖼️ Screenshots & Examples
Customizable SummaryCard
Album
Carousel
List
Compact and Fullscreen Map
🧩 All examples are live in Storybook: ainativekit.com
⚙️ Production-Ready
- React 18+ + TypeScript 5
- Dual ESM/CJS builds with tree-shaking
- 29 Storybook examples + 15 test suites
- Works with Vite, Next.js, ChatGPT Apps SDK
- MIT open source
npm install @ainativekit/ui
🚀 Explore the Ecosystem
🎪 Live Storybook: ainativekit.com
🐙 GitHub: github.com/AINativeKit/ainativekit-ui
📦 NPM: @ainativekit/ui
🌅 The Future of AI-Native UI
ChatGPT Apps mark a new frontier, where UIs are declaratively generated from model outputs instead of manually composed.
This isn’t just another React library, it’s the native language for AI-powered interfaces.
Start building AI-native apps today. 💜
