import {
ToolFallbackSample,
ToolFallbackRunningSample,
ToolFallbackCancelledSample,
ToolFallbackStreamingSample,
} from "@/components/docs/samples/tool-fallback";
Getting Started#
Add tool-fallback#
<InstallCommand shadcn={["tool-fallback"]} />
This adds a /components/assistant-ui/tool-fallback.tsx file to your project, which you can adjust as needed.
Use it in your application#
Pass the ToolFallback component to the MessagePrimitive.Parts component
import { ToolFallback } from "@/components/assistant-ui/tool-fallback";
const AssistantMessage = () => {
return (
<MessagePrimitive.Root>
<MessagePrimitive.Parts>
{({ part }) => {
if (part.type === "tool-call") return <ToolFallback {...part} />;
return null;
}}
</MessagePrimitive.Parts>
</MessagePrimitive.Root>
);
};
Examples#
Streaming Demo#
Interactive demo showing the full tool call lifecycle: running → complete.
Running State#
Shows a loading spinner and shimmer animation while the tool is executing.
Cancelled State#
Shows a muted appearance when a tool call was cancelled.
Composable API#
All sub-components are exported for custom layouts:
| Component | Description |
|---|---|
ToolFallback.Root | Collapsible container with scroll lock |
ToolFallback.Trigger | Header with tool name, status icon, and shimmer |
ToolFallback.Content | Animated collapsible content wrapper |
ToolFallback.Args | Displays tool arguments |
ToolFallback.Result | Displays tool execution result |
ToolFallback.Error | Displays error or cancellation messages |
import {
ToolFallback,
ToolFallbackRoot,
ToolFallbackTrigger,
ToolFallbackContent,
ToolFallbackArgs,
ToolFallbackResult,
ToolFallbackError,
} from "@/components/assistant-ui/tool-fallback";
// Compound component syntax
<ToolFallback.Root>
<ToolFallback.Trigger toolName="get_weather" status={status} />
<ToolFallback.Content>
<ToolFallback.Error status={status} />
<ToolFallback.Args argsText={argsText} />
<ToolFallback.Result result={result} />
</ToolFallback.Content>
</ToolFallback.Root>
Related Components#
- ToolGroup - Group consecutive tool calls together