tools-ui
フロントエンドツールユーザーインターフェース開発に特化し、APIを通じてAgentに様々なツールを統合・表示する機能を提供し、作業効率を向上させます。
npx skills add inferen-sh/skills --skill tools-uiBefore / After 効果比較
1 组様々な内部ツールやプロキシツール向けに統一されたユーザーインターフェースを構築するには、設計と実装に多大なフロントエンド作業が必要となり、開発サイクルが長期化します。
`tools-ui` スキルを活用することで、ツールの統一された操作インターフェースを迅速に構築・管理し、ツールの使いやすさと管理効率を向上させ、開発コストを削減します。
description SKILL.md
tools-ui
Tool UI Components
Tool lifecycle components from ui.inference.sh.
Quick Start
npx shadcn@latest add https://ui.inference.sh/r/tools.json
Tool States
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
Components
Tool Call Display
import { ToolCall } from "@/registry/blocks/tools/tool-call"
<ToolCall
name="search_web"
args={{ query: "latest AI news" }}
status="running"
/>
Tool Result
import { ToolResult } from "@/registry/blocks/tools/tool-result"
<ToolResult
name="search_web"
result={{ results: [...] }}
status="success"
/>
Tool Approval
import { ToolApproval } from "@/registry/blocks/tools/tool-approval"
<ToolApproval
name="send_email"
args={{ to: "user@example.com", subject: "Hello" }}
onApprove={() => executeTool()}
onDeny={() => cancelTool()}
/>
Full Example
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}
/>
)
}
Styling Tool Cards
<ToolCall
name="read_file"
args={{ path: "/src/index.ts" }}
status="running"
className="border-blue-500"
/>
Tool Icons
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
With Agent Component
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
},
],
}}
/>
Related Skills
# 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
Documentation
-
Adding Tools to Agents - Equip agents with tools
-
Human-in-the-Loop - Approval flows
-
Tool Approval Gates - Implementing approvals
Component docs: ui.inference.sh/blocks/tools Weekly Installs8.5KRepositoryinferen-sh/skillsGitHub Stars159First Seen6 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykWarnInstalled onclaude-code6.8Kgemini-cli6.0Kcodex6.0Kamp6.0Kkimi-cli6.0Kgithub-copilot6.0K
forumユーザーレビュー (0)
レビューを書く
レビューなし
統計データ
ユーザー評価
この Skill を評価