Basic Usage

UMD (script tag) base

Theme switching, toggle title/input, alternating colors. The simplest way to use QuikChat.

ESM (module import) base

Using QuikChat as an ES module with import.

Dual Chatrooms base

Two independent chat widgets that send messages to each other.

Markdown Rendering

Markdown (basic) md

Bold, italic, code blocks, tables, lists, links. Uses quikchat-md build with quikdown. No network needed.

Markdown (full) md-full

Syntax highlighting, math (MathJax), diagrams (Mermaid), maps (Leaflet), SVG, CSV tables. Renderers load from CDN on demand.

LLM Integrations

Ollama (simple) LLM

Local LLM chat using Ollama. Basic request/response pattern.

Ollama with Memory LLM

Conversational context via historyGet() — the LLM remembers what was discussed.

LM Studio LLM

Local LLM via LM Studio with conversational memory.

OpenAI LLM

GPT-4o with token streaming. Works with any OpenAI-compatible API.

Framework Integration

QuikChat is vanilla JS — it works with any framework. No framework-specific packages needed.

React base

useRef + useEffect — live demo and integration pattern.

Vue base

Template ref + onMounted — live demo and integration pattern.

SolidJS base

Ref variable + onMount — live demo and integration pattern.

Svelte base

bind:this + onMount — code example for Svelte 4/5.

Angular base

ViewChild + ngAfterViewInit — code example.

React Wrapper base

Pre-built React wrapper component with useRef and forwardRef.

Non-Chat Use Cases

Log Viewer base

Read-only log display with live feed, role-based color coding, and tag-based filtering (All / Errors / Warnings).

Event Timeline base

Deployment timeline with timestamps, automated events (system) and human actions (user) color-coded by role.

Advanced Features

Tool-Call Visibility base

Hide internal tool calls with visible: false and reveal them with a toggle using messageSetVisibleByTag().

Session Save/Restore base

Export a full chat session as JSON with historyExport() and restore it into another widget with historyImport().

Virtual Scrolling Stress Test base

Load 10,000 or 50,000 messages and scroll smoothly. Virtual scrolling activates automatically at 500 messages.

RTL / i18n base

Side-by-side English (LTR) and Arabic (RTL) chat widgets with a button to swap directions at runtime.