This is a read-only message feed — no ChatComposer is rendered anywhere on the page.
Chat - Message feed
Embed a read-only message feed that renders transcripts and assistant output without a composer.
MUI Assistant
You
So how do new messages appear if there is no input?
MUI Assistant
Call useChat().sendMessage() directly. Use this pattern for transcripts, notification feeds, or copilot result panels.
When to use this pattern
Use a display-only message feed when the app controls the conversation flow externally: sending happens on the server, on a schedule, or through a different UI element.
Common use cases:
- Transcripts—display a completed conversation without allowing replies.
- Notification feeds—show a stream of AI-generated updates.
- Copilot result panels—render assistant output alongside an existing form or editor.
Rendering the feed
Only ChatRoot (the adapter wrapper) and ChatMessageList are needed.
ChatComposer is omitted from the tree—there is no prop to hide it.
To send a message programmatically, call useChat().sendMessage() from any component inside ChatRoot:
const { sendMessage, isStreaming } = useChat();
sendMessage({
conversationId: 'my-thread',
parts: [{ type: 'text', text: 'Generate a summary.' }],
});
See also
- No conversation history—compose a thread from individual components without
ChatBox. - Split layout—message list and composer in separate DOM zones.