AI Chat
Every Jamdesk docs site includes a built-in AI chat assistant. Visitors ask questions and get answers with citations from your documentation.
Every Jamdesk site includes a chat assistant that answers visitor questions from your documentation. It retrieves relevant sections, sends them to Claude, and streams a response with links back to the source pages. Chat is enabled by default on all plans at no additional cost.
Here's the chat assistant in action:
Use Cases
A developer integrating your API asks "How do I authenticate requests?" and gets back the exact steps with a code example, plus a link to the source page.
How It Works
During each build, Jamdesk splits your pages into sections and stores them as searchable embeddings.
The "Ask AI" button (or Cmd+I / Ctrl+I) opens a chat panel on any page.
Relevant sections are retrieved, sent to Claude as context, and the response streams back with citation links to the source pages.
Features
| Feature | Detail |
|---|---|
| Streaming responses | Answers arrive in real-time |
| Citation links | Each answer links to the docs pages it drew from |
| Disambiguation | When a question matches multiple topics, the AI asks which one the visitor means |
| Conversation context | 10-message history, persisted per browser tab |
| Starter questions | Auto-generated from your docs, or set your own in docs.json |
| Keyboard shortcuts | Cmd+I / Ctrl+I to toggle, Escape to close |
| Markdown rendering | Code blocks, tables, and lists render inside responses |

Configuration
Chat works out of the box with no configuration required. Add a chat block to your docs.json only when you want to customize the starter questions or turn chat off. The chat field is optional, and both of its settings have sensible defaults.
{
"chat": {
"enabled": true,
"starterQuestions": [
"How do I get started?",
"What API endpoints are available?"
]
}
}| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Set false to remove the Ask AI button, chat panel, and keyboard shortcut from your site |
starterQuestions | string[] | auto-generated | Up to 4 questions shown when the panel opens (5-200 characters each). Auto-generated from your docs when omitted; set to [] to show none |
Starter questions
Starter questions are the suggested prompts shown in the chat panel before a visitor types anything: one-click examples that hint at what they can ask. When you leave starterQuestions out of your docs.json, Jamdesk auto-generates them from your documentation on every build, so they stay relevant as your docs grow.
To set your own, list them in the starterQuestions array. This is handy when your support team fields the same questions over and over and you want to surface those first:
{
"chat": {
"starterQuestions": [
"How do notifications work?",
"Tell me more about analytics"
]
}
}You can set up to 4 starter questions, each between 5 and 200 characters. To show no starter questions at all, set starterQuestions to an empty array ([]).
Disabling chat
Chat is enabled by default on every plan. To turn it off, set enabled to false. This removes the Ask AI button, the chat panel, and the Cmd+I / Ctrl+I shortcut:
{
"chat": {
"enabled": false
}
}Disabling chat doesn't affect search. AI chat and search are separate features, so your docs stay fully searchable even with chat turned off.
Limits
| Limit | Value |
|---|---|
| Max message length | 2,000 characters |
| Max response length | 2,048 tokens |
| Rate limit | 10 requests / 60 seconds per visitor per site |
| Conversation history | 10 messages per tab |
| Starter questions | 4 max |
Chat works on custom domains. The /_chat endpoint is same-origin, so it functions on any domain where your docs are served.
During each build, Jamdesk splits your pages into sections and stores vector embeddings for each one. When a visitor asks a question, the system runs a hybrid search (keyword matching combined with semantic similarity) to find the most relevant sections across your docs. Those sections are sent to Claude as context with instructions to answer only from the provided documentation. Citations are extracted by matching page references in Claude's response against the retrieved sections.
