Model or dataset
zhimaAi/chatwiki avatar
zhimaAi/chatwiki

ChatWiki: A WeChat-First Workflow Platform With a Self-Hosted Docker Path

ChatWiki 微信公众号的AI知识库工作流Agent平台,RAG大模型AI客服机器人,致力于成为垂直领域的coze、n8n。

2,076 stars324 forksVueNOASSERTION

At a glance

What is it?
ChatWiki targets the WeChat official account ecosystem with drag-and-drop workflows, RAG knowledge bases and a Docker Compose install. The interesting parts are the WeChat-specific triggers and the pgvector stack; the unclear parts are the licence and the operational weight of the full stack.
Who is it for?
Adopt ChatWiki if your automation target is the WeChat official account ecosystem and you are willing to run PostgreSQL 16 with pgvector and zhparser yourself. Do not adopt it if you need a permissive, clearly identified open source licence, or if your channels are Slack, email or the web rather than WeChat.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 12 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem ChatWiki solves is WeChat-shaped, not general

Most workflow automation tools assume your users arrive through a web form, an email inbox or a chat app with a documented bot API. WeChat official accounts do not work that way. The README describes ChatWiki as a workflow automation platform focused on the WeChat ecosystem, and the feature list makes the target concrete: private message triggers, comment triggers, follow and unfollow events, menu clicks, fan tagging, draft article generation and article publishing. The project claims an industry-first capability for automatic replies to private messages on unverified official accounts, covering text, voice, images, mini-program cards and video messages. That last point is the clearest statement of who this is for. If you run an official account that has not completed verification and you still want automated replies, the general-purpose agent platforms leave you building against an API surface you may not have access to. ChatWiki is aimed at that gap, plus the adjacent work of turning published articles into a retrievable knowledge base. The secondary audience is teams that want a self-hosted RAG stack with a visual workflow editor rather than a hosted SaaS. The repository is primarily Vue on the frontend, with Go and Python on the backend, and PostgreSQL 16 with pgvector and zhparser underneath.

How the pieces fit: triggers, workflow nodes, and a pgvector store

The architecture visible in the README separates into three layers. The top layer is the WeChat integration surface, which supplies trigger events: user private messages, comments, follows, unfollows and menu clicks. The middle layer is the workflow engine, described as supporting conversational workflows and plugin workflows, with basic workflow nodes, bidirectional MCP, an Agent mode and user interaction steps. Processing steps named in the README include replying to private messages, tagging fans, generating draft articles and publishing articles. The bottom layer is retrieval. The document knowledge base supports URL reading, batch document import, API integration, AI-based segmentation, QA segmentation and parent-child segmentation, with hybrid vector search and knowledge graphs. PostgreSQL 16 with pgvector handles the vector side, and zhparser is the Chinese text parser, which matters because the content being indexed is largely Chinese-language official account material. There is also a QA knowledge base that extracts question-answer pairs from uploaded documents, clusters unknown questions and summarizes FAQs from human conversations. Human handoff sits alongside the bot: unresolved issues escalate to human staff with multi-agent assignment. The data flow implied by this layout is: a WeChat event arrives, a workflow decides what to do, retrieval grounds any generated answer in the knowledge base, and the result goes back out through the WeChat channel or into a draft. The README does not document the internal message bus, queue or scheduling layer, so treat the wiring between these three layers as undescribed.

Installing it: Docker Compose, one port, and default credentials

The README gives a four-command install for the community edition. It starts with the Docker install script, then clones the repository and changes into the docker directory, then brings the stack up. The command sequence is: sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh, then git clone https://github.com/zhimaAi/chatwiki.git, then cd chatwiki/docker, then docker compose up -d. Access is through IP and port, and the README states the port is controlled by the CHAT_SERVICE_PORT variable with a default of 18080. The default credentials are listed as username admin and password chatwiki.com@123. Two operational notes follow from that. First, the install publishes a service on a port that anyone reaching the host can hit, and the default password is printed in the README, so the first thing to verify after startup is whether the login path forces a credential change. Second, the README links to alternative install guides for a Docker mirror site plus offline installation, a no-Docker deployment, Baota Linux Panel, and 1Panel, which suggests the maintainers expect environments where the public Docker registry is not reachable. Model provider configuration is not in the README body; it is delegated to a linked help document titled How to Configure Model Providers and Supported Models, with a separate document for local model deployment. If you need to know which of the 20-plus named models (DeepSeek R1, doubao pro, qwen max, OpenAI, Claude among them) are reachable from your network, that document is the place to look before you start the containers.

The licence is the first thing to resolve, not the last

GitHub reports the licence as NOASSERTION, which means the repository's licence file, if present, does not match a standard identifier the platform recognises. The README does not state licence terms for the community edition, and it does not describe what the commercial editions include or how they are licensed. That is a real constraint, not a formality. If you are evaluating ChatWiki for internal use, the absence of a recognised licence identifier means you cannot assume the permissions that come with MIT, Apache 2.0 or AGPL. If you are evaluating it for a product you ship, the question is sharper. The README mentions a free trial URL at chatwiki.com and a community edition deployed via Docker, which implies a split between a hosted or commercial offering and the self-hosted edition, but the boundary between them is not described in the material available. Read the licence file in the repository and, if the terms are ambiguous, ask the maintainers directly. Their contact channels are listed: email jarvis@2bai.com.cn, a WeChat community group, and a help documentation site. This is the one item I would resolve before writing any deployment plan, because it determines whether the rest of the evaluation matters.

