Components
Render a command tool card. State-driven (idle / running) with optional output and an approval footer (Skip / Run). Self-contained port from 21st.dev Agent Elements with inline shimmer + dot keyframes.
npx shadcn@latest add https://21st.dev/r/21stdev/bash-toolLoading preview...
import { BashTool } from "@/components/ui/bash-tool";
export default function Demo() {
return (
<div className="flex items-center justify-center w-full min-h-screen bg-background p-8 overflow-hidden">
<div className="w-full max-w-md">
<BashTool
state="running"
command="pnpm test --filter ./apps/web -- --runInBand"
approval={{
onSkip: () => {},
onRun: () => {},
}}
/>
</div>
</div>
);
}