Batteries-included agent component from [ui.inference.sh](https://ui.inference.sh). ``` npx shadcn@latest add https://ui.inference.sh/r/agent.json
# Install the agent component npx shadcn@latest add https://ui.inference.sh/r/agent.json # Add the SDK for the proxy route npm install @inferencesh/sdk
// app/api/inference/proxy/route.ts import { route } from '@inferencesh/sdk/proxy/nextjs'; export const { GET, POST, PUT } = route; `### 2\. Environment Variable` # .env.local INFERENCE_API_KEY=inf_... `### 3\. Use the Component` import { Agent } from "@/registry/blocks/agent/agent" export default function Page() { return ( <Agent proxyUrl="/api/inference/proxy" agentConfig={{ core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' }, description: 'a helpful ai assistant', system_prompt: 'you are helpful.', }} /> ) }
import { Agent } from "@/registry/blocks/agent/agent" import { createScopedTools } from "./blocks/agent/lib/client-tools" const formRef = useRef<HTMLFormElement>(null) const scopedTools = createScopedTools(formRef) <Agent proxyUrl="/api/inference/proxy" config={{ core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' }, tools: scopedTools, system_prompt: 'You can fill forms using scan_ui and fill_field tools.', }} />
proxyUrlnameconfigallowFilesallowImages# Chat UI building blocks npx skills add inference-sh/agent-skills@chat-ui # Declarative widgets from JSON npx skills add inference-sh/agent-skills@widgets-ui # Tool lifecycle UI npx skills add inference-sh/agent-skills@tools-ui