FluxyChat

Packages

@fluxy-chat/ui-kit

Drop-in FluxyChatWidget and FluxyInboxPanel — polished chat UI in three lines, built on @fluxy-chat/ui and @fluxy-chat/react.

@fluxy-chat/ui-kit

Drop-in chat widget and inbox panel for FluxyChat. Use this when you want a hosted-SDK-style experience without building layout from primitives.

Built on @fluxy-chat/ui + @fluxy-chat/react. Optional bridge to assistant-ui via useFluxyAssistantRuntime.

Install

pnpm add @fluxy-chat/ui-kit @fluxy-chat/ui @fluxy-chat/react @fluxy-chat/sdk

Your app needs Tailwind (same as @fluxy-chat/ui) and a member JWT from your backend. See Getting started → Client setup.

FluxyChatWidget (3 lines)

import { FluxyChatWidget } from "@fluxy-chat/ui-kit";

export function SupportChat({ token }: { token: string }) {
  return (
    <FluxyChatWidget
      roomId="general"
      workerUrl={process.env.NEXT_PUBLIC_FLUXYCHAT_WORKER_URL!}
      token={token}
      theme="brand"
      height={520}
    />
  );
}

Props

PropTypeDescription
roomIdstringRoom to join (required)
workerUrlstringWorker base URL (required unless client is passed)
tokenstringMember JWT (required unless client is passed)
clientFluxyChatClientPre-built client — share one instance with inbox
userIdstringDefault "user-1" when constructing client internally
themeFluxyThemeIddefault, dark, minimal, or brand
heightnumber | stringWidget height (default 480)
titlestringHeader label (defaults to roomId)
classNamestringExtra wrapper classes

Inbox panel

import { FluxyInboxPanel } from "@fluxy-chat/ui-kit";

<FluxyInboxPanel
  workerUrl={workerUrl}
  token={token}
  onSelectItem={(item) => openRoom(item.roomId)}
/>

Lists rooms/conversations and calls onSelectItem when the user picks one — pair with FluxyChatWidget and a shared FluxyChatClient for a full inbox + thread UX.

assistant-ui (optional)

pnpm add @assistant-ui/react
import { useExternalStoreRuntime, Thread } from "@assistant-ui/react";
import { useFluxyAssistantRuntime } from "@fluxy-chat/ui-kit";
import { FluxyChatClient } from "@fluxy-chat/sdk";

const client = new FluxyChatClient({ baseUrl: workerUrl, userId, token });
const { externalStoreProps } = useFluxyAssistantRuntime({ roomId: "general", client });
const runtime = useExternalStoreRuntime(externalStoreProps);

return <Thread runtime={runtime} />;

Scaffold with CLI

Fastest path — minimal Vite app with the widget only:

npx @fluxy-chat/create-fluxy-chat@latest my-chat --minimal

See create-fluxy-chat for flags and templates.

When to use ui-kit vs ui

NeedPackage
Drop-in widget or inbox in an existing appui-kit
Custom layout, design system, headless primitives@fluxy-chat/ui
Dashboard-grade agent room (templates, tools, voice)Dashboard FluxyChat or compose from ui primitives

On this page