Add a floating chat assistant powered by Claude to your site in under 5 minutes. Point it at your docs, drop in the component, done. One dependency, fully themeable.
Get Started Setup GuideTry it now ↓
Click the chat button in the bottom-right corner.
It knows everything about docsbot.
A floating chat panel with a trigger button. Import the component, pass your API endpoint, and you're done. The widget handles the conversation UI, typewriter animation, suggested questions, and mobile layout.
Need full control? Use the useDocsBot() hook to build your own UI. You get messages, loading state, error handling, and send/clear functions.
The widget (React component), the hook (headless alternative), and the backend handler. The handler takes your knowledge base as a markdown string, builds a system prompt, and calls Claude Haiku. Cheap and fast.
Dynamic context lets you inject per-request data — current page, user role, account info — so answers are always relevant.
Two packages: the widget itself and the Anthropic SDK for the backend handler.
Write your docs as markdown. The handler injects this into the system prompt so Claude can answer questions about your product.
A single file. The handler reads your knowledge base, manages conversation history, and calls Claude. Works with Next.js, Express, or any Node server.
Import the component, import the styles, pass the endpoint. A help button appears in the bottom-right corner. That's it.
Override CSS custom properties to match your brand. Colors, sizing, border radius, widget dimensions — all configurable.
| Prop | Description |
|---|---|
endpoint |
Your API route URL (required) |
title |
Header title (default: "Help") |
placeholder |
Input placeholder text |
position |
"bottom-right" or "bottom-left" |
suggestedQuestions |
Array or function returning questions |
currentPage |
Page context for smarter answers |
headers |
Extra headers for authenticated APIs |
onToggle |
Callback when widget opens/closes |
The backend handler is configurable: swap models, set token limits, add dynamic context per request. The getContext function lets you inject user-specific or page-specific data into every request.
| Option | Description |
|---|---|
apiKey |
Anthropic API key (required) |
knowledge |
Markdown knowledge base |
model |
Claude model (default: Haiku) |
maxTokens |
Max response tokens (default: 512) |
maxHistory |
Conversation history limit (default: 10) |
getContext |
Dynamic per-request context builder |
Add per-request context so answers reflect the user's current state. The function receives the request and can return any string to append to the system prompt.