Chat Ui
/install chat-ui
Chat UI Components
Chat building blocks from ui.inference.sh.

Quick Start
# Install chat components
npx shadcn@latest add https://ui.inference.sh/r/chat.json
Components
Chat Container
import { ChatContainer } from "@/registry/blocks/chat/chat-container"
\x3CChatContainer>
{/* messages go here */}
\x3C/ChatContainer>
Messages
import { ChatMessage } from "@/registry/blocks/chat/chat-message"
\x3CChatMessage
role="user"
content="Hello, how can you help me?"
/>
\x3CChatMessage
role="assistant"
content="I can help you with many things!"
/>
Chat Input
import { ChatInput } from "@/registry/blocks/chat/chat-input"
\x3CChatInput
onSubmit={(message) => handleSend(message)}
placeholder="Type a message..."
disabled={isLoading}
/>
Typing Indicator
import { TypingIndicator } from "@/registry/blocks/chat/typing-indicator"
{isTyping && \x3CTypingIndicator />}
Full Example
import {
ChatContainer,
ChatMessage,
ChatInput,
TypingIndicator,
} from "@/registry/blocks/chat"
export function Chat() {
const [messages, setMessages] = useState([])
const [isLoading, setIsLoading] = useState(false)
const handleSend = async (content: string) => {
setMessages(prev => [...prev, { role: 'user', content }])
setIsLoading(true)
// Send to API...
setIsLoading(false)
}
return (
\x3CChatContainer>
{messages.map((msg, i) => (
\x3CChatMessage key={i} role={msg.role} content={msg.content} />
))}
{isLoading && \x3CTypingIndicator />}
\x3CChatInput onSubmit={handleSend} disabled={isLoading} />
\x3C/ChatContainer>
)
}
Message Variants
| Role | Description |
|---|---|
user |
User messages (right-aligned) |
assistant |
AI responses (left-aligned) |
system |
System messages (centered) |
Styling
Components use Tailwind CSS and shadcn/ui design tokens:
\x3CChatMessage
role="assistant"
content="Hello!"
className="bg-muted"
/>
Related Skills
# Full agent component (recommended)
npx skills add inference-sh/skills@agent-ui
# Declarative widgets
npx skills add inference-sh/skills@widgets-ui
# Markdown rendering
npx skills add inference-sh/skills@markdown-ui
Documentation
- Chatting with Agents - Building chat interfaces
- Agent UX Patterns - Chat UX best practices
- Real-Time Streaming - Streaming responses
Component docs: ui.inference.sh/blocks/chat
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install chat-ui - After installation, invoke the skill by name or use
/chat-ui - Provide required inputs per the skill's parameter spec and get structured output
What is Chat Ui?
Chat UI building blocks for React/Next.js from ui.inference.sh. Components: container, messages, input, typing indicators, avatars. Capabilities: chat interf... It is an AI Agent Skill for Claude Code / OpenClaw, with 1398 downloads so far.
How do I install Chat Ui?
Run "/install chat-ui" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Chat Ui free?
Yes, Chat Ui is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Chat Ui support?
Chat Ui is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Chat Ui?
It is built and maintained by Ömer Karışman (@okaris); the current version is v0.1.5.