deepagents-architectur…
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing…
Vercel AI Elements for workflow UI components. Use when building chat interfaces, displaying tool execution, showing reasoning/thinking, or creating job queues. Triggers on ai-elements, Queue, Confirmation, Tool, Reasoning, Shimmer, Loader, Message, Conversation, PromptInput.
$ npx -y skills add existential-birds/beagle --skill ai-elements --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ai-elementsContext preview
The summary Claude sees to decide when to auto-load this skill.
Vercel AI Elements for workflow UI components. Use when building chat interfaces, displaying tool execution, showing reasoning/thinking, or creating job queues. Triggers on ai-elements, Queue, Confirmation, Tool, Reasoning, Shimmer, Loader, Message, Conversation, PromptInput.
name: ai-elements description: Vercel AI Elements for workflow UI components. Use when building chat interfaces, displaying tool execution, showing reasoning/thinking, or creating job queues. Triggers on ai-elements, Queue, Confirmation, Tool, Reasoning, Shimmer, Loader, Message, Conversation, PromptInput.
AI Elements is a comprehensive React component library for building AI-powered user interfaces. The library provides 30+ components specifically designed for chat interfaces, tool execution visualization, reasoning displays, and workflow management.
Install via shadcn registry:
npx shadcn@latest add https://ai-elements.vercel.app/r/[component-name]
**Import Pattern**: Components are imported from individual files, not a barrel export:
// Correct - import from specific files
import { Conversation } from "@/components/ai-elements/conversation";
import { Message } from "@/components/ai-elements/message";
import { PromptInput } from "@/components/ai-elements/prompt-input";
// Incorrect - no barrel export
import { Conversation, Message } from "@/components/ai-elements";Use this sequence when adding or wiring AI Elements so setup is checkable, not assumed.
1. **Install each component** — Run `npx shadcn@latest add https://ai-elements.vercel.app/r/[component-name]` for every component you need.
2. **Align import paths** — Every `import … from "@/components/ai-elements/..."` must match your repo’s actual alias and folder layout.
3. **Match `Tool` / `Confirmation` states to your AI SDK** — State strings (including approval-related states) depend on the installed `ai` package major/version.
Components for displaying chat-style interfaces with messages, attachments, and auto-scrolling behavior.
See [references/conversation.md](references/conversation.md) for details.
Advanced text input with file attachments, drag-and-drop, speech input, and state management.
See [references/prompt-input.md](references/prompt-input.md) for details.
Components for displaying job queues, tool execution, and approval workflows.
See [references/workflow.md](references/workflow.md) for details.
ReactFlow-based components for workflow visualization and custom node types.
See [references/visualization.md](references/visualization.md) for details.
AI Elements is built on top of shadcn/ui and integrates seamlessly with its theming system:
AI Elements follows a composition-first approach where larger components are built from smaller primitives:
<Tool>
<ToolHeader title="search" type="tool-call-search" state="output-available" />
<ToolContent>
<ToolInput input={{ query: "AI tools" }} />
<ToolOutput output={results} errorText={undefined} />
</ToolContent>
</Tool>Many components use React Context for state management:
Components support both controlled and uncontrolled patterns:
// Uncontrolled (self-managed state)
<PromptInput onSubmit={handleSubmit} />
// Controlled (external state)
<PromptInputProvider initialInput="">
<PromptInput onSubmit={handleSubmit} />
</PromptInputProvider>The Tool component follows the Vercel AI SDK's state machine:
1. `input-streaming`: Parameters being received 2. `input-available`: Ready to execute 3. `approval-requested`: Awaiting user approval (SDK v6) 4. `approval-responded`: User responded (SDK v6) 5. `output-available`: Execution completed 6. `output-error`: Execution failed 7. `output-denied`: Approval denied
Queue components support hierarchical organization:
<Queue>
<QueueSection defaultOpen={true}>
<QueueSectionTrigger>
<QueueSectionLabel count={3} label="tasks" icon={<Icon />} />
</QueueSectionTrigger>
<QueueSectImage: NASA, Public Domain. Source Beagle is an Agent Skills marketplace: framework-aware code review, documentation, testing, architectural analysis, and git workflows for any compatible coding agent.
Repo: existential-birds/beagle
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing…
Reviews Deep Agents code for bugs, anti-patterns, and improvements. Use when reviewing code that uses create_deep_agent, backends, subagents, middleware, or…
Implements agents using Deep Agents. Use when building agents with create_deep_agent, configuring backends, defining subagents, adding middleware, or setting…
Guides architectural decisions for LangGraph applications. Use when deciding between LangGraph vs alternatives, choosing state management strategies, designing…
Reviews LangGraph code for bugs, anti-patterns, and improvements. Use when reviewing code that uses StateGraph, nodes, edges, checkpointing, or other LangGraph…
Implements stateful agent graphs using LangGraph. Use when building graphs, adding nodes/edges, defining state schemas, implementing checkpointing, handling…