What it solves
You can integrate in two ways: use JazzmineChatfor the fastest managed path, or use ChatInterface when your app must own every part of state and data flow.
SDK-agnostic by design
Any backend client that structurally matches the IJazzmineClient contract can power managed mode.
Integration modes
| Mode | Best for | You manage | Package manages |
|---|---|---|---|
| JazzmineChat | Fastest production integration | Client instance + optional callbacks | Conversation create/list/search/delete/update, history loading, send flow, loading states |
| ChatInterface | Full custom state architecture | All data, state, and actions | Presentation, local UI interactions, context selection UX |
What you get
Conversation lifecycle
- Managed create, select, rename, and delete flows.
- Sidebar pagination and search modal integration.
Message experience
- Markdown + GFM rendering with react-markdown and remark-gfm.
- Empty-state assistant message support through defaultMessage.
Context-aware flows
- Explicit context selection and forwarding support.
- History mapping from backend original_content and explicit_context data.
Install
install.sh
npm install @jazzmine-ui/reactInstall peer dependencies if your app does not already provide them:
peer-deps.sh
npm install react react-dom react-markdown remark-gfmImport package styles once at app entry:
main.tsx
import '@jazzmine-ui/react/styles';Where to go next
Getting Started
Pick a mode quickly and get a working implementation in minutes.
JazzmineChat
Managed mode with lifecycle orchestration built in.
ChatInterface
Fully controlled mode for custom state architecture.
Client Contract
Understand the IJazzmineClient interface and shared data models.
Theming
Customize colors, spacing, and layout with CSS variables.