A chat widget that actually talks, listens, and runs LLMs in-browser
Deep Chat is a framework-agnostic component that drops AI chat into any site with one HTML tag, no backend required.

What it does
Deep Chat is a web component that renders a full-featured AI chat interface. Drop <deep-chat> into React, Vue, Svelte, Angular, Solid, Next.js, or plain HTML and you get message history, file uploads, webcam capture, voice input/output, and markdown rendering. It connects to 20+ APIs (OpenAI, Claude, Gemini, DeepSeek, Ollama, etc.) either through your own backend or—for quick demos—directly from the browser.
The interesting bit
The component is built as a standard web component, so it survives framework churn; the React wrapper is just a thin binding. More unusually, it can host an LLM entirely in the browser via webModel="true" using the companion deep-chat-web-llm module—no server, no API key, no network. The speech-to-speech pipeline (OpenAI Realtime API) and focus mode (showing only latest messages) suggest the author actually uses this for real conversational UIs, not just text boxes.
Key highlights
- One-line install:
<deep-chat>ornpm install deep-chat-react - Direct browser connections to 20+ AI APIs for prototyping; proxy via
requestfor production - Browser-hosted LLMs via
deep-chat-web-llmmodule - Speech-to-text, text-to-speech, and speech-to-speech (OpenAI Realtime)
- Camera, microphone, file upload, and markdown with custom HTML wrappers
browserStoragepersists messages and scroll state locallyllms.txtfile provided for AI-assisted installation
Caveats
- Direct API connections from the browser expose keys; the README explicitly warns this is “local/prototyping/demo purposes ONLY”
- The README contains a typo (
browserStoaragein the 2.4.0 notes) that suggests either a hurried release or a copy-paste artifact - Custom backend integration requires matching Deep Chat’s request/response formats or writing interceptors
Verdict
Worth a look if you need a polished chat UI yesterday and don’t want to rebuild message bubbles for the nth time. Skip it if you need deep customization of the underlying LLM pipeline or if your security model can’t tolerate even prototype key exposure.