Where ChatWiki is the wrong tool

ChatWiki is tightly coupled to WeChat. The README does mention publishing as a WebApp, embedding into websites, and integration through a complete OpenAPI interface, so it is not strictly WeChat-only. But the workflow triggers that give the product its shape are WeChat events, and the features that are hardest to replicate elsewhere (unverified account private message replies, mini-program cards, fan tagging) have no meaning outside that ecosystem. If your support load arrives through Slack, email, a web widget or a phone line, the WeChat-specific layer is dead weight and you are paying the cost of running PostgreSQL with pgvector and zhparser for a retrieval stack you could get from a lighter tool. There is a second case where ChatWiki is the wrong choice: teams that want a managed service with no infrastructure ownership. The community edition is a Docker Compose stack with a database, a Go backend and a Python backend. Someone has to run it, back it up, and upgrade it. The release cadence visible in the repository is roughly weekly to biweekly (v2.9.1 on 2026-08-14, v2.9.2 on 2026-08-28, v2.9.3 on 2026-09-04), and the changelog entries for those releases include fixes such as context not being passed in some embedding scenarios and mini-program cards failing to return correctly in a customer service knowledge base. Those are normal bug fixes, but a fast cadence means a self-hosted operator has a recurring upgrade task. If nobody owns that task, the deployment will drift.

How it differs from Dify and n8n

The README positions ChatWiki as aiming to be a vertical-domain equivalent of coze or n8n. The comparison with n8n is the useful one, because the difference is in the trigger model rather than the node editor. n8n is a general integration platform: its value comes from the breadth of connectors and the fact that any HTTP API can become a step. ChatWiki inverts that. It ships a fixed set of WeChat triggers and steps, and its extensibility runs through MCP (the README describes bidirectional MCP, meaning external MCP services can be called and workflows can be published as MCP services) plus an OpenAPI interface. So the trade is breadth for depth in one ecosystem. If your problem is orchestrating twenty SaaS tools, n8n's connector catalogue is the point and ChatWiki's WeChat depth is irrelevant. If your problem is answering official account messages with grounded answers and escalating to humans, n8n gives you a generic HTTP node and leaves the WeChat semantics, the knowledge base and the handoff flow to you. Dify is a closer comparison on the retrieval side: it is also a self-hostable RAG and agent platform, and it is not built around a single messaging ecosystem. The honest summary is that ChatWiki's differentiator is the WeChat integration surface plus zhparser-backed Chinese retrieval, and everything else in the feature list has an equivalent in the general-purpose tools. That is not a criticism; it just means the WeChat layer has to be the reason you pick it.

Upgrade cost and what the release notes tell you about it

The repository pushes frequently. Three releases landed in the three weeks before the last push date, and the changelog entries are a mix of feature work and fixes: a recycle bin for the QA knowledge base with one-click emptying, a redesign of the external service pages for PC and H5, an increase of the sensitive word limit to 20,000, a context-passing fix in embedding scenarios, and product card support in the product library. For a self-hosted operator, that cadence has a concrete cost. You need a way to pull a new image or rebuild, apply any database migrations that accompany the release, and roll back if the new version breaks a workflow. The README does not describe a migration procedure or a versioned upgrade path, so that procedure is something you would have to establish from the help documentation or by reading the compose files. Two other operational details are worth noting. The README lists multi-account permission management with three tiers (admin, editor, viewer), IP whitelisting and permanent login logs, which means the deployment holds access-control data you would need to preserve across upgrades. And the community edition is described as Docker-based with offline installation guides, which is helpful if your environment is air-gapped but also means you are responsible for getting new versions into that environment yourself.

What to verify before you commit

Start with the licence file in the repository. NOASSERTION is not a licence, and the README does not fill the gap. Next, stand up the Compose stack in a throwaway environment and confirm three things: that the default admin password is changed or forced to change, that CHAT_SERVICE_PORT is set to a value you intend to expose and that the port is not reachable from outside your network, and that the model providers you need are configurable through the documented path. The README points to a separate document for model provider configuration, so read that before assuming a given provider works. Then exercise the WeChat side with a test account: the README claims automatic private message replies for unverified official accounts across text, voice, images, mini-program cards and video, and that claim is the product's main differentiator, so it is the one worth validating first. Finally, check whether the QA knowledge base and document knowledge base behave acceptably on your own content, since segmentation strategy (AI-based, QA, parent-child) is a per-deployment choice that the README lists but does not recommend. If all four checks pass, the remaining question is whether you have someone to own the weekly-to-biweekly upgrade cycle. If you do not, the free trial at chatwiki.com is a cheaper way to find out whether the WeChat workflow layer fits your use case before you take on the database.

Editorial conclusion

Adopt ChatWiki if your automation target is the WeChat official account ecosystem and you are willing to run PostgreSQL 16 with pgvector and zhparser yourself. Do not adopt it if you need a permissive, clearly identified open source licence, or if your channels are Slack, email or the web rather than WeChat. Before deploying, confirm three things: the actual licence terms for the community edition, whether the default admin credentials are changed by the install path, and which model providers you will configure, since the README states support for over 20 models but does not list pricing or rate behaviour.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. zhimaAi/chatwiki on GitHub
Community notes

Community notes