Open-source AI chatbot for WordPress

Give your WordPress site an AI assistant that answers from your own content.

Alpha Chat indexes your posts, pages, and public custom post types, then answers visitor questions with retrieval-augmented generation. It cites sources, keeps the vector store in MySQL, and skips weak model calls when retrieval has nothing useful.

Free, GPLv2, no licence fee. You pay only your AI provider.

WordPress 6.5+PHP 8.2+Tested to 6.7v0.3.1
Alpha Chat dashboard in WordPress showing 25,373 indexed chunks across 2,750 posts, with the indexing queue holding 636 pending jobs and zero failures

The dashboard on this site: 25,373 chunks indexed across 2,750 posts, queue running clean.

The problem

Most AI chat widgets do not know your WordPress site. They just sound confident.

That is risky. A visitor asks about your refund policy, course outline, pricing, plugin docs, or support limits. A generic chatbot guesses. You get a polished answer and a support mess.

1

Hosted vectors add another bill.

Pinecone and Qdrant are useful at scale. Most WordPress sites do not need that bill before the chatbot proves itself.

2

Theme CSS breaks chat UIs.

Buttons, fields, and panels inherit random theme styles. Shadow DOM isolation avoids that fight.

3

Empty retrieval wastes tokens.

If there is no relevant context, Alpha Chat returns your fallback instead of paying for a weak answer.

4

Black-box plugins are hard to trust.

You can inspect the PHP, TypeScript, REST routes, database schema, and uninstall cleanup.

How it works

Alpha Chat turns WordPress content into source-backed answers.

The flow is boring in the right way: chunk content, embed it, retrieve matching passages, call the selected model, and show source cards under the reply.

Index

Posts, pages, and public custom post types are split into chunks and queued through Action Scheduler.

Store

Embeddings live in wp_alpha_chat_chunks. Vector search runs inside WordPress by default.

Answer

Your chosen provider gets the message, retrieved context, recent history, and current page context.

Hand off

If the visitor still needs help, the contact form stores the message and emails the admin.

message → moderation → embedding → MySQL vector search → retrieved chunks → model response → source cards

Alpha Chat settings in WordPress with provider set to OpenAI, chat model GPT-5.6 Luna, thinking set to low, and embeddings on text-embedding-3-small

Chat and embedding providers are set separately, so you can run Claude for answers and OpenAI for embeddings.

What you get

A WordPress-native AI chatbot, not another hosted wrapper.

Alpha Chat is built around what WordPress site owners actually worry about: speed, data control, support handoff, admin visibility, and plugin cleanup when you uninstall.

Four chat providers

OpenAI GPT-5.6 Luna, Terra, and Sol. Anthropic Claude Opus 4.7, Sonnet 4.6, and Haiku 4.5. xAI Grok 4.6 and 4.5. DeepSeek V4 Flash and Pro.

Embeddings you can choose

OpenAI text-embedding-3-small or -large, or Voyage AI. Embeddings are a separate setting, so Claude or Grok users are not forced into OpenAI.

Quick presets

Fast, Balanced, and Quality set the model, temperature, and response length in one click instead of six fields.

Admin visibility

Dashboard metrics, knowledge base filters, conversations, token usage, sources, contacts, and CSV export are built in.

Performance guardrails

The floating launcher is opt-in. Roughly 20KB of deferred JS loads only on pages using the block or shortcode.

Clean uninstall

Uninstall removes plugin tables, options, post meta, and scheduled Action Scheduler jobs. Visitor IPs are hashed before storage.

On the page

A widget your theme cannot break.

The chat panel mounts inside a Shadow DOM with its styles inlined and an all: initial reset at the root. Theme and page-builder CSS stays outside.

Alpha Chat widget on a WordPress site answering how to download the plugin, with the grounded reply citing GPLv2, WordPress 6.5+ and PHP 8.2+, a source card linking the Alpha Chat page, and an email fallback button

A real answer on this page: the reply is drawn from the page content, with the source card under it and the email fallback below.

Source cards under every reply

Each answer carries the title, thumbnail, and link of the posts it drew from, so a visitor can verify it.

