react components

drop in an agent.
ship it.

chat, A2UI widgets, tool approvals. shadcn/ui compatible. connect to any inference shell agent.

pnpm dlx shadcn@latest registry add @inferencesh
agent

how can I help?

ask me anything

blocks

everything your agent needs.

agent chat

full agent chat with state management, tool lifecycle, and A2UI widgets. streaming, approvals, widgets — all wired to a runtime. 4 lines to ship.

explore →
agent.tsxtsx
import { Agent } from '@inference/common/agent'

<Agent
  proxyUrl="/api/inference/proxy"
  config={{ agent: 'your-team/your-agent' }}
/>

A2UI widgets

A2UI-native agent widgets. flat component list in, rich UI out. spec-compliant, streaming-friendly, works on Gemini Enterprise.

explore →
departureSFOsan francisco
✈️5h 45mon time
arrivalJFKnew york
san franciscopartly cloudy68°
H: 72° L: 58°
today's tasks
your order
brown sugar lattelarge • oat milk • less ice
$6.50
taro milk teamedium • regular sugar
$5.75
total$13.32

tool invocation

pending, in-progress, completed, failed, awaiting approval. every tool state handled inline with collapsible details, approval UI, and widget results.

explore →
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

chat primitives

container, messages, input, status indicators. composable building blocks for any chat UI. auto-resizing input, file upload, virtualized rendering for 1000+ messages.

explore →
custom-chat.tsxtsx
import { ChatContainer, ChatMessages, ChatInput }
  from '@inference/common/agent'
import { AgentChatProvider, useAgentChat }
  from '@inferencesh/sdk/agent'

function MyChat() {
  const { messages } = useAgentChat()
  return (
    <ChatContainer>
      <ChatMessages messages={messages} />
      <ChatInput />
    </ChatContainer>
  )
}

task output

streaming output, status indicators, tabbed views, auto-scrolling logs. display long-running agent task results with real-time updates.

explore →

markdown

high-performance markdown renderer with syntax-highlighted code blocks, tables, images, YouTube embeds, and zoomable images. optimized for token-by-token streaming.

explore →

getting started

build AI-powered apps with inference shell. the platform handles infrastructure, you write the logic.

typescript
const agent = new Agent({  tools: [searchWeb, analyzeData],})await agent.run("find recent papers on RLHF")

agents can use tools, render widgets, and stream responses in real-time.

featurestatus
streamingsupported
tool callssupported
widgets30+ types

why inference shell ui

not just chat bubbles.

streaming

real-time token streaming with useAgentChat(). no manual SSE parsing. state managed for you.

tool approvals

HITL gates render as UI. user clicks approve or reject inline. no modal interruptions.

A2UI widgets

agents render structured widgets — forms, cards, charts — not just text. typed with JSON schemas.

Next.js · Remix · SvelteKit · Hono · Express

faq

frequently asked questions

can't find what you're looking for? we're here to help.

contact us →

no. it's a full A2UI widgets system. your agent can render tables, charts, forms, cards, not just text. components are typed with JSON schemas.

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.