tools-uiTool lifecycle UI components for React/Next.js from ui.inference.sh. Display tool calls: pending, progress, approval required, results. Capabilities: tool st...
Install via ClawdBot CLI:
clawdbot install okaris/tools-uiTool lifecycle components from ui.inference.sh.
npx shadcn@latest add https://ui.inference.sh/r/tools.json
| State | Description |
|-------|-------------|
| pending | Tool call requested, waiting to execute |
| running | Tool is currently executing |
| approval | Requires human approval before execution |
| success | Tool completed successfully |
| error | Tool execution failed |
import { ToolCall } from "@/registry/blocks/tools/tool-call"
<ToolCall
name="search_web"
args={{ query: "latest AI news" }}
status="running"
/>
import { ToolResult } from "@/registry/blocks/tools/tool-result"
<ToolResult
name="search_web"
result={{ results: [...] }}
status="success"
/>
import { ToolApproval } from "@/registry/blocks/tools/tool-approval"
<ToolApproval
name="send_email"
args={{ to: "user@example.com", subject: "Hello" }}
onApprove={() => executeTool()}
onDeny={() => cancelTool()}
/>
import { ToolCall, ToolResult, ToolApproval } from "@/registry/blocks/tools"
function ToolDisplay({ tool }) {
if (tool.status === 'approval') {
return (
<ToolApproval
name={tool.name}
args={tool.args}
onApprove={tool.approve}
onDeny={tool.deny}
/>
)
}
if (tool.result) {
return (
<ToolResult
name={tool.name}
result={tool.result}
status={tool.status}
/>
)
}
return (
<ToolCall
name={tool.name}
args={tool.args}
status={tool.status}
/>
)
}
<ToolCall
name="read_file"
args={{ path: "/src/index.ts" }}
status="running"
className="border-blue-500"
/>
Tools automatically get icons based on their name:
| Pattern | Icon |
|---------|------|
| search, find | Search |
| read, get | File |
| write, create | Pencil |
| delete, remove | Trash |
| send, email | Mail |
| Default | Wrench |
The Agent component handles tool lifecycle automatically:
import { Agent } from "@/registry/blocks/agent/agent"
<Agent
proxyUrl="/api/inference/proxy"
config={{
core_app: { ref: 'openrouter/claude-sonnet-45@0fkg6xwb' },
tools: [
{
name: 'search_web',
description: 'Search the web',
parameters: { query: { type: 'string' } },
requiresApproval: true, // Enable approval flow
},
],
}}
/>
# Full agent component (recommended)
npx skills add inference-sh/skills@agent-ui
# Chat UI blocks
npx skills add inference-sh/skills@chat-ui
# Widgets for tool results
npx skills add inference-sh/skills@widgets-ui
Component docs: ui.inference.sh/blocks/tools
Generated Mar 1, 2026
A support team uses the tool UI to display automated tool calls like fetching customer data or sending follow-up emails, with approval gates for sensitive actions. This ensures agents can monitor tool status and intervene when needed, improving response accuracy and compliance.
Analysts leverage the components to run data retrieval tools for market research, with approval flows for executing trades or generating reports. The UI provides clear progress indicators and results display, enabling secure, human-oversight in high-stakes decisions.
Medical staff use the tool UI to manage automated scheduling calls, such as booking appointments or sending reminders, with approvals for critical updates. This streamlines workflows while maintaining control over patient data and operational changes.
An online retailer integrates the components to handle tool calls for inventory checks, order fulfillment, and customer notifications, with approval steps for refunds or cancellations. This enhances transparency and reduces errors in logistics.
Moderators employ the tool UI to display automated content analysis tools, with approval gates for flagging or removing posts. This allows real-time monitoring of tool execution and human intervention to uphold community guidelines effectively.
Offer the tool UI as part of a subscription-based platform for developers building AI agents, with tiered pricing based on usage or features. Revenue is generated through monthly fees, targeting teams needing scalable, integrated UI components.
Sell customized licenses to large organizations for embedding the components into internal systems, with support and maintenance contracts. This model capitalizes on high-value deals in regulated industries requiring robust tool lifecycle management.
Provide basic tool UI components for free to attract developers, then monetize through premium features like advanced analytics, custom icons, or priority support. Revenue streams include upsells and consulting services for integration.
💬 Integration Tip
Start by adding the components via the provided CLI command, then customize with props like className for styling and onApprove for approval flows to match your app's design and logic.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Expert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.
Use when building UI with shadcn/ui components, Tailwind CSS layouts, form patterns with react-hook-form and zod, theming, dark mode, sidebar layouts, mobile navigation, or any shadcn component question.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when building web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Create distinctive, production-grade static sites with React, Tailwind CSS, and shadcn/ui — no mockups needed. Generates bold, memorable designs from plain text requirements with anti-AI-slop aesthetics, mobile-first responsive patterns, and single-file bundling. Use when building landing pages, marketing sites, portfolios, dashboards, or any static web UI. Supports both Vite (pure static) and Next.js (Vercel deploy) workflows.
AI skill for automated UI audits. Evaluate interfaces against proven UX principles for visual hierarchy, accessibility, cognitive load, navigation, and more. Based on Making UX Decisions by Tommy Geoco.