MoonPress Chat adds an AI-powered chat assistant to your WordPress site. You connect your own LLM provider API key, teach the assistant about your business in the knowledge base, and the widget answers visitors’ questions grounded in that knowledge — it does not invent facts you never gave it.
Features
Privacy
Visitor conversations are stored in your own WordPress database. No data is sent anywhere except to the LLM provider you explicitly configured (see External services below). The plugin sends nothing to the plugin authors. The widget also records interaction events — which button a visitor pressed, and when (a topic, the call or request buttons, opening the widget, switching language) — with no message text and no page address; they are stored in your database with the same anonymous retention as the transcripts and are deleted by the same setting. Weekly totals — counts only, no transcripts and no visitor identifiers — are kept indefinitely by default so that reports stay comparable over time; a setting under Anonymous conversations can limit them to one, two or five years.
This plugin connects to the API of the LLM provider you select and configure in its settings. It sends the visitor’s chat messages, the conversation history of the current session, and the knowledge-base context you authored to that provider in order to generate the assistant’s replies. No request carrying visitor data is made until you enter an API key and enable the widget.
Depending on which provider you choose, data is sent to exactly one of:
Separately, and unrelated to the widget: whenever OpenRouter is your active provider, this plugin also fetches OpenRouter’s public model list — https://openrouter.ai/api/v1/models — from your WordPress admin area, so Settings can offer you a current, real list of models to choose from instead of a hardcoded few. This request carries no site data and no API key (it is a plain, unauthenticated GET); it fires when you open Settings, is cached for 12 hours so it does not repeat on every load, and backs off for 5 minutes if OpenRouter is unreachable. It never runs on the front end and never involves a visitor.
You are responsible for ensuring that sending visitor messages to your chosen provider complies with the privacy regulations that apply to your site, and for disclosing it in your site’s privacy policy.
The plugin ships two separate codebases, built two different ways:
assets/widget.js, assets/widget.css) is hand-written, plain JavaScript and CSS. There is no build step: the file in the zip is exactly the file your visitors’ browsers download.admin-ui/src; admin-ui/dist, also in the zip, is the compiled output WordPress actually enqueues — the release workflow builds it on Linux (Node 20) from that same source. To rebuild it yourself: cd admin-ui && npm ci && npm run build.