tools

tool invocation UI

every tool state handled — pending, in-progress, completed, failed, and awaiting human approval. inline, collapsible, with rich results.

pnpm dlx shadcn@latest add @inferencesh/tools

every tool state, live

pending, in-progress, completed, failed, awaiting approval, and widget results. one component handles the full lifecycle. collapsible details keep the chat clean while preserving full context.

arguments:
{
  "query": "inference shell pricing"
}
result:
{"urls":["https://inference.sh/pricing"],"snippets":["pay per second, no minimums"]}
delete_file awaiting approval
arguments:
{
  "path": "/data/old-backup.tar.gz"
}
Q3 Revenue
generated bar chart with 3 data pointschart ready

one component, every state

wrap in AgentChatProvider and pass the invocation DTO. the component handles status indicators, collapsible arguments and results, approval buttons, and widget rendering automatically.

tool-invocation.tsxtsx
import { ToolInvocation } from '@inference/common/agent'
import { AgentChatProvider } from '@inferencesh/sdk/agent'

// wrap in AgentChatProvider, then render each invocation
<AgentChatProvider client={client} agentConfig={config}>
  <ToolInvocation
    invocation={toolCall}
    defaultOpen={true}
  />
</AgentChatProvider>

features

built for agent tool calls.

collapsible details

tool arguments and results collapse by default. click to expand. keeps the chat clean while preserving full context.

approval UI

tools that require human approval render inline approve/reject buttons. no modal interruptions, no context switching.

widget results

tool results can render as widgets — charts, tables, cards — instead of raw JSON. structured output, rich UI.

app invocations

when a tool invokes an inference.sh app, the task output renders inline with streaming progress and status.

ready to ship?

start with the hosted platform. deploy your own when you're ready.

we use cookies

we use cookies to ensure you get the best experience on our website. for more information on how we use cookies, please see our cookie policy.

by clicking "accept", you agree to our use of cookies.
learn more.