@chativa/vue
| Install | |
|---|---|
npm install @chativa/vue |
|
| Latest Version: | 0.18.0 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 15, 2026 |
| Links: | GitHub · npm |
Chativa
Chativa is an open-source, framework-agnostic chat widget built on Web Components. Drop one <script> tag into any page — React, Vue, Angular, plain HTML — and you have a fully functional, themeable chat interface. Connect to any backend via pluggable connectors, render rich message types, stream Generative UI inline, and extend the pipeline with middleware.

Docs: https://chativa.aimtune.dev · Live demo: https://chativa.aimtune.dev/sandbox/
Quick start
<script src="https://cdn.jsdelivr.net/npm/@chativa/ui/dist/chativa.global.js"></script>
<chat-bot-button></chat-bot-button>
<chat-iva></chat-iva>
That's it — the default dummy connector echoes whatever you type. Wire to your backend:
import { ConnectorRegistry, chatStore } from "@chativa/core";
import { DirectLineConnector } from "@chativa/connector-directline";
ConnectorRegistry.register(new DirectLineConnector({ token: "YOUR_TOKEN" }));
chatStore.getState().setConnector("directline");
Or set everything declaratively before the script tag:
<script>
window.chativaSettings = {
connector: "directline",
theme: { colors: { primary: "#1B1464" }, windowMode: "popup" },
locale: "tr",
};
</script>
Full guide → docs/getting-started.md.
What's in the box
| Capability | Details |
|---|---|
| Pluggable connectors | Dummy, WebSocket, SignalR, DirectLine, Mekik, Converger, SSE, HTTP — or write your own. |
| Rich messages | text, image, card, buttons, quick-reply, carousel, file, video — register custom types. |
| Generative UI | Stream LitElement components inline — forms, charts, tables, your own widgets. |
| Extensions | Middleware lifecycle for analytics, transformers, and slash commands. |
| Themable | CSS variables + JSON config + fluent builder. Four window modes. |
| i18n | 20 languages out of the box (incl. pt-BR, zh-CN/zh-TW, ar, he); extend at runtime. |
| End-of-conversation survey | Star rating + comment, connector-routed. |
| Message actions | Copy (incl. code blocks), regenerate, edit-and-resend — shown when the connector and its server support them — plus custom actions. |
| Multi-conversation | Agent-panel mode for helpdesk scenarios. |
Documentation
| Getting started | 5-minute embed walkthrough |
| Vue 3 | @chativa/vue — typed components, plugin, composables, Nuxt/SSR |
| Angular | @chativa/angular — standalone components, NgModule, ChativaService |
| Svelte & SvelteKit | @chativa/svelte components, stores and SSR-safe setup |
| Architecture | Hexagonal layers, dependency rules, request flow |
| Configuration | ChativaSettings and ThemeConfig reference |
| Theming | Colors, layout, window modes, custom launchers |
| Connectors | Capability matrix + per-connector pages |
| Message types | Built-ins + custom renderers |
| Generative UI | Streaming protocol, built-in components, custom widgets |
| Recipes | Copy-paste React, Vue, WordPress and DirectLine token-endpoint setups |
| Extensions | Middleware lifecycle |
| EventBus | Every analytics event — payload and when it fires |
| Slash commands | Built-ins + registering your own |
| Survey | End-of-conversation flow |
| Message actions | Copy, regenerate, edit, custom actions |
| Multi-conversation | Agent-panel mode |
| i18n | Localisation |
| Sandbox | The hosted playground |
| Chrome extension | Theme-preview extension for any website |
| Vue 2 / Nuxt 2 | @chativa/vue2 wrapper for legacy Vue 2.7 apps (maintenance mode) |
| Testing & coverage | Running tests, coverage thresholds, CI enforcement |
| JSON Schemas | Editor-friendly contracts for every JSON-serialisable shape |
Repository layout
packages/
core/ @chativa/core Domain + Application layers
ui/ @chativa/ui LitElement chat widget
genui/ @chativa/genui Generative UI streaming
connector-dummy/ @chativa/connector-dummy
connector-websocket/ @chativa/connector-websocket
connector-signalr/ @chativa/connector-signalr
connector-directline/ @chativa/connector-directline
connector-mekik/ @chativa/connector-mekik
connector-converger/ @chativa/connector-converger Converger hub (extends connector-mekik)
connector-sse/ @chativa/connector-sse
connector-http/ @chativa/connector-http
react/ @chativa/react React / Next.js wrapper
svelte/ @chativa/svelte Svelte 5 / SvelteKit wrapper
rn-webview/ @chativa/rn-webview React Native WebView bridge
vue/ @chativa/vue Vue 3 / Nuxt 3 wrapper
vue2/ @chativa/vue2 Vue 2.7 / Nuxt 2 wrapper (maintenance mode)
angular/ @chativa/angular Angular wrapper components (ng-packagr)
apps/
sandbox/ Live demo (https://chativa.aimtune.dev/sandbox/)
chrome-extension/ Theme-preview Chrome extension
docs/ Documentation hub (you are here)
schemas/ JSON Schemas for every JSON-serialisable contract
Development
pnpm install # install everything
pnpm dev # serve the sandbox at http://localhost:5173
pnpm build # build all packages
pnpm test # run all tests
pnpm test:coverage # all tests with coverage; fails below per-package thresholds
pnpm --filter @chativa/ui test:coverage # coverage for the UI components only
pnpm typecheck # strict type-check across the workspace
Coverage thresholds, reports and what CI enforces are described in Testing & coverage.
The schema-drift test (packages/core/src/domain/value-objects/__tests__/schema-drift.test.ts) guards the contract between schemas/theme.schema.json and the ThemeConfig TypeScript type. Add a field to one without the other and CI fails. See AGENTS.md → Schema sync.
Contributing
Conventions, architecture rules, and PR checklists are in AGENTS.md. Open an issue first for big changes.
License
MIT — © Hamza Agar
Related Packages
Chativa Vue 2 — Vue 2.7 / Nuxt 2 wrapper components (ChatIva, ChatBotButton, Gen...
Yuva for the web: a headless client for contacts, the element, documentation pag...
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.18.0 | ^3.3.0 | MIT | |
| 0.17.0 | ^3.3.0 | MIT | |
| 0.9.0 | ^3.3.0 | MIT |