mcpField
A
agent-ui

agent-ui

github.com/inference-shDevelopment7891.1k installsUpdated 2w ago
Repository

About agent-ui

A prebuilt agent UI component for developers building interfaces with ui.inference.sh. It provides configurable agent presentation, file and image upload options, and a Next.js proxy setup using the inference SDK.

Key features

  1. 01Prebuilt agent component
  2. 02Configurable agent settings
  3. 03Optional file and image uploads
  4. 04Next.js proxy route setup

Use cases

  1. 01Adding an agent interface to a page
  2. 02Enabling file or image uploads in an agent UI

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/inference-sh/skills --skill agent-ui

After installing, type/agent-uiin Claude Code to confirm it loaded.

Details

From the project README

Install the belt CLI skill: npx skills add belt-sh/cli

Agent Component

Batteries-included agent component from ui.inference.sh.

Agent Component

Quick Start

# Install the agent component
npx shadcn@latest add https://ui.inference.sh/r/agent.json

# Add the SDK for the proxy route
npm install @inferencesh/sdk

Setup

1. API Proxy Route (Next.js)
// app/api/inference/proxy/route.ts
import { route } from '@inferencesh/sdk/proxy/nextjs';
export const { GET, POST, PUT } = route;
2. Environment Variable
# .env.local
INFERENCE_API_KEY=inf_...
3. Use the Component
import { Agent } from "@/registry/blocks/agent/agent"

export default function Page() {
  return (
    <Agent
      proxyUrl="/api/inference/proxy"
      agentConfig={{
        core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
        description: 'a helpful ai assistant',
        system_prompt: 'you are helpful.',
      }}
    />
  )
}

Features

FeatureDescription
Runtime includedNo backend logic needed
Tool lifecyclePending, progress, approval, results
Human-in-the-loopBuilt-in approval flows
WidgetsDeclarative JSON UI from agent responses
StreamingReal-time token streaming
Client-side toolsTools that run in the browser

Client-Side Tools Example

import { Agent } from "@/registry/blocks/agent/agent"
import { createScopedTools } from "./blocks/agent/lib/client-tools"

const formRef = useRef<HTMLFormElement>(null)
const scopedTools = createScopedTools(formRef)

<Agent
  proxyUrl="/api/inference/proxy"
  config={{
    core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
    tools: scopedTools,
    system_prompt: 'You can fill forms using scan_ui and fill_field tools.',
  }}
/>

Props

PropTypeDescription
proxyUrlstringAPI proxy endpoint
namestringAgent name (optional)
configAgentConfigAgent configuration
allowFilesbooleanEnable file uploads
allowImagesbooleanEnable image uploads

Related Skills

# Chat UI building blocks
npx skills add inference-sh/skills@chat-ui

# Declarative widgets from JSON
npx skills add inference-sh/skills@widgets-ui

# Tool lifecycle UI
npx skills add inference-sh/skills@tools-ui

Documentation

Component docs: ui.inference.sh/blocks/agent

Comments

Markdown supported