by hand
npx shadcn@latest add https://crate.onerollstudios.com/r/all.jsonready-made components for ai products. install them yourself, or just ask your coding agent.
npx shadcn@latest add https://crate.onerollstudios.com/r/all.jsonor tell your agent: "add crate wait states to my chat"
send this email?
getting those right takes weeks. so most teams ship a spinner and move on.
they read your ai stream and switch on their own.
const status = useAgentStatus(chat)
<AgentState status={status} />or pick single pieces below.
npx shadcn@latest add https://crate.onerollstudios.com/r/thinking.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/queue.jsoncrate #1
12 states
npx shadcn@latest add https://crate.onerollstudios.com/r/file-processing.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/reasoning-trace.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/tool-call.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/agent-plan.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/streaming.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/sources.jsonsend this email?
npx shadcn@latest add https://crate.onerollstudios.com/r/approval.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/stalled.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/error.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/done.jsonnpx shadcn@latest add https://crate.onerollstudios.com/r/all.json