assistant-ui-tools

Register LLM tools with custom UI rendering and human-in-the-loop states.

182|8|Updated Apr 4, 2026
One-click install
npx skills add https://github.com/compozy/agh --skill assistant-ui-tools
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: assistant-ui-tools
Source: https://github.com/compozy/agh/tree/main/.agents/skills/assistant-ui/assistant-ui-tools
Command: npx skills add https://github.com/compozy/agh --skill assistant-ui-tools

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It helps you register LLM tools and display rich, tool-specific user interfaces so tool calls feel first-class and—when needed—can involve humans directly.

Core Features & Use Cases

  • Tool registration for AI calls: Define tool names, input schemas, and execution logic for backend or browser-only execution.
  • Custom tool UI rendering: Render tool call states (running/complete/incomplete/requires-action) with makeAssistantToolUI.
  • Human-in-the-loop interactions: Pause tool execution for confirmation or user input using requires-action and submitResult.
  • Reference-driven implementation: Use the included guidance to implement makeAssistantTool, makeAssistantToolUI, and interactive patterns consistently.

Quick Start

Register a backend or frontend tool named exactly as the UI expects, then wire the UI component inside AssistantRuntimeProvider and render the tool call output based on its status value.

Frequently Asked Questions about assistant-ui-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I render custom UI components for LLM tool calls in React?

To render custom UI for LLM tool calls, use `makeAssistantToolUI` to map components to tool names and handle status states like running, complete, or incomplete within the `AssistantRuntimeProvider`.

How do I implement human-in-the-loop interactions for an assistant UI?

Implement human-in-the-loop by setting the tool call status to `requires-action` to pause execution, then use the `submitResult` function to pass user input or confirmation back to the assistant runtime.

Does the assistant UI tool registration require exact name matching?

Yes, tool registration requires exact `toolName` matching between the backend or frontend tool definition and the UI component to ensure proper rendering and execution.

Can I define input schemas for browser-only LLM tools?

Yes, you can define structured input schemas using Zod for frontend-only browser tools, and also for backend API tools that require streaming and consistent status handling.

What is the best way to handle tool call execution status in an assistant UI?

Handle tool call execution by keying your UI logic to specific status values: running, complete, incomplete, or requires-action, ensuring consistent state management across the interaction.