Loading...
Loading...
Find, install, configure, and integrate Tool UI components in React apps using shadcn registry entries, compatibility checks, scaffolded runtime wiring, and troubleshooting workflows. Use when developers ask to add one or more Tool UI components, choose components for a use case, verify compatibility, or wire Tool UI payloads into assistant-ui or an existing chat/runtime stack.
npx skill4agent add assistant-ui/tool-ui tool-uipython scripts/tool_ui_compat.py --project <repo-root>
python scripts/tool_ui_compat.py --project <repo-root> --doctor@tool-uipython scripts/tool_ui_compat.py --project <repo-root> --fixcomponents.jsoncomponents.json.aliases.utils@/lib/utilscomponents.json.registries["@tool-ui"]https://tool-ui.com/r/{name}.jsonpython scripts/tool_ui_components.py list
python scripts/tool_ui_components.py find "<use case keywords>"
python scripts/tool_ui_components.py bundle
python scripts/tool_ui_components.py bundle planning-flowreferences/components-catalog.mdreferences/recipes.mdpython scripts/tool_ui_components.py install <component-id> [component-id...]npx shadcn@latest add https://tool-ui.com/r/<component-id>.jsonpython scripts/tool_ui_scaffold.py --mode assistant-backend --component plan
python scripts/tool_ui_scaffold.py --mode assistant-frontend --component option-list
python scripts/tool_ui_scaffold.py --mode manual --component stats-displayreferences/integration-patterns.mdreferences/troubleshooting.mdToolUI.LocalActionsaddResult(...)ToolUI.DecisionActionsDecisionResultcreateDecisionResult(...)addResult(...)<ToolUI id={surfaceId}>
<ToolUI.Surface><DataTable {...props} /></ToolUI.Surface>
<ToolUI.Actions>
<ToolUI.LocalActions
actions={[{ id: "export-csv", label: "Export CSV" }]}
onAction={(actionId) => { /* side effects only */ }}
/>
</ToolUI.Actions>
</ToolUI>actionsonAction(actionId, state)onBeforeAction(actionId, state)| Component | State type passed to handlers |
|---|---|
| |
| |
| |
no-embedded-response-actionsresponseActionsonResponseActionno-add-result-in-local-actionsaddResult()decision-actions-require-envelopecreateDecisionResult(...)index.tsximport { DataTable } from "@/components/tool-ui/data-table/data-table";
import { safeParseSerializableDataTable } from "@/components/tool-ui/data-table/schema";
import { ToolUI, createDecisionResult, type Action } from "@/components/tool-ui/shared";DecisionActionscreateDecisionResult(...)addResult(...)ToolUILocalActionspython scripts/sync_components.pypython -m unittest discover -s tests -p "test_*.py"