| Summary | The Original AI Chatbot for Discourse | |
| Repository Link | GitHub - merefield/discourse-chatbot: An AI bot with RAG capability for Topics, Chat & Customer Support in Discourse, currently powered by OpenAI · GitHub | |
| Install Guide | How to install plugins in Discourse | |
| Sponsorship | Please consider becoming an ongoing sponsor of my open source work at a level that suits your or your organisation’s resources and needs to ensure this plugin gets the maintenance it deserves and continues to work for your site in the future. |
Enjoying this plugin? Please
it on GitHub ! ![]()
As this is an independently contributed plugin, please make support, bug, ux, and feature requests here in this topic. NB This plugin is not available on Discourse.org hosting. You can install it if you are self-hosted and possibly if you are on third party hosting (but check with your provider).
The original AI Chatbot for Discourse
Chatbot brings configurable AI conversations to Topics, Personal Messages, Chat channels, and Chat threads. Give the bot a character that suits your community, decide which groups may use it, and choose different models and tools for low-, medium-, and high-trust users.
It can:
- answer normally from the current conversation;
- search selected forum content with semantic or hybrid search;
- search Wikipedia, current news, and the web;
- crawl remote pages and retrieve end-of-day market data;
- perform reliable expression-based calculations;
- see uploaded images and optionally read PDFs;
- generate and edit images;
- collect outstanding editable User Fields in private conversations;
- escalate private Chat conversations to configured staff groups;
- respond automatically to new Topics in selected Categories; and
- accept additional tools supplied by other plugins.
For a practical support workflow, see Building a technical support chatbot.
With local forum search enabled, the bot can ground answers in your community’s content:
For simpler conversations, expose fewer or no tools to reduce calls, latency, and cost:
Provider support
Choose providers independently for replies, embeddings, vision, and image generation. Each capability reuses the API key belonging to its selected provider.
| Capability | OpenAI | Anthropic | Google Gemini | xAI |
|---|---|---|---|---|
| LLM replies and tools | ||||
| Embeddings | — | |||
| Vision | ||||
| Image generation | — | |||
| Image editing | GPT Image models | — | — | |
| PDF conversation input | — | — | — |
If no custom URL is set, Chatbot uses its built-in official endpoint for the selected provider. Custom model names and URLs support Azure OpenAI, Ollama, proxies, and other services that implement a supported provider’s API shape.
Provider-specific model dropdowns are shown only when that provider is active. The reply model can differ by trust level, while embeddings, vision, and image generation each have their own provider and model selector.
Read the full provider and custom-endpoint guide.
Access, quotas, and tools
Nobody has access until you assign groups to Chatbot’s low-, medium-, or high-trust group settings. Users inherit the quota, model, and tool allowlist of their highest matching Chatbot trust level. Quotas can be measured by queries or tokens.
Built-in tools are selected independently for each trust level. Credentials and supporting settings still control runtime availability, so selecting a web tool without its API key does not expose it.
Read about access and quotas and trust-level tools.
Local forum search and privacy
Please understand the embedding scope before enabling local forum search.
The default benchmark_user strategy embeds content visible to a suitable user at the configured trust level. The categories strategy embeds content from explicitly selected Categories. Semantic search is optimised for speed and does not repeat a visibility check for every person asking the bot, so matching content may be shared outside its original audience if the scope includes restricted content.
Private Messages are never embedded. Keep the benchmark trust level low, avoid private Categories unless their contents may be disclosed to every Chatbot user, and remove local_forum_search from trust levels that should not use it.
The selected providers may receive conversation content, uploads, embedded search matches, and tool results. Review their retention and data-use terms, and disclose this processing in your forum’s terms and privacy notice.
Read the full embeddings, scope, and privacy guide.
Quick start
- Install the plugin using the normal self-hosted plugin procedure.
- Select
chatbot_llm_provider, enter that provider’s API key, and choose models for each trust level. - Add groups to the low-, medium-, or high-trust access settings and configure quotas.
- Choose the built-in tools available to each trust level.
- If you enable
local_forum_search, configure its embedding provider and carefully review its scope. - Mention the bot, reply to it, use the quick-access button, or configure a Category auto-response prompt.
Quick OpenAI example
- Create an OpenAI API key and ensure API billing is enabled.
- Set
chatbot_llm_providerto OpenAI and paste the key intochatbot_open_ai_token. - Leave the custom URL blank, choose an OpenAI model for each trust level you intend to use, and add your test group to the matching Chatbot access setting.
- Mention the bot in an allowed Topic, Personal Message, or Chat to test it.
The repository README is the source of truth for prerequisites, every major setting group, provider-specific behavior, custom endpoints, embedding maintenance, prompt customization, debugging, extension development, and uninstalling:
Selected UI features
Categories can welcome a new Topic and ask the bot to search for relevant community content:
The optional quick-access button can open a direct Chat or Personal Message with the bot:
The User Fields tool can collect supported empty fields privately:

Support and sponsorship
Please report support requests, bugs, UX feedback, and feature ideas in this Meta topic. Include the provider, model name, relevant settings, HTTP status and provider response body, while removing API keys and private content.
This work depends on community support. If the plugin is valuable to your site, please sponsor its ongoing maintenance.
Project sponsors
| Sponsor | Level | Website |
|---|---|---|
| Surety | Silver Plus | suretyhome.com |
Disclaimer
LLMs can produce convincing but incorrect output. Test the plugin against your community’s needs, understand the privacy and cost implications, and apply appropriate moderation. Generated-output terms differ by provider and jurisdiction; review the terms for every provider you enable.




