mcpField
T
tools-ui

tools-ui

github.com/magentoshデザイン・UI442 回インストール12 週間前に更新
リポジトリ

tools-ui について

ui.inference.sh が提供する、ツール呼び出し、結果、承認手順を表示する UI コンポーネント群です。ツールの実行状態を示すエージェント向け画面の開発に使えます。

主な機能

  1. 01ツール呼び出しと結果の表示
  2. 025種類のツール状態を表示
  3. 03人による承認フローに対応
  4. 04ツール名に応じてアイコンを割り当て

活用シーン

  1. 01待機中や実行中のツール呼び出し表示
  2. 02エージェント UI でのツール結果表示
  3. 03実行前の承認要求

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/magentosh/superpowers --skill tools-ui

インストール後、Claude Code で/tools-uiを入力して読み込まれたか確認します。

詳細

belt CLI スキルをインストール: npx skills add belt-sh/cli

ツール UI コンポーネント

ui.inference.sh のツールライフサイクルコンポーネントです。

ツール UI コンポーネント

クイックスタート

npx shadcn@latest add https://ui.inference.sh/r/tools.json

ツールの状態

状態説明
pendingツール呼び出しがリクエストされ、実行を待っています
runningツールを実行中です
approval実行前に人間の承認が必要です
successツールが正常に完了しました
errorツールの実行に失敗しました

コンポーネント

ツール呼び出しの表示
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: "[email protected]", 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"
/>

ツールアイコン

ツール名に基づいて、アイコンが自動的に設定されます。

パターンアイコン
search*, find*検索
read*, get*ファイル
write*, create*鉛筆
delete*, remove*ゴミ箱
send*, email*メール
デフォルトレンチ

エージェントコンポーネントと併用する

エージェントコンポーネントがツールのライフサイクルを自動的に処理します。

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

ドキュメント

コンポーネントのドキュメント:ui.inference.sh/blocks/tools

コメント