Skip to content
HeliosUIDESIGN SYSTEM
Let’s beginInstallationMCP ServerAgent SkillsNewRTL SupportNew
ColorTypographyComponentsTemplates
AnnouncementAvatarBadgeBreadcrumbButtonButton GroupCarouselNewCheckboxChipClose ButtonDate PickerDividerDropdownFile UploadIcon ButtonInputInput OTPLink ButtonNotificationPaginationRadioSegmented ControlSelectSliderSocial ButtonSwitchTableTabsTextareaNewTooltipTree ViewNew
Agent CreatorNewAgent LimitsNewAgent ProgressAgent ThinkingNewAuth CardNewCalendarComposerNewComposer AttachmentsNewComposer LoaderNewComposer PanelNewData GridNewData TableNotification CenterQuestionnaireNewSettings ModalSidebarStat CardsNewTask ListNewWeb SearchNew
Activity RingsArea ChartNewBar ListNewCombo ChartNewContributionsEarnings ChartFunnel ChartNewHeatmap ChartNewLine ChartMost Active DaysOrders ChartNewRadar ChartNewRadial ChartNewRevenue ChartNewSankey ChartNewScatter ChartNewSleep ScoreStage BarsNewSteps Chart
AI ChatAI Image GenerationAI ProfileChat StarterNewFinance DashboardNewHome DashboardMarketing DashboardNewMedical ProfileMulti-agent ChatNewProject BoardNew
HeliosUIDESIGN SYSTEM
ComponentsTemplatesDocs
Helios UIComponentsMulti Agent Chat
Get Pro
Components / Multi Agent Chat
REACT COMPONENT

Multi Agent Chat

Helios adaptation of the publicly observed BoardUI interaction pattern. Local fixture data.

Reference ↗
React 19 · TypeScript
Your agents

Design partner

Local example
Design partner

I can help review the example interface. What should we improve first?

Enter sends; Shift+Enter adds a line. Model, permission and workspace choices are local preferences. Attachment progress is a simulated local preparation queue.

Replies are deterministic local fixtures. No AI inference or external service runs.

Create an example agent

Cloud engineer

Preferences stay in this local preview. No agent or voice service is connected.

'use client';
import {useState} from 'react';
import {AgentPattern} from '@helios-ui/react';
import '@helios-ui/react/styles.css';
export default function Example(){const [state,setState]=useState<'ready'|'loading'|'empty'|'error'>("ready");return <AgentPattern id="multi-agent-chat" {...{}} state={state} onRetry={()=>setState('ready')} disabled={false} size="md"/>;}

Customize this example

Use in your React app

Download the local package, install its React peers, then import the export and stylesheet. This package is not published to npm.

npm install react@^19 react-dom@^19 ./helios-ui-react-0.1.0.tgz
Download React package ↓Download all source (JSON) ↓

The Code tab renders the same exports used in this preview. Source files include typed props, behavior, styles, and dependency details.

Props

Generated from the TypeScript export MultiAgentChat. Configure this example with the preview controls above.

PropType / behavior
presentation"interactive" | "source" | undefined
mobileSidebarboolean | undefined
availableAgentsAgentChatParticipant[] | undefined
sidebarActionsReactNode | ((controls: { startChat: (members?: AgentChatParticipant[] | undefined) => void; createAgent: () => void; closeSidebar: () => void; }) => ReactNode)
sidebarFooterReactNode | ((controls: { clearSavedChat: () => void; storageEnabled: boolean; storageNote: string; closeSidebar: () => void; }) => ReactNode)
onEditorToggle((open: boolean, participant?: AgentChatParticipant | undefined) => void) | undefined
onMarketplace(() => void) | undefined
disabledboolean | undefined
conversationsAgentConversation[] | undefined
threadsAgentConversation[] | undefined
onThreadsChange((threads: AgentConversation[]) => void) | undefined
initialWorkspaceAgentWorkspace | undefined
defaultEditorIdstring | null | undefined
storageKeystring | null | undefined
onRespond((agent: AgentChatParticipant, messages: AgentChatMessage[], signal: AbortSignal) => string | Promise<string>) | undefined
Explore composed examples

Built from the same components

Forms, tables, charts and composers share Button, Input, Select, Checkbox, Tabs and Dialog.

Personal information

Try validation and recovery. Changes stay in this example.

Used for example notifications.

Team members

Fictional records · client-side sorting, selection and export

12 members
Example team members
Action
ASAarav Shahaarav@example.com
Designer₹1,250
DRDiya Raodiya@example.com
Developer₹2,500
IPIshaan Patelishaan@example.com
Admin₹3,750
KNKavya Nairkavya@example.com
Designer₹5,000
RMRohan Mehtarohan@example.com
Developer₹6,250
0 selected · 12 results
Page 1 of 3

Team member

Local example record; no account changes are made.

Email
Role
Status

Revenue overview

Illustrative INR data · totals match the visible period

₹33,800

Jan: ₹4,200

Accessible data table
Revenue in INR
MonthRevenue
Jan₹4,200
Feb₹5,100
Mar₹4,600
Apr₹6,800
May₹5,900
Jun₹7,200

Team conversation

Local composer example · Enter sends, Shift+Enter adds a line

No messages yet. Start a conversation below.

Keyboard and motion

Tab reaches controls; Space and Enter activate buttons. Native Select supports keyboard selection and mobile pickers. Tabs use arrows, Home and End. Dialog contains focus, closes with Escape, and restores focus. Data tables expose sort and selection state. Reduced motion removes spinners and chart transitions.

Primary labels adapt to the chosen accent for contrast. This accessibility adjustment differs from Figma’s white-on-cyan example. The Select example uses a React Aria popover with rich option content and keyboard typeahead. Native Select remains available for simple platform-picker integrations.

On this pagePlaygroundInstallationPropsComposed examplesAccessibilityFigma is read-only in this implementation.

Search Helios UI

Let's beginGetting startedInstallationGetting startedMCP ServerGetting startedAgent SkillsGetting startedRTL SupportGetting startedColorFoundationsTypographyFoundationsComponentsFoundationsTemplatesFoundationsAnnouncementBaseAvatarBaseBadgeBaseBreadcrumbBaseButtonBaseButton GroupBaseCarouselBaseCheckboxBaseChipBaseClose ButtonBaseDate PickerBaseDividerBaseDropdownBaseFile UploadBaseIcon ButtonBaseInputBaseInput OTPBaseLink ButtonBaseNotificationBasePaginationBaseRadioBase