Tutorial
Getting Started with Agentic UI Components
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
For the complete documentation index, see llms.txt. Markdown variants are available by appending .md to any URL or sending an Accept: text/markdown header. An agent skill is available at /.well-known/agent-skills/site-skill.md.
Tutorial
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
Design
Best practices for intuitive UI components in chat environments.
Alex Rivera
Jan 12, 2024
Development
Use Model Context Protocol for seamless backend communication.
Jordan Kim
Jan 10, 2024
$ pnpm dlx shadcn@latest add @mcpcn/post-list
import { PostList, PostListContent } from "@/components/ui/post-list";<PostList>
<PostListContent />
</PostList>Use the following composition to build an PostList:
PostList
└── PostListContentTutorial
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
Design
Best practices for intuitive UI components in chat environments.
Alex Rivera
Jan 12, 2024
Development
Use Model Context Protocol for seamless backend communication.
Jordan Kim
Jan 10, 2024
Tutorial
A guide to secure payment experiences in conversational interfaces.
Morgan Lee
Jan 8, 2024
"use client";
import { PostList, PostListContent } from "@/components/ui/post-list";
export function PostListGridDemo() {
return (
<PostList appearance={{ variant: "grid" }}>
<PostListContent />
</PostList>
);
}Tutorial
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
Design
Best practices for intuitive UI components in chat environments.
Alex Rivera
Jan 12, 2024
Development
Use Model Context Protocol for seamless backend communication.
Jordan Kim
Jan 10, 2024
Tutorial
A guide to secure payment experiences in conversational interfaces.
Morgan Lee
Jan 8, 2024
Development
Implement real-time updates for collaborative agentic experiences.
Casey Taylor
Jan 6, 2024
Tutorial
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
Design
Best practices for intuitive UI components in chat environments.
Alex Rivera
Jan 12, 2024
Development
Use Model Context Protocol for seamless backend communication.
Jordan Kim
Jan 10, 2024
Tutorial
A guide to secure payment experiences in conversational interfaces.
Morgan Lee
Jan 8, 2024
Development
Implement real-time updates for collaborative agentic experiences.
Casey Taylor
Jan 6, 2024
Tutorial
Learn how to build conversational interfaces for AI-powered applications.
Sarah Chen
Jan 15, 2024
Design
Best practices for intuitive UI components in chat environments.
Alex Rivera
Jan 12, 2024
Development
Use Model Context Protocol for seamless backend communication.
Jordan Kim
Jan 10, 2024
Tutorial
A guide to secure payment experiences in conversational interfaces.
Morgan Lee
Jan 8, 2024
Development
Implement real-time updates for collaborative agentic experiences.
Casey Taylor
Jan 6, 2024
"use client";
import { PostList, PostListContent } from "@/components/ui/post-list";
export function PostListCarouselDemo() {
return (
<PostList appearance={{ variant: "carousel" }}>
<PostListContent />
</PostList>
);
}Install the OpenUI React packages.
pnpm add @openuidev/react-lang zodAdd PostList to a component library and map it to the installed component.
import { createLibrary, defineComponent } from "@openuidev/react-lang";
import { z } from "zod/v4";
import { PostList, PostListContent } from "@/components/ui/post-list";
const OpenUIPostList = defineComponent({
name: "PostList",
description:
"Post list with list, grid, carousel, and fullwidth variants. Fullwidth mode shows paginated posts.",
props: z.object({}),
component: () => (
<PostList>
<PostListContent />
</PostList>
),
});
export const post_listLibrary = createLibrary({
root: "PostList",
components: [OpenUIPostList],
});For richer generated compositions, define the child primitives separately and connect them with .ref fields. See Defining Components in the OpenUI documentation.
Install the json-render React packages.
pnpm add @json-render/core @json-render/react zodAdd PostList to a component catalog and map it to the installed component.
import { defineCatalog } from "@json-render/core";
import { defineRegistry } from "@json-render/react";
import { schema } from "@json-render/react/schema";
import { z } from "zod";
import { PostList, PostListContent } from "@/components/ui/post-list";
export const catalog = defineCatalog(schema, {
components: {
PostList: {
props: z.object({}),
description:
"Post list with list, grid, carousel, and fullwidth variants. Fullwidth mode shows paginated posts.",
},
},
});
export const { registry } = defineRegistry(catalog, {
components: {
PostList: () => (
<PostList>
<PostListContent />
</PostList>
),
},
});Use catalog.prompt() to constrain model output, then render the generated spec with the json-render React Renderer. See the json-render Quick Start for the provider and streaming setup.
See the Base UI documentation for more information.