mcpField
A
agent-ui

agent-ui

github.com/magentoshDevelopment442 installsUpdated 12w ago
Repository

About agent-ui

Agent Component is a ready-to-install agent UI component from ui.inference.sh for applications using Next.js. It provides configuration options for file and image uploads and uses the Inference SDK proxy route.

Key features

  1. 01Install as a shadcn component
  2. 02Configure an API proxy route for Next.js
  3. 03Set an agent name and configuration
  4. 04Enable file and image uploads

Use cases

  1. 01Add an agent interface to a Next.js page
  2. 02Route agent requests through the Inference SDK
  3. 03Allow users to attach files or images

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/magentosh/superpowers --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