A real exit when it does not know

If retrieval finds nothing, the visitor gets your fallback and a contact button. No model call, no tokens spent.

Placed where you want it

Gutenberg block, the alpha_chat shortcode, or an opt-in floating launcher with your own nudge text and position.

Why it is different

Alpha Chat keeps the important parts inside WordPress.

That does not make it the right answer for every site. If you need a managed AI support suite with agents, billing, and enterprise reporting, buy that. If you want clean WordPress code you control, Alpha Chat is the better starting point.

Hosted chatbot

  • Vector storage usually lives in a vendor system.
  • Monthly platform fee sits on top of model usage.
  • Theme and builder CSS can leak into the widget.

Alpha Chat

  • Vectors live in your WordPress MySQL database by default.
  • No plugin licence fee. You pay your chosen AI provider.
  • Shadow DOM widget keeps theme styles away from the chat UI.

Best fit

Use Alpha Chat when you want a self-controlled WordPress chatbot for docs, product pages, course content, blog archives, or support triage.

Skip it if you need a full help desk suite with human agent routing and enterprise SLAs.

For developers

Swap the pieces you do not want.

The default setup is practical for normal WordPress sites, but it is not locked down. Implement LLMProvider, EmbeddingProvider, or VectorStore and override it with a filter. You can also modify retrieved chunks before they reach the prompt.

custom provider hook
add_filter('alpha_chat_llm_provider', function ($default) {
    return new MyPlugin\Providers\LocalLLM();
});
alpha_chat_llm_provideralpha_chat_embedding_provideralpha_chat_vector_storealpha_chat_indexable_post_typesalpha_chat_retrieved_chunksalpha_chat_display_widgetalpha_chat_is_reasoning_model
Install

Install Alpha Chat like a normal WordPress plugin.

Complete the free checkout to get the ZIP and a lifetime update key, upload the plugin, add your provider key, index your knowledge base, and place the block or shortcode where you want chat to appear.

1. Upload

Upload alpha-chat.zip in Plugins > Add New, then activate it.

2. Configure

Pick chat and embedding providers, then add that provider’s key.

3. Index

Open Knowledge Base, filter Not indexed, and click Index remaining.

4. Embed

Use the Alpha Chat block, the alpha_chat shortcode, or the launcher.

Questions

Asked before installing, answered straight.

Anything not covered here is worth an issue on GitHub. I read them.

Does Alpha Chat send my content to external services?

Only to the provider you configure. Post text is embedded through your chosen embedding provider, and a visitor message plus its matching context goes to your chosen chat provider. There is no telemetry. Your site contacts gauravtiwari.org only to activate, deactivate, or check the free licence for protected updates.

Can it work without Pinecone or Qdrant?

Yes. Alpha Chat stores vectors in wp_alpha_chat_chunks and computes cosine similarity in PHP. That is comfortable into the tens of thousands of chunks on typical hosting. If you outgrow it, implement the VectorStore interface and swap it with the alpha_chat_vector_store filter.

Will the widget slow down my site?

By default, no. The floating launcher is off until you turn it on. With it off, roughly 20KB of deferred JS loads only on pages where you placed the block or the alpha_chat shortcode. Empty retrievals never call the model.

Can I use Claude, Grok, or DeepSeek instead of OpenAI?

Yes. Pick Anthropic, xAI, or DeepSeek in Settings and add that key. Embeddings are a separate setting, so you can keep OpenAI or switch to Voyage AI. Moderation is optional and only runs when an OpenAI key is set.

What happens when it does not know the answer?

The visitor sees the fallback message you configured, with no model call and no tokens spent. With the contact form enabled they also get a button that stores the message and emails it to you.

Is visitor data kept private?

Visitor IPs are hashed before storage. Thread and message tables keep the message content, a session hash, and an optional user ID. Uninstalling removes every table, option, and scheduled job.

Ship it

Put a grounded AI assistant on your WordPress site.

Start with the ZIP. Read the code when you need to. Replace the provider later if your setup demands it.

Free checkout, instant ZIP, lifetime update key.